# Vercy AI instruction - YAML 1.2 (JSON-compatible) { "vercy": "1.0-draft", "publication": { "status": "published", "adjudicationStatus": "reviewable-draft", "publishableCanonical": false, "generatedAt": "2026-09-03T14:02:45Z", "synthesisSha256": "f4a1c64a912ee42b71cd0ceae2223f63a7a8b9b71bd6db76005bb1fa8a609bd4", "providerMode": "single-provider-waiver", "providers": [ "Claude" ], "waivedProviders": [ "Grok" ] }, "metaModel": { "id": "WM-XCT-031", "registryId": "vr.wm-xct-031", "name": "Localization / Language", "version": "0.3.0-research.1", "previousVersions": [], "entryKind": "mixin", "family": "World Models", "category": "Cross-cutting context", "industry": [ "Cross-industry" ], "domain": [ "XCT.LNG" ], "tags": [ "localization", "language", "xct.lng" ], "status": "published" }, "canonicalUrl": "https://ver.cy/models/wm-xct-031-localization-language/", "sourceUrl": "https://github.com/ver-cy/world-models/tree/feat/mega-model-registry/research/runs/wm-xct-031", "model": { "registry_id": "vr.wm-xct-031", "model_id": "WM-XCT-031", "name": "Localization / Language", "entry_kind": "mixin", "purpose": "Provide an embeddable, format-neutral declaration of locale, translation and terminology binding, so that any adopting entity can state which language, script and locale conventions apply to it, express and resolve linguistic preferences, and reference translated resources and convention profiles without duplicating them.", "scope_statement": "WM-XCT-031 is a mixin that attaches linguistic and locale context to a host record. It covers BCP 47 language-tag identity and canonical form; the binding of subtags to the IANA Language Subtag Registry including deprecation and replacement; Unicode locale identity with -u and -t extension fields; script identity and base-direction/writing-mode hints; ordered preference declarations, available-locale inventory and the explicit resolved-locale outcome with fallback reasons; the role distinction between content language, intended audience and user-interface locale; versioned references to translated resources, terminology assets and formatting/collation convention profiles; and the governance needed to keep every declaration reproducible against a pinned data version. It declares context; it does not hold localized content, run translation production, identify people or places, or execute access, retention or audit decisions.", "in_scope": [ "BCP 47 language-tag identity, well-formedness, validity and canonical form, covering language, extlang, script, region, variant, extension and private-use subtags", "Binding to the IANA Language Subtag Registry, including Deprecated and Preferred-Value handling, grandfathered and redundant registrations, Scope classification and macrolanguage caveats", "Unicode locale identity as distinct from language identity, including -u and -t extension fields, their canonicalization and likely-subtag expansion", "Script identity by ISO 15924, Suppress-Script handling, declared base direction and character/line order hints carried together with the value they qualify", "Ordered or weighted preference declarations, basic and extended language ranges, available-locale inventory and the configured default locale", "Matching, filtering and lookup outcomes recorded as requested, available and resolved locale with an explicit fallback chain and per-step reason", "Role distinction between content language, intended audience and user-interface locale, and between declared, detected and negotiated values", "Versioned references to translated resources, terminology assets and number, date, time, unit and collation convention profiles", "Governance of the mixin itself: pinned registry and CLDR data versions, canonicalization policy, provenance fields and reproducibility records" ], "out_of_scope": [ "The localized content itself: translated text, media, their versions and editorial state", "Translation production workflow, vendor assignment, translation memory operation and terminology approval processes", "Person, party or account identity; a language preference is bound to a party by the party model, not defined here", "Geographic territories, boundaries, political status and legal jurisdiction; a region subtag is neither a location nor a legal fact", "Calendar, numbering, collation, measurement and time-zone rule data; only selection keys and pinned references are held", "Character encoding, Unicode normalization, text segmentation, font selection, shaping and the bidirectional algorithm itself", "Machine-translation and language-detection engines; only their identity, output and confidence are recorded", "Execution of access decisions, erasure requests, retention schedules and audit-trail storage", "Currency amounts, pricing and monetary conversion, even where a currency key appears in a locale extension" ], "boundary_notes": [ { "neighbor": "Localized content and resource models (documents, strings, media assets)", "distinction": "This model declares which language, script and locale apply to a value or resource; the resource model owns the text, its versions, its editorial state and its publication lifecycle.", "source_refs": [ "SRC-010", "SRC-011" ] }, { "neighbor": "Party, person and account profile models", "distinction": "A stated language preference is an attribute the party model binds to a party. This model defines the shape and provenance of the preference declaration only, and never treats a preference as an identity attribute or capability assertion.", "source_refs": [ "SRC-006", "SRC-011" ] }, { "neighbor": "Geographic region, territory and jurisdiction models", "distinction": "A region subtag identifies a locale variant. Territory geometry, political status, nationality and legal jurisdiction belong to those models and must never be inferred from a language or locale tag.", "source_refs": [ "SRC-001", "SRC-004" ] }, { "neighbor": "CLDR convention data and its implementations (calendars, collations, numbering, measurement, time zones)", "distinction": "This model records the selection keys and the pinned data version. The convention definitions and the formatting, sorting and parsing behaviour remain in the referenced data and the implementing library.", "source_refs": [ "SRC-004", "SRC-007" ] }, { "neighbor": "Translation production and terminology management systems", "distinction": "This model binds a resource to a locale and can record the source language of transformed content. Job state, vendor assignment, review gates and terminology approval are owned by those systems.", "source_refs": [ "SRC-008", "SRC-012" ] }, { "neighbor": "Access control, privacy and audit models of the adopting Dimension", "distinction": "This model classifies preference data as potentially linkable and supplies reproducibility fields. Policy evaluation, enforcement, erasure execution and audit-trail retention are owned and executed there.", "source_refs": [ "SRC-006" ] }, { "neighbor": "Text rendering and bidirectional layout engines", "distinction": "This model supplies the paragraph direction and orientation hints as metadata. The Unicode bidirectional algorithm, shaping, line breaking and glyph selection are performed by the rendering engine.", "source_refs": [ "SRC-005", "SRC-011" ] } ] }, "sources": [ { "id": "SRC-001", "title": "RFC 5646: Tags for Identifying Languages", "organization": "Internet Engineering Task Force (IETF)", "url": "https://www.rfc-editor.org/rfc/rfc5646.txt", "version_or_date": "September 2009, part of BCP 47", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T08:41:00Z", "relevance": "Normative syntax and semantics of language tags: the langtag ABNF, subtag types, case conventions, canonical form, well-formed versus valid, grandfathered and redundant registrations, and the Language Subtag Registry record format including Deprecated, Preferred-Value, Prefix, Suppress-Script, Macrolanguage and Scope." }, { "id": "SRC-002", "title": "RFC 4647: Matching of Language Tags", "organization": "Internet Engineering Task Force (IETF)", "url": "https://www.rfc-editor.org/rfc/rfc4647.txt", "version_or_date": "September 2006, part of BCP 47", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T08:42:00Z", "relevance": "Normative definition of basic and extended language ranges, language priority lists, basic filtering, extended filtering and lookup with progressive truncation, the requirement to define defaulting behaviour when no tag matches, and the statement that matching does not require validating tag semantics." }, { "id": "SRC-003", "title": "IANA Language Subtag Registry", "organization": "Internet Assigned Numbers Authority (IANA)", "url": "https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry", "version_or_date": "File-Date 2026-08-08", "source_type": "registry", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T08:44:00Z", "relevance": "The authoritative record set for subtag validity, carrying Type, Subtag/Tag, Description, Added, Deprecated, Preferred-Value, Prefix, Suppress-Script, Macrolanguage, Scope and Comments; the File-Date supplies the version pin used for reproducible validation." }, { "id": "SRC-004", "title": "UTS #35: Unicode Locale Data Markup Language (LDML), Part 1: Core", "organization": "Unicode Consortium", "url": "https://www.unicode.org/reports/tr35/tr35.html", "version_or_date": "Version 48.2, 2026-03-03", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T08:46:00Z", "relevance": "Defines the Unicode language identifier and Unicode locale identifier, canonical syntax and LocaleId canonicalization with alias replacement, the -u extension key inventory (ca, co, nu, hc, fw, ms, rg, sd, tz, va and others), the -t extension, likely-subtag addition and removal, and CLDR language matching." }, { "id": "SRC-005", "title": "UTS #35: Unicode Locale Data Markup Language (LDML), Part 2: General", "organization": "Unicode Consortium", "url": "https://www.unicode.org/reports/tr35/tr35-general.html", "version_or_date": "Version 48.2", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T08:52:00Z", "relevance": "Layout elements characterOrder and lineOrder, the constraint linking horizontal and vertical values, and the statement that layout data supplies the paragraph direction without overriding bidirectional ordering; also locale display-name elements and the display-name algorithm." }, { "id": "SRC-006", "title": "RFC 9110: HTTP Semantics", "organization": "Internet Engineering Task Force (IETF)", "url": "https://www.rfc-editor.org/rfc/rfc9110.html", "version_or_date": "June 2022, STD 97", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T08:48:00Z", "relevance": "Accept-Language as a weighted language priority list, Content-Language as the language of the intended audience rather than a single-language restriction, the caveat that a stated preference may not describe a user's actual capability, and the fingerprinting and privacy risk of language preference signals." }, { "id": "SRC-007", "title": "RFC 6067: BCP 47 Extension U (Unicode Locale)", "organization": "Internet Engineering Task Force (IETF)", "url": "https://www.rfc-editor.org/rfc/rfc6067.txt", "version_or_date": "December 2010", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T08:49:00Z", "relevance": "Registers the 'u' singleton, names the Unicode Consortium and CLDR as maintaining authority, defines attribute and keyword syntax, and states that only the first occurrence of a duplicated attribute or key conveys meaning and that canonical form is lowercase and ordered." }, { "id": "SRC-008", "title": "RFC 6497: BCP 47 Extension T - Transformed Content", "organization": "Internet Engineering Task Force (IETF)", "url": "https://www.rfc-editor.org/rfc/rfc6497.txt", "version_or_date": "February 2012", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T09:02:00Z", "relevance": "Registers the 't' singleton for content produced by transliteration, transcription or translation; defines the tlang source language tag and tfield mechanism subtags, requires the source tag to be a canonical regular language tag, and forbids irregular tags and duplicate field separators." }, { "id": "SRC-009", "title": "ECMA-402: ECMAScript Internationalization API Specification", "organization": "Ecma International, TC39", "url": "https://tc39.es/ecma402/", "version_or_date": "14th edition working specification, 2026-08-07", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T08:55:00Z", "relevance": "Operational definitions of CanonicalizeUnicodeLocaleId and CanonicalizeLocaleList, the requested / available / resolved locale triad, LookupMatchingLocaleByPrefix and best-fit matching, the localeMatcher option, DefaultLocale, and the reporting of resolved Unicode extension values via resolvedOptions." }, { "id": "SRC-010", "title": "HTML Living Standard: The lang, xml:lang and dir attributes", "organization": "WHATWG", "url": "https://html.spec.whatwg.org/multipage/dom.html", "version_or_date": "Living Standard, revision dated 2026-09-03", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T08:57:00Z", "relevance": "Normative treatment of the language of a node, the meaning of an empty lang value as unknown language, the dir attribute values ltr, rtl and auto, the pragma-set default language derived from Content-Language metadata, and the precedence of an element-level declaration over document-level metadata." }, { "id": "SRC-011", "title": "Strings on the Web: Language and Direction Metadata", "organization": "World Wide Web Consortium (W3C) Internationalization Working Group", "url": "https://www.w3.org/TR/string-meta/", "version_or_date": "W3C First Public Working Draft, 16 July 2026", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-03T08:58:00Z", "relevance": "Best practice that language and base direction be carried as metadata at string or document level rather than inferred, the value/lang/dir carrier pattern, first-strong detection as a last-resort fallback, the requirement to isolate inserted strings, and the recommendation against embedding direction control characters in values." }, { "id": "SRC-012", "title": "Choosing a Language Tag (W3C Internationalization Questions)", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/International/questions/qa-choosing-language-tags", "version_or_date": "W3C i18n guidance article, no revision date published; accessed 2026-09-03", "source_type": "secondary", "primary_source": false, "authority_tier": 3, "accessed_at": "2026-09-03T09:00:00Z", "relevance": "Non-normative implementation guidance on keeping tags as short as the distinction requires, honouring Suppress-Script, preferring individual language subtags over macrolanguages for new work while retaining legacy macrolanguage tags, and avoiding private-use subtags because they defeat interoperability." }, { "id": "SRC-013", "title": "ISO 15924 Code Lists", "organization": "Unicode Consortium, acting as ISO 15924 Registration Authority", "url": "https://www.unicode.org/iso15924/codelists.html", "version_or_date": "Current published code list, accessed 2026-09-03", "source_type": "registry", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T08:50:00Z", "relevance": "Authoritative four-letter script codes with English and French names and Unicode property value aliases, plus the exceptionally reserved codes Zyyy-adjacent entries such as True and Root; consulted and found to expose no normative script direction property." }, { "id": "SRC-014", "title": "Unicode Locale Data Markup Language (LDML) Part 9: Message Format (UTS #35)", "organization": "Unicode Consortium", "url": "https://www.unicode.org/reports/tr35/tr35-messageFormat.html", "version_or_date": "Version 48.2, 2026-03-03", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T09:10:00Z", "relevance": "Normative definition of message, pattern, selector, variant key, declaration, external and local variable, placeholder, markup (open, standalone, close), function option and operand type constraints, error classes and required fallback representations, and bidirectional isolation of placeholders." }, { "id": "SRC-015", "title": "Unicode Locale Data Markup Language (LDML) Part 3: Numbers - Language Plural Rules (UTS #35)", "organization": "Unicode Consortium", "url": "https://www.unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules", "version_or_date": "Version 48.2, 2026-03-03", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T09:14:00Z", "relevance": "The six CLDR plural categories (zero, one, two, few, many, other) with other always required, the cardinal versus ordinal distinction, the language-specific nature of the category set, and the plural operands n, i, v, w, f, t, c/e." }, { "id": "SRC-016", "title": "Internationalization Tag Set (ITS) Version 2.0", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/its20/", "version_or_date": "W3C Recommendation, 2013-10-29", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T09:16:00Z", "relevance": "Data categories used throughout this model: Translate, Localization Note (alert/description), Terminology (termInfoRef, termConfidence), Domain, Text Analysis (taClassRef, taIdentRef, taConfidence), Locale Filter (localeFilterList, localeFilterType include/exclude), Provenance (person, org, tool, revPerson, revOrg, revTool, provRef), External Resource, Target Pointer, Id Value, Localization Quality Issue (type, comment, severity, profileRef, enabled), Localization Quality Rating (score, voteScore, profileRef, scoreThreshold), MT Confidence, Allowed Characters, Storage Size." }, { "id": "SRC-017", "title": "XLIFF Version 2.2. Part 1: Core", "organization": "OASIS XML Localisation Interchange File Format TC", "url": "https://docs.oasis-open.org/xliff/xliff-core/v2.2/cs01/xliff-core-v2.2-cs01-part1.html", "version_or_date": "Committee Specification 01, 2025-03-13", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T09:20:00Z", "relevance": "Unit and segment structure, unit id uniqueness within the enclosing file, required srcLang and trgLang, translate attribute with inheritance, segment state values initial/translated/reviewed/final with default initial and the constraint that state must be initial when no target exists, subState prefix rule with the reserved xlf prefix, inline codes ph, pc, sc, ec with originalData and dataRef, and note attributes appliesTo, category and priority." }, { "id": "SRC-018", "title": "XLIFF Version 2.2. Part 2: Extended", "organization": "OASIS XML Localisation Interchange File Format TC", "url": "https://docs.oasis-open.org/xliff/xliff-core/v2.2/cs01/xliff-extended-v2.2-cs01-part2.html", "version_or_date": "Committee Specification 01, 2025-03-13", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T09:24:00Z", "relevance": "Optional modules that show which concerns are separable from the core binding: Translation Candidates (matchQuality, matchSuitability, similarity, origin, type am/mt/icm/idm/tb/tm, ref), Glossary (glossEntry, term, translation, definition, ref, source), Metadata, Validation rules (isPresent, startsWith, endsWith, existsInSource, caseSensitive, occurs), Resource Data, and Size and Length Restriction with sizeRestriction and storageRestriction profiles." }, { "id": "SRC-019", "title": "Web Content Accessibility Guidelines (WCAG) 2.2", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/WCAG22/", "version_or_date": "W3C Recommendation, 2024-12-12", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T09:32:00Z", "relevance": "3.1.1 Language of Page (A) and 3.1.2 Language of Parts (AA) require programmatically determinable language; 1.1.1 Non-text Content (A) requires an equivalent text alternative; 1.2.2 Captions and 1.2.5 Audio Description require locale-specific non-textual alternatives; 3.1.3 and 3.1.4 (AAA) cover unusual words and abbreviations." }, { "id": "SRC-020", "title": "TBX Dialects - Introduction to TermBase eXchange (TBX)", "organization": "TBX-Info (companion documentation to ISO 30042:2019)", "url": "https://tbxinfo.net/tbx-dialects/", "version_or_date": "Companion to ISO 30042:2019, accessed 2026-09-03", "source_type": "first-party-doc", "primary_source": false, "authority_tier": 2, "accessed_at": "2026-09-03T09:36:00Z", "relevance": "Concept-oriented metamodel conceptEntry to langSec to termSec, the public dialects TBX-Core, TBX-Min and TBX-Basic with the rule that all dialects must comply with the core, and the DCA versus DCT styles. Used only for the concept-oriented structure; the normative text is ISO 30042:2019 and is paywalled." }, { "id": "SRC-021", "title": "CLDR 36 Release Note", "organization": "Unicode Consortium", "url": "https://cldr.unicode.org/downloads/cldr-36", "version_or_date": "CLDR 36", "source_type": "registry", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-03T09:38:00Z", "relevance": "Historical first-party evidence for the original assignment and testing-only purpose of pseudo-regions XA (Pseudo-Accents) and XB (Pseudo-Bidi). This superseded CLDR 36 note is cited only for that provenance; it does not pin current locale data or behaviour, which remains governed by the separately cited current LDML release." }, { "id": "SRC-022", "title": "Test your app with pseudolocales", "organization": "Google (Android Developers)", "url": "https://developer.android.com/guide/topics/resources/pseudolocales", "version_or_date": "Last updated 2026-02-26", "source_type": "first-party-doc", "primary_source": false, "authority_tier": 3, "accessed_at": "2026-09-03T09:40:00Z", "relevance": "Scoped implementer evidence for pseudo-localization practice: en-XA adds accents, expands text and brackets each message unit to expose split or concatenated messages and layout breakage; ar-XB reverses direction to expose bidi and mirroring defects; the stated purpose is to find localizability defects before committing text for professional translation." }, { "id": "SRC-023", "title": "XLIFF Version 2.1", "organization": "OASIS XML Localisation Interchange File Format TC", "url": "https://docs.oasis-open.org/xliff/xliff-core/v2.1/os/xliff-core-v2.1-os.html", "version_or_date": "OASIS Standard, 2018-02-13", "source_type": "secondary", "primary_source": false, "authority_tier": 2, "accessed_at": "2026-09-03T09:18:00Z", "relevance": "Ratified baseline for the same core constructs used here: unit, segment with aligned source and target, state and subState, srcLang and trgLang, translate, inline codes with canCopy, canDelete and canReorder, note appliesTo and category, and the optional Translation Candidates, Glossary, Metadata, Change Tracking, Validation, Size and Length Restriction and ITS modules." }, { "id": "SRC-024", "title": "CLDR Development Process", "organization": "Unicode Consortium (CLDR)", "url": "https://cldr.unicode.org/index/process", "version_or_date": "CLDR process documentation, retrieved 2026-09-03", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T00:00:00Z", "relevance": "A worked governance precedent for locale data: vetter/manager/TC roles with explicit vote weights, draft status ladder (unconfirmed, provisional, contributed, approved), release phases, and the statement that final release approval rests with the CLDR Technical Committee." }, { "id": "SRC-025", "title": "PROV-O: The PROV Ontology", "organization": "World Wide Web Consortium (W3C)", "url": "https://www.w3.org/TR/prov-o/", "version_or_date": "W3C Recommendation, 30 April 2013; namespace http://www.w3.org/ns/prov#", "source_type": "ontology", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T00:00:00Z", "relevance": "Entity/Activity/Agent and wasGeneratedBy, wasAttributedTo, wasDerivedFrom, wasRevisionOf, hadPrimarySource, startedAtTime/endedAtTime used to express binding provenance without inventing a local provenance vocabulary." }, { "id": "SRC-026", "title": "RFC 3339: Date and Time on the Internet: Timestamps", "organization": "Internet Engineering Task Force (IETF)", "url": "https://www.rfc-editor.org/rfc/rfc3339.html", "version_or_date": "RFC 3339, July 2002", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T00:00:00Z", "relevance": "Normative date-time format requiring seconds and an explicit numeric offset or Z, plus the -00:00 unknown-local-offset convention; governs every timestamp in this model." }, { "id": "SRC-027", "title": "Universal Electronic Records Management (ERM) Requirements", "organization": "U.S. National Archives and Records Administration (NARA)", "url": "https://www.archives.gov/records-mgmt/policy/universalermrequirements", "version_or_date": "Version 3, June 2023", "source_type": "public-authority", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T00:00:00Z", "relevance": "Lifecycle requirement categories (Capture, Maintenance and Use, Disposal, Transfer, Metadata, Reporting) with Must Have / Should Have classification, and the program-level versus system-level split used for retention, disposition and tombstone rules." }, { "id": "SRC-028", "title": "ISO 15924 Registration Authority", "organization": "Unicode Consortium (ISO 15924 Registration Authority)", "url": "https://www.unicode.org/iso15924/", "version_or_date": "ISO 15924:2022 Registration Authority pages, retrieved 2026-09-03", "source_type": "registry", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T00:00:00Z", "relevance": "Confirms that script-code assignment, change requests and the Notice of Changes are external registration-authority responsibilities, keeping script identity outside this model's lifecycle." }, { "id": "SRC-029", "title": "ISO 639-3 Registration Authority", "organization": "SIL Global", "url": "https://iso639-3.sil.org/about", "version_or_date": "ISO 639-3 Registration Authority pages, retrieved 2026-09-03", "source_type": "registry", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T00:00:00Z", "relevance": "Establishes SIL Global as the language coding agency receiving and registering change requests, so language-code creation, change and retirement are outside this mixin's boundary." }, { "id": "SRC-030", "title": "Language Tag Extensions Registry", "organization": "Internet Assigned Numbers Authority (IANA)", "url": "https://www.iana.org/assignments/language-tag-extensions-registry", "version_or_date": "Last updated 2014-04-02", "source_type": "registry", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T00:00:00Z", "relevance": "Registers the 'u' (RFC 6067) and 't' (RFC 6497) singleton extensions with the Unicode Consortium as authority, which constrains which extension subtags a locale profile may legitimately permit." }, { "id": "SRC-031", "title": "Language Tags and Locale Identifiers for the World Wide Web", "organization": "World Wide Web Consortium (W3C) Internationalization Working Group", "url": "https://www.w3.org/TR/ltli/", "version_or_date": "W3C Working Draft, 7 October 2020", "source_type": "first-party-doc", "primary_source": true, "authority_tier": 2, "accessed_at": "2026-09-03T00:00:00Z", "relevance": "Guidance that specifications MUST reference BCP 47 as a whole, that well-formedness is the baseline requirement while validity is a stronger authoring recommendation, and that language tags and locale identifiers are distinct concepts. Working Draft status, so treated as guidance rather than a normative requirement." }, { "id": "SRC-032", "title": "ISO 30042:2019 Management of terminology resources — TermBase eXchange (TBX)", "organization": "International Organization for Standardization (ISO)", "url": "https://www.iso.org/standard/62510.html", "version_or_date": "ISO 30042:2019 (revises and withdraws ISO 30042:2008)", "source_type": "standard", "primary_source": true, "authority_tier": 1, "accessed_at": "2026-09-03T00:00:00Z", "relevance": "ISO catalogue and edition evidence only: confirms the existence, title, edition and withdrawal relationship of ISO 30042:2019. The paywalled normative text was not read, so this record supports no clause-level, metamodel or conformance claim; public companion documentation supplies the limited structural context." } ], "structure": { "bundles": [ { "id": "loc-locale-identity-bundle", "name": "Linguistic and locale identity", "description": "Everything needed to state, normalize and validate which language, script and locale a host record is bound to, and to keep that binding stable as external registries change.", "rationale": "BCP 47 separates a tag's syntax from its validity against a registry, and UTS #35 separates a language identifier from a locale identifier. An agent cannot safely compare, store or display a linguistic declaration without all three of these settled first: the canonical tag, its registry backing, and the script and direction it implies.", "source_refs": [ "SRC-001", "SRC-003", "SRC-004", "SRC-013" ], "layers": [ { "id": "loc-locale-tag-layer", "name": "Language tag identity and registry binding", "description": "The governed tag string, its subtag structure and canonical form, and its dereference into the authoritative subtag registry including deprecation and replacement.", "source_refs": [ "SRC-001", "SRC-003", "SRC-012" ], "findings": [ { "id": "loc-locale-tag-identity", "name": "Language tag identity, structure and canonical form", "description": "The BCP 47 language tag that identifies the linguistic context, the role of each subtag it contains, the canonical and case-regularized form in which it is stored, and whether it is merely well-formed or also valid.", "source_refs": [ "SRC-001", "SRC-004", "SRC-009", "SRC-012" ], "questions": [ { "id": "loc-locale-q-tag-value", "text": "Which language tag identifies this linguistic context, and in which canonical form is it stored?", "kind": "identity", "answer_data": [ "Canonical language tag string", "Tag string exactly as received, where it differs", "Name and version of the canonicalization profile applied", "Timestamp at which the canonical form was computed" ] }, { "id": "loc-locale-q-tag-structure", "text": "Which subtags does the tag contain and what role does each one play?", "kind": "composition", "answer_data": [ "Primary language subtag", "Script subtag if present", "Region subtag if present", "Ordered list of variant subtags", "Extension singletons present", "Private-use sequence if present" ] }, { "id": "loc-locale-q-tag-wellformed", "text": "Is the tag well-formed only, or also valid against the subtag registry?", "kind": "validation", "answer_data": [ "Well-formedness verdict with failing position", "Validity verdict per subtag", "List of subtags absent from the registry", "Identity and version of the checker used" ] }, { "id": "loc-locale-q-tag-case", "text": "Which casing and subtag ordering conventions were applied, and are they treated as significant for comparison?", "kind": "constraint", "answer_data": [ "Case normalization applied flag", "Variant and extension ordering rule reference", "Assertion that comparison is case-insensitive", "Deviations retained for display purposes" ] }, { "id": "loc-locale-q-tag-privateuse", "text": "Does the tag carry private-use or otherwise unregistered subtags, and what do they mean inside the adopting Dimension?", "kind": "interoperability", "answer_data": [ "Private-use subtag sequence", "Local semantics definition reference", "Publication status for external interfaces", "Interoperability risk note" ] } ], "data_elements": [ { "id": "loc-locale-de-canonical-tag", "name": "Canonical language tag", "description": "The stored, case-regularized language tag used as the natural key for this linguistic declaration.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-009" ] }, { "id": "loc-locale-de-received-tag", "name": "As-received tag string", "description": "The identifier exactly as supplied by the upstream system, retained when it differs from the canonical form.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001" ] }, { "id": "loc-locale-de-primary-language", "name": "Primary language subtag", "description": "The leading language subtag of the tag, resolved against the subtag registry.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-003" ] }, { "id": "loc-locale-de-variant-subtags", "name": "Ordered variant subtags", "description": "The variant subtags carried by the tag, in the order that the canonical form fixes.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001", "SRC-004" ] }, { "id": "loc-locale-de-privateuse-sequence", "name": "Private-use subtag sequence", "description": "The x-prefixed sequence whose meaning is defined only by private agreement inside the adopting Dimension.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-012" ] }, { "id": "loc-locale-de-wellformedness-verdict", "name": "Well-formedness and validity verdict", "description": "The combined outcome of syntactic parsing and registry validation for the stored tag.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001", "SRC-002" ] } ], "artifacts": [], "inline_only_rationale": "A language tag is a short governed identifier string plus the parse result derived from it. It is carried inline on the host record and dereferenced against an externally published registry, so there is no separate stored object for this model to own." }, { "id": "loc-locale-registry-binding", "name": "Subtag registry binding, deprecation and replacement", "description": "The pinned registry snapshot against which subtags are validated, the deprecation status and prescribed Preferred-Value replacement of each subtag, the handling of grandfathered and redundant registrations, and the macrolanguage, collection and extlang caveats that make a syntactically fine tag semantically wrong.", "source_refs": [ "SRC-001", "SRC-003", "SRC-012" ], "questions": [ { "id": "loc-locale-q-registry-pin", "text": "Which registry snapshot, identified by its File-Date, was used to validate these subtags?", "kind": "provenance", "answer_data": [ "Registry File-Date", "Publisher URL of the snapshot", "Retrieval timestamp", "Content digest of the snapshot" ] }, { "id": "loc-locale-q-registry-deprecated", "text": "Is any subtag or the whole tag deprecated, and what replacement does the registry record prescribe?", "kind": "state", "answer_data": [ "Deprecated field value per affected subtag", "Preferred-Value replacement", "Resulting replacement tag", "Whether the replacement has been applied to the stored value" ] }, { "id": "loc-locale-q-registry-grandfathered", "text": "Is the identifier a grandfathered or redundant registration, and how is it mapped forward?", "kind": "exception", "answer_data": [ "Registry Type value", "Irregular versus regular classification", "Preferred-Value mapping where one exists", "Decision to retain the tag as received" ] }, { "id": "loc-locale-q-registry-macrolanguage", "text": "Does the primary language subtag denote a macrolanguage, a collection or an extended language, and which encompassed language is actually meant?", "kind": "classification", "answer_data": [ "Registry Scope value", "Macrolanguage field of the record", "Intended individual language subtag", "Note on the permanently reserved second and third extlang positions" ] }, { "id": "loc-locale-q-registry-drift", "text": "How is drift between a stored identifier and a newer registry snapshot detected and reconciled?", "kind": "temporal", "answer_data": [ "Timestamp of the last revalidation", "Delta between the pinned and current snapshot", "Affected subtags and stored identifiers", "Reconciliation decision and the party that made it" ] } ], "data_elements": [ { "id": "loc-locale-de-registry-filedate", "name": "Registry snapshot File-Date", "description": "The File-Date of the subtag registry snapshot used as the validation authority; a version pin, never an identifier.", "value_kind": "date", "cardinality": "1", "required": true, "source_refs": [ "SRC-003" ] }, { "id": "loc-locale-de-subtag-record-ref", "name": "Subtag record reference", "description": "A pointer to the individual registry record backing each subtag of the stored identifier.", "value_kind": "reference", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-003", "SRC-001" ] }, { "id": "loc-locale-de-deprecation-status", "name": "Deprecation status and replacement", "description": "The Deprecated marker and Preferred-Value replacement recorded for an affected subtag, with the applied flag.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-001", "SRC-003" ] }, { "id": "loc-locale-de-scope-classification", "name": "Registry Scope classification", "description": "The registry Scope value of the primary language subtag, such as macrolanguage, collection, special or private-use.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-003" ] }, { "id": "loc-locale-de-revalidated-at", "name": "Last revalidation time", "description": "The observation time at which the stored identifier was last checked against a registry snapshot.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] } ], "artifacts": [ { "id": "loc-locale-art-registry-snapshot", "name": "Pinned subtag registry reference and cache manifest", "description": "A reference to the externally owned IANA Language Subtag Registry snapshot used for validation, pinned by publisher URL, File-Date and digest. An optional read-only local cache may support reproducibility, but the IANA-published registry remains the authority and this model never claims ownership of its lifecycle.", "media_or_form": [ "Reference manifest containing publisher URL, File-Date and digest", "Optional read-only cached record-jar file and derived index" ], "serial": true, "identity_strategy": "Externally authoritative publisher URL plus content digest; the registry File-Date is only a version pin and ordering key. A local cache reuses that external identity and never mints a competing registry identity.", "source_refs": [ "SRC-003", "SRC-001" ] } ], "inline_only_rationale": null } ] }, { "id": "loc-locale-script-layer", "name": "Script and directionality declaration", "description": "The writing system a linguistic context uses and the direction and orientation metadata a consumer needs in order to display it correctly.", "source_refs": [ "SRC-013", "SRC-005", "SRC-011", "SRC-010" ], "findings": [ { "id": "loc-locale-script-identity", "name": "Script identity and script-subtag suppression", "description": "The ISO 15924 script in which the linguistic context is written, whether it was stated explicitly, deliberately omitted because the registry suppresses it, or inferred by likely-subtag expansion.", "source_refs": [ "SRC-013", "SRC-001", "SRC-003", "SRC-004", "SRC-012" ], "questions": [ { "id": "loc-locale-q-script-code", "text": "Which ISO 15924 script code applies to this linguistic context?", "kind": "identity", "answer_data": [ "Four-letter script code", "Script registry record reference", "Origin of the code: explicit subtag, likely-subtag expansion or host declaration" ] }, { "id": "loc-locale-q-script-suppress", "text": "Was the script subtag omitted because the registry records a Suppress-Script value for that language?", "kind": "constraint", "answer_data": [ "Suppress-Script value from the language record", "Whether the omission is justified by that value", "Registry record reference", "Reviewer decision where the omission was overridden" ] }, { "id": "loc-locale-q-script-inferred", "text": "If the script was not declared, how was it inferred and with what confidence?", "kind": "provenance", "answer_data": [ "Inference method such as likely-subtag expansion or content detection", "CLDR data version used", "Confidence indicator", "Flag marking the value as inferred rather than declared" ] }, { "id": "loc-locale-q-script-mixed", "text": "Does the content mix writing systems, and how is that recorded without altering the declared tag?", "kind": "composition", "answer_data": [ "Additional observed script codes", "Per-span script annotation reference", "Mixed-script flag", "Reason the declared tag was left unchanged" ] } ], "data_elements": [ { "id": "loc-locale-de-script-code", "name": "Script code", "description": "The four-letter ISO 15924 code identifying the writing system of the linguistic context.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-013", "SRC-001" ] }, { "id": "loc-locale-de-script-origin", "name": "Script value origin", "description": "Whether the script code was explicitly declared, expanded from likely subtags, or detected from content.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-004", "SRC-011" ] }, { "id": "loc-locale-de-suppress-script", "name": "Suppress-Script value", "description": "The Suppress-Script field of the language record, which justifies omitting the script subtag.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-003" ] }, { "id": "loc-locale-de-observed-scripts", "name": "Additional observed scripts", "description": "Script codes observed in the content beyond the declared script, recorded without changing the declared tag.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-013", "SRC-011" ] } ], "artifacts": [], "inline_only_rationale": "Script identity is one governed four-letter code plus a small set of derivation flags, carried inline on the host declaration. The authoritative script list is an externally maintained registry that this model references rather than reproduces." }, { "id": "loc-locale-direction-hint", "name": "Base direction and writing-mode hints", "description": "The declared base paragraph direction and layout orientation that a consumer needs in order to display a string correctly, recorded as explicit metadata rather than guessed from the characters in the value.", "source_refs": [ "SRC-011", "SRC-010", "SRC-005", "SRC-004" ], "questions": [ { "id": "loc-locale-q-direction-value", "text": "What base direction is declared for this string or resource, and at which scope?", "kind": "definition", "answer_data": [ "Direction value: left-to-right, right-to-left or automatic", "Scope of the declaration: string, field, record or document", "Declaring party reference", "Effective time of the declaration" ] }, { "id": "loc-locale-q-direction-heuristic", "text": "Was the direction stated explicitly or produced by a first-strong heuristic, and what residual risk remains?", "kind": "quality", "answer_data": [ "Explicit versus heuristic flag", "Name of the heuristic applied", "Known failure cases such as a value opening with an opposite-direction run", "Confidence indicator" ] }, { "id": "loc-locale-q-direction-layout", "text": "Which character order and line order apply to the layout of this content?", "kind": "classification", "answer_data": [ "Character order value", "Line order value", "Locale data reference supplying the orientation", "Data version" ] }, { "id": "loc-locale-q-direction-transfer", "text": "How are language and direction metadata preserved when a value is embedded in another string or transferred between systems?", "kind": "interoperability", "answer_data": [ "Carrier field names for value, language and direction", "Isolation requirement for inserted values", "Prohibition on embedding direction control characters in the value", "Transfer format binding and its fallback behaviour" ] } ], "data_elements": [ { "id": "loc-locale-de-base-direction", "name": "Base direction", "description": "The declared paragraph direction for the value, expressed as left-to-right, right-to-left or automatic.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-010", "SRC-011" ] }, { "id": "loc-locale-de-direction-origin", "name": "Direction value origin", "description": "Whether the base direction was explicitly declared, inherited from a wider scope, or produced by a first-strong heuristic.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-011" ] }, { "id": "loc-locale-de-character-order", "name": "Character order", "description": "The direction in which characters run within a line, taken from locale layout data.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005" ] }, { "id": "loc-locale-de-line-order", "name": "Line order", "description": "The direction in which lines stack on a page, taken from locale layout data and constrained to be orthogonal to character order.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-005" ] }, { "id": "loc-locale-de-isolation-required", "name": "Isolation required flag", "description": "Whether a consumer must directionally isolate this value when inserting it into surrounding text.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011" ] } ], "artifacts": [], "inline_only_rationale": "Direction and writing-mode data are small metadata attributes that must travel with the string value on the host record. Promoting them to a separate stored object would break the value-plus-metadata locality that makes correct display possible." } ] }, { "id": "loc-locale-locale-layer", "name": "Locale identity and convention bindings", "description": "The locale identifier that extends language identity with Unicode extension fields, and the versioned references to the externally governed convention profiles that those fields select.", "source_refs": [ "SRC-004", "SRC-007", "SRC-008", "SRC-009" ], "findings": [ { "id": "loc-locale-unicode-locale-id", "name": "Unicode locale identifier and extension fields", "description": "The locale identifier as distinct from the plain language identifier: the -u extension attributes and keywords that refine behaviour, the -t extension that records transformed content and its source language, and the canonicalization that makes two such identifiers comparable.", "source_refs": [ "SRC-004", "SRC-007", "SRC-008", "SRC-009" ], "questions": [ { "id": "loc-locale-q-locale-vs-language", "text": "Which Unicode locale identifier applies here, and how does it differ from the plain language identifier recorded for the same context?", "kind": "identity", "answer_data": [ "Canonical Unicode locale identifier", "Underlying Unicode language identifier", "Summary of the difference between the two", "Reason the extension fields were added" ] }, { "id": "loc-locale-q-locale-u-keys", "text": "Which Unicode extension keys and types are asserted, and which values are merely environment defaults?", "kind": "composition", "answer_data": [ "Key and type pairs such as calendar, collation, numbering system, hour cycle, first day of week, measurement system, region override and time zone", "Attribute list preceding the keywords", "Asserted versus default flag per key", "Source of each asserted value" ] }, { "id": "loc-locale-q-locale-t-source", "text": "Does a transformed-content extension declare that this value was derived from another language, and from which source?", "kind": "provenance", "answer_data": [ "Source language tag carried by the transformed-content extension", "Transformation mechanism field subtags", "Human-readable description of the transformation", "Flag marking the value as transformed rather than authored" ] }, { "id": "loc-locale-q-locale-canonicalization", "text": "Which canonicalization was applied to the extension sequence, and were duplicate attributes or keys dropped?", "kind": "validation", "answer_data": [ "Canonicalization specification reference and version", "Ordering applied to attributes and keywords", "Duplicate attributes and keys discarded after the first occurrence", "Whether true-valued types were removed" ] }, { "id": "loc-locale-q-locale-unknown-keys", "text": "How does the consuming boundary handle extension keys it does not recognise or support?", "kind": "exception", "answer_data": [ "List of unknown or unsupported keys", "Ignore-versus-reject policy in force", "Value actually honoured and reported back", "Divergence note for downstream consumers" ] } ], "data_elements": [ { "id": "loc-locale-de-unicode-locale-id", "name": "Canonical Unicode locale identifier", "description": "The locale identifier in canonical syntax, including any extension sequences.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-009" ] }, { "id": "loc-locale-de-extension-keywords", "name": "Unicode extension keywords", "description": "The ordered key and type pairs asserted in the Unicode locale extension.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-007", "SRC-004" ] }, { "id": "loc-locale-de-transform-source-language", "name": "Transformed-content source language", "description": "The canonical source language tag recorded when the value was transliterated, transcribed or translated from another language.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-008" ] }, { "id": "loc-locale-de-canonicalization-profile", "name": "Canonicalization profile and version", "description": "Which canonicalization rules and data version produced the stored canonical identifier.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-004", "SRC-009" ] }, { "id": "loc-locale-de-unsupported-keys", "name": "Unsupported extension keys", "description": "Keys present in the identifier that the consuming environment did not honour.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-007", "SRC-009" ] } ], "artifacts": [], "inline_only_rationale": "The locale identifier and its extension fields form a single governed identifier string with a parsed key and value view derived from it. The key and type vocabularies are maintained externally per data release and are referenced, not copied, so no artifact of this model exists." }, { "id": "loc-locale-convention-binding", "name": "Referenced formatting and collation convention profiles", "description": "The bindings from a locale declaration to externally maintained number, date, time, unit and collation convention profiles, held strictly as selections and versioned references rather than as duplicated convention data.", "source_refs": [ "SRC-004", "SRC-005", "SRC-007", "SRC-009" ], "questions": [ { "id": "loc-locale-q-convention-selection", "text": "Which convention profiles does this locale declaration select, and where are their definitions maintained?", "kind": "relationship", "answer_data": [ "Profile kind: calendar, numbering, collation, measurement or time zone", "Selector key and type", "Reference to the owning specification or data repository", "Profile version" ] }, { "id": "loc-locale-q-convention-version", "text": "Which data release supplied each referenced profile, and is that release pinned or floating?", "kind": "provenance", "answer_data": [ "Locale data release version", "Pinned versus floating flag", "Retrieval or binding timestamp", "Identity of the implementing library" ] }, { "id": "loc-locale-q-convention-ownership", "text": "Where does responsibility for the actual formatting, parsing or sorting behaviour sit?", "kind": "ownership", "answer_data": [ "Reference to the owning component or model", "Declaration-only assertion made by this model", "Escalation contact for behavioural defects" ] }, { "id": "loc-locale-q-convention-unavailable", "text": "What is recorded when a selected convention profile is unavailable in the consuming environment?", "kind": "exception", "answer_data": [ "Selector that could not be honoured", "Substituted profile actually used", "Resolved value as reported back by the consumer", "Divergence flag and notification target" ] } ], "data_elements": [ { "id": "loc-locale-de-convention-profile-ref", "name": "Convention profile reference", "description": "A versioned pointer to an externally governed formatting, collation or measurement profile selected by this declaration.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-004", "SRC-007" ] }, { "id": "loc-locale-de-convention-data-version", "name": "Locale data release version", "description": "The release of the external locale data repository that supplied the referenced profiles.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004", "SRC-009" ] }, { "id": "loc-locale-de-convention-substitution", "name": "Profile substitution record", "description": "The record of a selected profile being unavailable and the substitute actually applied by the consumer.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-009", "SRC-004" ] } ], "artifacts": [], "inline_only_rationale": "These bindings are pure reference data: selector keys plus versioned pointers to externally governed profiles. Copying the profile content into this model would duplicate an external data repository and create a second, unowned source of truth for behaviour this model does not own." } ] } ] }, { "id": "loc-locale-negotiation-bundle", "name": "Preference, availability and locale resolution", "description": "How a linguistic preference is declared, what is actually available to satisfy it, and how the two are reconciled into a single resolved locale with a recorded, reproducible reason.", "rationale": "The matching standard defines ranges, filtering and lookup but explicitly leaves the no-match default to the application, and the internationalization API separates requested, available and resolved locales while permitting an implementation-defined best-fit matcher. An agent therefore cannot infer the outcome from the inputs and must be told the inventory, the scheme and the recorded fallback reason.", "source_refs": [ "SRC-002", "SRC-006", "SRC-009", "SRC-004" ], "layers": [ { "id": "loc-locale-preference-layer", "name": "Declared preferences and available inventory", "description": "The requested side and the supply side of negotiation: an ordered list of language ranges with its provenance, and the set of locales for which resources actually exist together with the configured default.", "source_refs": [ "SRC-002", "SRC-006", "SRC-009" ], "findings": [ { "id": "loc-locale-preference-list", "name": "Ordered language preferences and language ranges", "description": "The requested, ordered or weighted list of language ranges that expresses a preference, the range syntax used, where the preference came from, and the limits on reusing it beyond the interaction that produced it.", "source_refs": [ "SRC-002", "SRC-006", "SRC-009" ], "questions": [ { "id": "loc-locale-q-preference-order", "text": "Which ordered language ranges express the requested preference, and in what priority order?", "kind": "composition", "answer_data": [ "Ordered list of range strings", "Explicit position of each range", "Scope the preference applies to", "Whether the order was supplied or derived from weights" ] }, { "id": "loc-locale-q-preference-range-kind", "text": "Are the supplied ranges basic or extended, and do any of them contain wildcards?", "kind": "classification", "answer_data": [ "Range kind per entry: basic or extended", "Wildcard positions within each range", "Range well-formedness verdict", "Handling rule for the universal range" ] }, { "id": "loc-locale-q-preference-weights", "text": "Are relative weights attached to the ranges, and how are ties and zero weights treated?", "kind": "measurement", "answer_data": [ "Weight per range", "Default weight applied where none was supplied", "Tie-break rule", "Treatment of zero-weight or explicitly rejected ranges" ] }, { "id": "loc-locale-q-preference-origin", "text": "Where did this preference come from, and is it a stated choice or an inferred signal?", "kind": "provenance", "answer_data": [ "Preference source: explicit setting, request field, host default or inference", "Declared versus inferred flag", "Capture timestamp in event time", "Capturing system identity" ] }, { "id": "loc-locale-q-preference-reuse", "text": "What limits apply to reusing this preference outside the interaction that produced it?", "kind": "privacy", "answer_data": [ "Linkability and fingerprinting caveat", "Permitted secondary uses", "Retention class assigned to the record", "Reference to the owning privacy policy" ] } ], "data_elements": [ { "id": "loc-locale-de-range-list", "name": "Ordered language range list", "description": "The prioritized list of language ranges expressing the requested preference.", "value_kind": "collection", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-002", "SRC-006" ] }, { "id": "loc-locale-de-range-kind", "name": "Language range kind", "description": "Whether the supplied ranges follow the basic or the extended range syntax.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-002" ] }, { "id": "loc-locale-de-range-weight", "name": "Range weight", "description": "The relative weight attached to a range where the transport supplies one.", "value_kind": "number", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "loc-locale-de-preference-source", "name": "Preference source", "description": "The classified origin of the preference declaration.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-006", "SRC-009" ] }, { "id": "loc-locale-de-preference-captured-at", "name": "Preference capture time", "description": "The event time at which the preference was stated or observed, recorded separately from any later ingestion time.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-006" ] }, { "id": "loc-locale-de-preference-declared-flag", "name": "Declared or inferred marker", "description": "Marks whether the preference was explicitly stated by a party or inferred from a signal.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-006", "SRC-011" ] } ], "artifacts": [], "inline_only_rationale": "A preference list is an ordered collection of short range strings with optional weights. It belongs inline to the request, session or party record that owns it; promoting it to a standalone artifact would imply a custodianship over party data that this mixin does not hold." }, { "id": "loc-locale-availability-inventory", "name": "Available locale inventory and default locale", "description": "The set of locales for which resources actually exist within a defined scope, how complete each of them is, the configured default when nothing matches, and how the inventory is versioned and refreshed.", "source_refs": [ "SRC-002", "SRC-009", "SRC-004" ], "questions": [ { "id": "loc-locale-q-inventory-set", "text": "Which locales are available within this scope, and at what granularity is availability asserted?", "kind": "definition", "answer_data": [ "List of available locale identifiers", "Scope descriptor the list applies to", "Granularity: whole bundle, individual resource or single field", "Canonical form used across the list" ] }, { "id": "loc-locale-q-inventory-completeness", "text": "How complete is each available locale, and what threshold counts as available at all?", "kind": "quality", "answer_data": [ "Completeness measure per locale", "Availability threshold rule in force", "Partial-availability flag", "Measurement timestamp" ] }, { "id": "loc-locale-q-inventory-default", "text": "Which locale is the configured default when no requested range matches anything available?", "kind": "decision", "answer_data": [ "Default locale identifier", "Defaulting behaviour: default tag, empty result or error", "Configuring authority", "Effective-from time of the configuration" ] }, { "id": "loc-locale-q-inventory-refresh", "text": "How often is the inventory regenerated, and how are stale entries detected?", "kind": "temporal", "answer_data": [ "Inventory version identifier", "Generation timestamp", "Refresh cadence", "Rule for treating an entry as stale" ] } ], "data_elements": [ { "id": "loc-locale-de-available-locale-set", "name": "Available locale set", "description": "The canonical identifiers of locales for which resources exist in the declared scope.", "value_kind": "collection", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-002", "SRC-009" ] }, { "id": "loc-locale-de-inventory-version", "name": "Inventory version identifier", "description": "The monotonic version identifier of an inventory manifest, used to make a resolution reproducible.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-009" ] }, { "id": "loc-locale-de-inventory-generated-at", "name": "Inventory generation time", "description": "The observation time at which the manifest was generated from the underlying resource catalogue.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-009" ] }, { "id": "loc-locale-de-default-locale", "name": "Configured default locale", "description": "The locale used when no requested range matches, together with the declared defaulting behaviour.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-002", "SRC-009" ] }, { "id": "loc-locale-de-completeness-measure", "name": "Locale completeness measure", "description": "The proportion or count of resources present for an available locale against the reference locale.", "value_kind": "number", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-002" ] } ], "artifacts": [ { "id": "loc-locale-art-availability-manifest", "name": "Available locale inventory manifest", "description": "A versioned, machine-readable list of the locale identifiers for which resources exist within a defined scope, with per-locale completeness and generation metadata, cited by resolution outcomes so that they can be reproduced.", "media_or_form": [ "Structured manifest record", "Generated read-only index over a resource catalogue" ], "serial": true, "identity_strategy": "Scope identifier issued by the owning resource system plus the manifest version identifier. Generation timestamps order and version the manifest but never identify it.", "source_refs": [ "SRC-002", "SRC-009" ] } ], "inline_only_rationale": null } ] }, { "id": "loc-locale-resolution-layer", "name": "Matching, resolution and declaration role", "description": "The reconciliation of preference against availability into one resolved locale with an explicit fallback reason, and the role a given declaration plays relative to content, audience and interface.", "source_refs": [ "SRC-002", "SRC-009", "SRC-006", "SRC-010" ], "findings": [ { "id": "loc-locale-resolution-record", "name": "Locale matching, resolution outcome and fallback reason", "description": "The record of how a requested preference was matched against the available inventory: which scheme was applied, which locale was resolved, which fallback steps were traversed, why, and against which data versions the result can be reproduced.", "source_refs": [ "SRC-002", "SRC-004", "SRC-009", "SRC-006" ], "questions": [ { "id": "loc-locale-q-resolution-scheme", "text": "Which matching scheme was applied, with which parameters, and is it deterministic across hosts?", "kind": "process", "answer_data": [ "Scheme: basic filtering, extended filtering, lookup or best fit", "Implementation identity and version", "Scheme parameters supplied", "Statement of whether the scheme is implementation-defined" ] }, { "id": "loc-locale-q-resolution-outcome", "text": "Which locale was resolved, and is it an exact match, a truncation or the configured default?", "kind": "state", "answer_data": [ "Resolved locale identifier", "Outcome class: exact, fallback, default or none", "Requested range that matched", "Available inventory entry that matched" ] }, { "id": "loc-locale-q-resolution-chain", "text": "What fallback chain was traversed, and what reason is recorded for each step?", "kind": "evidence", "answer_data": [ "Ordered fallback chain of candidate identifiers", "Reason code per step", "Subtags dropped at each truncation", "Per-step timestamps where steps are separately observable" ] }, { "id": "loc-locale-q-resolution-versions", "text": "When was the resolution performed, and against which inventory version and registry snapshot?", "kind": "temporal", "answer_data": [ "Resolution event time", "Ingestion time of the outcome record where it differs", "Inventory manifest version", "Registry snapshot File-Date and locale data release" ] }, { "id": "loc-locale-q-resolution-override", "text": "Who may override or re-run a resolution, and where is the override recorded?", "kind": "authority", "answer_data": [ "Role permitted to override", "Override locale identifier", "Justification text", "Reference to the policy that grants the authority" ] } ], "data_elements": [ { "id": "loc-locale-de-resolved-locale", "name": "Resolved locale identifier", "description": "The single locale identifier that the negotiation produced for this context.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-002", "SRC-009" ] }, { "id": "loc-locale-de-outcome-class", "name": "Resolution outcome class", "description": "Classifies the result as an exact match, a fallback, the configured default, or no match at all.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-002", "SRC-009" ] }, { "id": "loc-locale-de-fallback-chain", "name": "Fallback chain", "description": "The ordered candidate identifiers considered between the request and the resolved value.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-002", "SRC-004" ] }, { "id": "loc-locale-de-fallback-reason", "name": "Fallback reason code", "description": "The reason recorded for each step of the fallback chain, such as subtag truncation, unavailable resource or default applied.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "loc-locale-de-resolved-at", "name": "Resolution event time", "description": "The event time at which the resolution was performed, recorded separately from the ingestion time of the outcome record.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-009", "SRC-006" ] }, { "id": "loc-locale-de-matcher-identity", "name": "Matcher identity and version", "description": "The implementation and version that performed the match, needed because best-fit behaviour is implementation-defined.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-009" ] }, { "id": "loc-locale-de-override-applied", "name": "Override applied marker", "description": "Marks that an authorised party replaced the negotiated result with an explicit locale.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-009" ] } ], "artifacts": [ { "id": "loc-locale-art-resolution-trace", "name": "Locale resolution outcome record", "description": "A serial record of one resolution event capturing the requested ranges, the inventory and registry versions consulted, the matching scheme and implementation, the resolved locale and the ordered fallback reasons. It documents the outcome of this model's own declaration and is not a general audit log.", "media_or_form": [ "Structured outcome record", "Append-only resolution trace entry" ], "serial": true, "identity_strategy": "Master-system identifier of the interaction or batch job that requested the resolution, plus a ULID minted by the adopting Dimension for the individual outcome record. The resolution timestamp orders records but never identifies them.", "source_refs": [ "SRC-002", "SRC-009", "SRC-004" ] } ], "inline_only_rationale": null }, { "id": "loc-locale-usage-role", "name": "Content language versus interface locale and declaration provenance", "description": "Which role a locale declaration plays - the language of the content itself, the audience it is intended for, the user interface locale, or the source language of transformed content - who asserted it, and how conflicts between declared and detected values are settled.", "source_refs": [ "SRC-006", "SRC-010", "SRC-011", "SRC-012" ], "questions": [ { "id": "loc-locale-q-role-kind", "text": "What role does this declaration play: the language of the content, the intended audience, or the interface locale?", "kind": "classification", "answer_data": [ "Role code: content language, intended audience, interface locale or source language", "Scope over which the role applies", "Other roles co-existing on the same record", "Reason multiple roles are present" ] }, { "id": "loc-locale-q-role-asserter", "text": "Which party or system asserted this declaration, and on what authority?", "kind": "ownership", "answer_data": [ "Asserting party or system identifier", "Basis of the authority to assert", "Assertion event time", "Reference to any declaration this one supersedes" ] }, { "id": "loc-locale-q-role-detected", "text": "Was the language declared by an authority or automatically detected, and how is a disagreement between the two settled?", "kind": "decision", "answer_data": [ "Declared value", "Detected value", "Detector identity, version and confidence", "Precedence rule applied and the resulting effective value" ] }, { "id": "loc-locale-q-role-precedence", "text": "Which declaration prevails when several apply at different scopes to the same content?", "kind": "constraint", "answer_data": [ "Scope precedence order", "Reference to the winning declaration", "Treatment of an empty value as unknown language", "Handling of undetermined, multiple-language and no-linguistic-content values" ] } ], "data_elements": [ { "id": "loc-locale-de-declaration-role", "name": "Declaration role", "description": "Classifies what the declaration is about: content language, intended audience, interface locale or source language.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-006", "SRC-010" ] }, { "id": "loc-locale-de-asserting-party", "name": "Asserting party reference", "description": "A reference into the party or system-of-record model identifying who made the declaration.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-011" ] }, { "id": "loc-locale-de-declared-value", "name": "Declared language value", "description": "The identifier explicitly declared by an authority for this role and scope.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-010", "SRC-011" ] }, { "id": "loc-locale-de-detected-value", "name": "Detected language value", "description": "The identifier produced by automatic detection, stored separately so it can never overwrite a declared value.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011" ] }, { "id": "loc-locale-de-detection-confidence", "name": "Detection confidence", "description": "The confidence reported by the detector for a detected value.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-011" ] }, { "id": "loc-locale-de-asserted-at", "name": "Assertion event time", "description": "The event time at which the declaration was asserted, recorded separately from the time this model ingested it.", "value_kind": "timestamp", "cardinality": "1", "required": true, "source_refs": [ "SRC-010", "SRC-011" ] }, { "id": "loc-locale-de-scope-precedence-rank", "name": "Scope precedence rank", "description": "The rank used to decide which of several overlapping declarations governs a given value.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-010" ] } ], "artifacts": [], "inline_only_rationale": "Role, asserting party and the declared-versus-detected pair are qualifying attributes of the host record's locale annotation. They have no independent existence and must be read together with the value they qualify, so an artifact would fragment the declaration." } ] } ] }, { "id": "loc-trans-unit-binding", "name": "Translatable Unit and Target Variant Binding", "description": "What is identified as translatable, what constrains it on the source side, and how a target language variant is bound to it with a revision, a state and a verifiable reference to the resource that actually holds the text.", "rationale": "Every downstream localization assertion is meaningless without a stable subject. XLIFF makes the unit the static container of translatable content with a scoped unique id, and requires srcLang always and trgLang whenever targets exist; ITS Id Value and Target Pointer make the same separation between an identifier, its source node and its target node. Grouping identity, source-side constraints and variant binding into one concern keeps the mixin able to bind without re-hosting the catalogue.", "source_refs": [ "SRC-016", "SRC-017", "SRC-023" ], "layers": [ { "id": "loc-trans-unit-layer", "name": "Translatable unit identity and source-side constraints", "description": "The source side of the binding: what the unit is, which source revision is current, what disambiguates its meaning, and what must not be changed or must be limited in any target.", "source_refs": [ "SRC-016", "SRC-017" ], "findings": [ { "id": "loc-trans-unit-identity", "name": "Stable translatable-unit identity, source revision and disambiguating context", "description": "A translatable unit is identified by a key that is independent of the source text it currently carries, scoped to a declared namespace, and paired with the identifier of the source revision a translation was made from, plus the notes that fix its intended meaning, purpose and audience.", "source_refs": [ "SRC-016", "SRC-017", "SRC-023" ], "questions": [ { "id": "loc-trans-q-unit-key", "text": "Which identifier designates this translatable unit independently of its source text, and within which scope is that identifier unique?", "kind": "identity", "answer_data": [ "Unit identifier value issued by the system of record", "Declared uniqueness scope such as file, catalogue or product namespace", "Identifier issuing authority", "Whether the identifier is native to the owning format or assigned by an Id Value rule" ] }, { "id": "loc-trans-q-source-revision", "text": "Which source-text revision is currently in force for this unit, and how is that revision denoted and verified?", "kind": "provenance", "answer_data": [ "Source revision identifier", "Named digest algorithm and digest value of the source text", "Source revision event time and the time this model observed it", "Reference to the immediately preceding source revision" ] }, { "id": "loc-trans-q-unit-meaning", "text": "What context, meaning, purpose or audience notes disambiguate this unit for a translator or an agent?", "kind": "definition", "answer_data": [ "Localization note text with note type alert or description", "Domain or subject-matter code", "Text-analysis concept or entity reference used for disambiguation", "Intended audience and register statement", "Where the unit is surfaced, such as button label, error banner or legal notice" ] }, { "id": "loc-trans-q-unit-source-change", "text": "What must happen to existing bindings when the source text changes while the unit identifier stays the same?", "kind": "exception", "answer_data": [ "Staleness flag raised on each affected target variant", "Reference to the source revision each variant was made from", "Whether the change is material and requires re-translation or is cosmetic", "Grace behaviour while re-translation is outstanding" ] }, { "id": "loc-trans-q-unit-owner-node", "text": "Which content node, message or media element in the owning system does this unit correspond to?", "kind": "relationship", "answer_data": [ "Owning system identifier and resource reference", "Node pointer or selector expression into the owning representation", "Whether the correspondence is one unit to one node or one to many", "Segmentation assumption used when a node was split into units" ] } ], "data_elements": [ { "id": "loc-trans-de-unit-id", "name": "Translatable unit identifier", "description": "Key that designates the unit independently of its current source text.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-016", "SRC-017" ] }, { "id": "loc-trans-de-unit-id-scope", "name": "Unit identifier uniqueness scope", "description": "Declared scope within which the unit identifier is guaranteed unique, mirroring the XLIFF rule that unit ids are unique within the enclosing file.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-017", "SRC-023" ] }, { "id": "loc-trans-de-source-revision-ref", "name": "Source revision reference", "description": "Identifier and digest of the source-text revision that is current for this unit.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-017" ] }, { "id": "loc-trans-de-localization-note", "name": "Localization note", "description": "Note to localizers, typed as alert or description, carrying context, meaning, purpose or audience.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016", "SRC-017" ] }, { "id": "loc-trans-de-domain-code", "name": "Domain code", "description": "Subject-matter identification of the unit for translation-related applications.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016" ] } ], "artifacts": [], "inline_only_rationale": "Unit identity, revision pointers and disambiguating notes are inline annotations attached to a subject entity that another system already stores. XLIFF Id Value and unit ids exist inside the owning representation, and ITS Localization Note, Domain and Text Analysis are markup annotations rather than documents. Emitting a separate artifact here would duplicate the owning catalogue and create a second, competing key for the same unit." }, { "id": "loc-trans-translatability-scope", "name": "Translatability scope, protected tokens and target-side limits", "description": "Which spans are translatable at all, which literals must survive verbatim, which locales the unit applies to, and what character-set and storage-size limits any target text must respect.", "source_refs": [ "SRC-016", "SRC-017", "SRC-018" ], "questions": [ { "id": "loc-trans-q-translate-flag", "text": "Is this unit or span marked as translatable, and which rule or inheritance established that value?", "kind": "classification", "answer_data": [ "Translate value yes or no", "Whether the value is local or inherited from an ancestor or a global rule", "Selector or rule reference that set it", "Reason for a no value, such as code sample, identifier or legal citation" ] }, { "id": "loc-trans-q-protected-tokens", "text": "Which literal tokens, codes or brand strings must appear unchanged in every target variant?", "kind": "constraint", "answer_data": [ "Protected token literal and matching mode", "Scope over which the protection applies", "Whether surrounding whitespace or casing may change", "Authority that declared the token protected" ] }, { "id": "loc-trans-q-locale-applicability", "text": "To which locales does this unit apply, and is that list inclusive or exclusive?", "kind": "requirement", "answer_data": [ "Locale filter list of language ranges", "Filter type include or exclude", "Behaviour for a locale that is neither listed nor excluded", "Whether non-applicability means absent, hidden or replaced" ] }, { "id": "loc-trans-q-limit-breach", "text": "How is a breach of a protected token, allowed-character set or storage-size limit detected before publication?", "kind": "validation", "answer_data": [ "Allowed characters expression", "Storage size value with storage encoding and line-break type", "Size restriction or storage restriction profile reference", "Validation rule expression such as isPresent, existsInSource or occurs", "Verdict, offending span and the agent that produced the verdict" ] } ], "data_elements": [ { "id": "loc-trans-de-translate-flag", "name": "Translate flag", "description": "Whether the unit or span is intended for translation, with the inheritance source recorded.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-016", "SRC-017" ] }, { "id": "loc-trans-de-protected-token", "name": "Protected token", "description": "Literal that must be reproduced verbatim in every target variant.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016", "SRC-018" ] }, { "id": "loc-trans-de-locale-filter", "name": "Locale filter", "description": "Language-range list plus include or exclude type stating the locales for which the unit is applicable.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-016" ] }, { "id": "loc-trans-de-storage-limit", "name": "Storage or size limit", "description": "Maximum size or length constraint on target text with its encoding and line-break assumptions or its restriction profile.", "value_kind": "quantity", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016", "SRC-018" ] }, { "id": "loc-trans-de-allowed-characters", "name": "Allowed characters expression", "description": "Expression constraining the characters permitted in target text for this unit.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-016" ] } ], "artifacts": [ { "id": "loc-trans-protected-token-register", "name": "Protected token and do-not-translate register", "description": "Governed list of literals, code patterns and brand strings that must survive translation unchanged, with the scope, matching mode and declaring authority for each entry. It is the reference set that placeholder and terminology validation consult; it does not contain translations.", "media_or_form": [ "structured record set", "tabular list", "human-readable policy annex" ], "serial": false, "identity_strategy": "Register identified by the adopting Dimension's unit-set namespace; each entry keyed by the literal token plus its declared scope. Keys carry no date component; supersession is expressed by an entry status and a reference to the replacing entry.", "source_refs": [ "SRC-016", "SRC-018" ] } ], "inline_only_rationale": null } ] }, { "id": "loc-trans-variant-layer", "name": "Target variant binding, revision, state and external resource reference", "description": "The target side of the binding: which language variant exists, which revision it is, what state it holds, who may advance that state, and where the text or media actually lives.", "source_refs": [ "SRC-016", "SRC-017", "SRC-001" ], "findings": [ { "id": "loc-trans-variant-binding", "name": "Target variant binding, revision, staleness and translation state", "description": "A binding pairs one translatable unit with one BCP 47 target language tag and one variant revision, records the source revision it was made from and whether it is now stale, carries the workflow-independent translation state and approval, and separates the time the translation was produced from the time this model observed it.", "source_refs": [ "SRC-017", "SRC-001", "SRC-023", "SRC-016" ], "questions": [ { "id": "loc-trans-q-variant-key", "text": "Which canonicalised language tag and variant revision together identify this target variant of the unit?", "kind": "identity", "answer_data": [ "BCP 47 target language tag after Preferred-Value canonicalisation", "Whether the tag is well-formed only or validated against the registry", "Variant revision identifier and its monotonic sequence", "Reference to the unit identifier and its uniqueness scope" ] }, { "id": "loc-trans-q-variant-state-authority", "text": "What translation state does this variant hold, and who is authorised to advance it to the next state?", "kind": "authority", "answer_data": [ "State value from the declared ordered set, for example initial, translated, reviewed, final", "Sub-state value with its authority prefix where a local status is needed", "Identifier of the role or agent permitted to advance the state", "Constraint that the state cannot exceed initial while no target content exists" ] }, { "id": "loc-trans-q-variant-staleness", "text": "Is this variant stale relative to the current source revision, and by which comparison was that decided?", "kind": "state", "answer_data": [ "Source revision the variant was produced from", "Current source revision", "Comparison method such as digest inequality or explicit material-change flag", "Staleness verdict and whether the variant remains servable while stale" ] }, { "id": "loc-trans-q-variant-times", "text": "When was this variant produced, reviewed or approved, and when was each of those facts recorded here?", "kind": "temporal", "answer_data": [ "Production event time as an RFC 3339 value with seconds and explicit offset", "Review and approval event times", "Observation or ingestion time recorded by this model", "Time zone or offset actually asserted by the producing system" ] }, { "id": "loc-trans-q-variant-origin", "text": "Was the target text produced by a machine, by a human, or by a mixed post-editing process?", "kind": "provenance", "answer_data": [ "Origin classification machine, human or mixed post-edited", "Identifier of the producing tool, person or organisation", "Whether the origin was asserted by the producing system or inferred", "Whether a machine-produced variant has ever been human-touched" ] } ], "data_elements": [ { "id": "loc-trans-de-target-language-tag", "name": "Target language tag", "description": "Canonicalised BCP 47 tag naming the language, script, region and variant of this target variant.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "loc-trans-de-variant-revision", "name": "Variant revision", "description": "Monotonic revision identifier for the target variant of a unit in one language tag.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-017" ] }, { "id": "loc-trans-de-translation-state", "name": "Translation state", "description": "Position of the variant in the declared ordered state set, with an optional prefixed sub-state for locally defined status.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-017", "SRC-023" ] }, { "id": "loc-trans-de-staleness-flag", "name": "Staleness flag", "description": "Assertion that the variant was produced from a source revision that is no longer current.", "value_kind": "boolean", "cardinality": "1", "required": true, "source_refs": [ "SRC-017" ] }, { "id": "loc-trans-de-origin-class", "name": "Production origin class", "description": "Whether the target text is machine, human or mixed post-edited in origin.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-016", "SRC-018" ] }, { "id": "loc-trans-de-event-time", "name": "Translation event time", "description": "RFC 3339 instant at which the recorded translation, review or approval event occurred, kept distinct from ingestion time.", "value_kind": "timestamp", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016" ] } ], "artifacts": [ { "id": "loc-trans-variant-binding-record", "name": "Target variant binding record", "description": "The mixin's own record of one unit-to-language-variant binding: tag, variant revision, source revision pin, state and sub-state, origin class, staleness verdict, and event versus ingestion times. It carries a reference to the target text, not a second copy of the catalogue entry.", "media_or_form": [ "structured record", "append-only record series" ], "serial": true, "identity_strategy": "Keyed by the master-system translatable-unit identifier plus the canonicalised BCP 47 target language tag plus a monotonic variant revision sequence. No date component appears in the key; times are recorded as fields.", "source_refs": [ "SRC-017", "SRC-001", "SRC-023" ] } ], "inline_only_rationale": null }, { "id": "loc-trans-resource-reference", "name": "External resource, catalogue and non-text alternative references", "description": "Verifiable references from the binding to the systems that actually hold the target text, media asset or alternative, pinned by digest and resolution time, including locale-specific non-text and time-based media alternatives.", "source_refs": [ "SRC-016", "SRC-018", "SRC-019" ], "questions": [ { "id": "loc-trans-q-resource-address", "text": "Which external resource holds the actual target content, and how is it addressed and dereferenced?", "kind": "interoperability", "answer_data": [ "Owning system identifier and resource reference", "Reference scheme and any binding parameters needed to dereference it", "Resource kind such as catalogue entry, bitext file, translation-memory entry or media asset", "Whether the reference is stable across owning-system migrations" ] }, { "id": "loc-trans-q-resource-digest", "text": "What digest or version pin makes the referenced resource verifiable at a stated point in time?", "kind": "evidence", "answer_data": [ "Named digest algorithm and digest value", "Resource version or revision identifier asserted by the owning system", "Resolution time as an RFC 3339 value with seconds and explicit offset", "Verification verdict at that resolution time" ] }, { "id": "loc-trans-q-nontext-alternatives", "text": "Which non-text or time-based media alternatives must accompany this variant in this locale?", "kind": "composition", "answer_data": [ "Alternative kind such as text alternative, caption track, audio description or transcript", "Language tag of each alternative, which may differ from the main variant", "Reference to the alternative asset and its owning system", "Whether the alternative is required, present, or knowingly absent with a reason" ] }, { "id": "loc-trans-q-resource-unresolvable", "text": "What is asserted when the referenced resource is unreachable or its digest no longer matches?", "kind": "exception", "answer_data": [ "Unverified or unresolvable status on the binding", "Last successful resolution time and digest", "Whether the binding may still be served while unverified", "Escalation target within the adopting Dimension" ] } ], "data_elements": [ { "id": "loc-trans-de-resource-ref", "name": "External resource reference", "description": "Pointer to the externally owned resource that holds the target content or asset.", "value_kind": "reference", "cardinality": "1..n", "required": true, "source_refs": [ "SRC-016", "SRC-018" ] }, { "id": "loc-trans-de-resource-digest", "name": "Resource digest", "description": "Named digest algorithm and value pinning the referenced resource at a stated resolution time.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-018" ] }, { "id": "loc-trans-de-alternative-binding", "name": "Non-text alternative binding", "description": "Reference to a locale-specific text alternative, caption, audio description or transcript required alongside the variant.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016", "SRC-019" ] }, { "id": "loc-trans-de-resolution-time", "name": "Reference resolution time", "description": "RFC 3339 instant at which the reference was last successfully dereferenced and verified.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-018" ] } ], "artifacts": [ { "id": "loc-trans-resource-manifest", "name": "Localization resource reference manifest", "description": "Digest-pinned manifest of every external resource a set of bindings depends on, including catalogue entries, bitext files, media assets and non-text alternatives, with resolution times and verification verdicts. It is a reference index; it never embeds the resource bytes.", "media_or_form": [ "structured manifest", "digest-pinned reference list" ], "serial": false, "identity_strategy": "Manifest keyed by the master-system identifier of the resource set where the owning system issues one; otherwise by a ULID assigned by the adopting Dimension. Each entry is keyed by owning-system resource identifier plus named digest.", "source_refs": [ "SRC-016", "SRC-018", "SRC-019" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "loc-trans-form-fallback", "name": "Message Form Contract and Fallback Resolution", "description": "The formal contract a target variant must satisfy to be substitutable for its source, and the declared, ordered behaviour when no acceptable variant exists.", "rationale": "A translation is only interchangeable with its source if it preserves the selection structure and the placeholder set. MessageFormat 2 makes selectors, variant keys, a required catch-all, placeholders, function option types and error fallbacks normative; CLDR fixes the language-specific plural category sets; XLIFF constrains inline codes and their reordering. Separately, RFC 4647 Lookup and LDML parent-locale inheritance both return a value from some other locale when the requested one is absent, which is resolution, not translation. Keeping form and fallback in one bundle prevents that conflation.", "source_refs": [ "SRC-014", "SRC-004", "SRC-015", "SRC-017", "SRC-002" ], "layers": [ { "id": "loc-trans-message-form-layer", "name": "Selection and placeholder contracts", "description": "The structural obligations a target variant inherits from its source: which categories it must supply and which variables, placeholders and codes it must reproduce.", "source_refs": [ "SRC-014", "SRC-015", "SRC-017" ], "findings": [ { "id": "loc-trans-selection-categories", "name": "Plural, ordinal and select categories with selector declarations", "description": "Which selectors a message declares, in what order they are evaluated, which language-specific plural or ordinal categories the target language requires, and whether a catch-all variant guarantees that every selector value resolves.", "source_refs": [ "SRC-014", "SRC-015" ], "questions": [ { "id": "loc-trans-q-selectors", "text": "Which selectors does this message declare, and in what order are they evaluated against variant keys?", "kind": "composition", "answer_data": [ "Ordered list of selector variable names", "Function applied to each selector", "Variant key list per variant in selector order", "Whether the selector value must be a literal rather than resolved from a variable" ] }, { "id": "loc-trans-q-required-categories", "text": "Which plural or select categories must the target variant supply for its own language?", "kind": "requirement", "answer_data": [ "Required category set for the target language drawn from zero, one, two, few, many and other", "Whether the rule set is cardinal or ordinal", "Categories present in the source language that the target does not use", "Categories the target requires that the source language never exercises" ] }, { "id": "loc-trans-q-catchall", "text": "Is a catch-all variant present so that every possible selector value resolves to a pattern?", "kind": "validation", "answer_data": [ "Presence of the catch-all key", "Verdict on missing fallback variant as a data model error", "Detected variant key mismatch or duplicate declaration", "Agent and time of the check" ] }, { "id": "loc-trans-q-selection-kind", "text": "Are the categories cardinal plural, ordinal, or an enumerated select set defined by the message author?", "kind": "classification", "answer_data": [ "Selection kind cardinal, ordinal or enumerated select", "Enumerated key set and its source of truth where the selection is not plural", "Plural operands relied on, such as n, i, v, w, f, t, c or e", "Whether the enumerated key set is itself locale dependent" ] } ], "data_elements": [ { "id": "loc-trans-de-selector-decl", "name": "Selector declaration", "description": "Ordered declaration of the selector variables and functions that rank or exclude variants.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-014" ] }, { "id": "loc-trans-de-required-category-set", "name": "Required plural category set", "description": "Language-specific set of plural or ordinal categories the target variant must supply, with other always required.", "value_kind": "collection", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-015" ] }, { "id": "loc-trans-de-catchall-present", "name": "Catch-all variant presence", "description": "Whether a catch-all variant exists so that every selector value resolves.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-014" ] } ], "artifacts": [], "inline_only_rationale": "Selector declarations and category obligations are properties of the message text itself, which is stored and versioned in the owning catalogue. The category set for a language is reference data supplied by CLDR and must not be forked into a local artifact, because a forked copy silently drifts from the released plural rules. This mixin therefore carries the declaration and the required-category assertion inline against the unit and cites CLDR as the authority." }, { "id": "loc-trans-placeholder-contract", "name": "Variables, placeholders, type constraints and code isolation", "description": "The set of named variables and placeholders the target must reproduce, the value-type and option constraints on each, how original formatting codes and markup are isolated from translatable text, how bidirectional isolation is applied, and what is emitted when a placeholder cannot be resolved.", "source_refs": [ "SRC-014", "SRC-017", "SRC-018", "SRC-023" ], "questions": [ { "id": "loc-trans-q-placeholder-set", "text": "Which named variables and placeholders must appear in the target, and may they be copied, deleted or reordered?", "kind": "constraint", "answer_data": [ "Placeholder or variable names present in the source", "Whether each is an external or a local variable", "canCopy, canDelete and canReorder dispositions for each inline code", "Required arity, for example exactly once or at least once" ] }, { "id": "loc-trans-q-placeholder-types", "text": "What value type, function or option constraints apply to each placeholder?", "kind": "requirement", "answer_data": [ "Function applied to the operand", "Option names and permitted values", "Whether an option value must be set by a literal rather than resolved from a variable", "Operand type expectation and the error raised on a bad operand" ] }, { "id": "loc-trans-q-code-isolation", "text": "How are original formatting codes and markup kept isolated from the translatable text of this unit?", "kind": "composition", "answer_data": [ "Inline code representation such as standalone, paired, or start and end spanning codes", "Original data held outside the translatable text with a data reference", "Markup open, standalone or close disposition", "Behaviour when a spanning code crosses a segment boundary" ] }, { "id": "loc-trans-q-bidi-isolation", "text": "How is bidirectional isolation applied around placeholders in mixed-direction text?", "kind": "quality", "answer_data": [ "Isolating control characters used around placeholders", "Rule that controls are not inserted inside a literal unless part of its value", "Base direction assumed for the target language", "Whether direction marks inside quoted patterns become part of the output" ] }, { "id": "loc-trans-q-placeholder-failure", "text": "What is emitted when a placeholder or variable cannot be resolved at format time?", "kind": "exception", "answer_data": [ "Fallback representation emitted for the unresolved expression", "Error class such as syntax, data model, resolution or message function error", "Rule that text, literal and markup resolved values must never be fallback values", "Whether the failure is surfaced to the consumer or only logged" ] } ], "data_elements": [ { "id": "loc-trans-de-placeholder-name", "name": "Placeholder or variable name", "description": "Name of a variable or placeholder the target variant must reproduce.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-014", "SRC-017" ] }, { "id": "loc-trans-de-placeholder-type-constraint", "name": "Placeholder type constraint", "description": "Function, option and operand-type expectation governing a placeholder's resolved value.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-014" ] }, { "id": "loc-trans-de-code-disposition", "name": "Inline code disposition", "description": "Whether an inline code may be copied, deleted or reordered in the target, and how its original data is referenced.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-017", "SRC-023" ] }, { "id": "loc-trans-de-base-direction", "name": "Declared base direction", "description": "Base writing direction assumed for the unit's target text, used to decide bidirectional isolation.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-014", "SRC-016" ] } ], "artifacts": [], "inline_only_rationale": "The placeholder contract is a derived, per-unit assertion about text that the owning catalogue stores. Materialising it as a standalone artifact would create a second source of truth that can disagree with the message it describes, and the executable form already exists in the catalogue and in the formatting runtime. This model therefore records the contract inline as validation input; XLIFF originalData and MessageFormat placeholders remain owned by their representations." } ] }, { "id": "loc-trans-fallback-layer", "name": "Fallback chain, missing-translation policy and override provenance", "description": "The declared ordered degradation path when a requested variant does not exist, what happens at the end of it, which layer actually supplied a served value, and how that fact is disclosed.", "source_refs": [ "SRC-004", "SRC-002", "SRC-006" ], "findings": [ { "id": "loc-trans-fallback-chain", "name": "Ordered fallback chain, terminal behaviour and override provenance", "description": "An explicit ordered list of language tags or locales tried when the requested variant is absent, the mandatory defined behaviour when nothing matches, the record of which chain position supplied a served value and whether that entry was inherited or an override, and the prohibition on presenting a fallback as a translation.", "source_refs": [ "SRC-004", "SRC-002", "SRC-006", "SRC-001" ], "questions": [ { "id": "loc-trans-q-chain-order", "text": "What is the ordered list of language tags or locales tried when the requested variant is absent?", "kind": "process", "answer_data": [ "Ordered chain entries as canonicalised BCP 47 tags", "Matching scheme in force, such as basic filtering, extended filtering or lookup", "Whether progressive right-truncation of subtags is applied and how single-letter subtags are handled", "Whether locale-data parent chains or root inheritance participate, and where they stop" ] }, { "id": "loc-trans-q-chain-terminal", "text": "What is the terminal behaviour when no entry in the chain matches?", "kind": "decision", "answer_data": [ "Designated default language tag, null result, error condition or implementation-defined default", "Which of those the adopting Dimension has explicitly declared", "Whether the terminal outcome differs by content class such as legal notice versus label", "Consequence for the calling operation" ] }, { "id": "loc-trans-q-chain-position", "text": "Which chain position actually supplied the value served, and was that entry inherited or an override?", "kind": "provenance", "answer_data": [ "Index and language tag of the supplying chain entry", "Whether the value was inherited from a parent or root, or set as an explicit override at that level", "Identifier of the binding that supplied the value", "Resolution time as an RFC 3339 value with seconds and explicit offset" ] }, { "id": "loc-trans-q-fallback-disclosure", "text": "Is the consumer told that the served text is a fallback rather than a translation into the requested language?", "kind": "interoperability", "answer_data": [ "Fallback disclosure flag on the resolution result", "Actual language of the served representation as declared to the consumer", "Whether the requested-versus-served mismatch is machine readable and programmatically determinable", "Whether coverage reporting excludes the fallback-served entry" ] }, { "id": "loc-trans-q-fallback-prohibited", "text": "Under what conditions is fallback prohibited and an explicit absence or error preferred instead?", "kind": "exception", "answer_data": [ "Content classes for which fallback is forbidden, such as regulated or safety text", "Whether a stale or unapproved variant may be served ahead of a fallback", "Behaviour when the only candidate is machine output without approval", "Declared authority for the prohibition" ] } ], "data_elements": [ { "id": "loc-trans-de-fallback-chain", "name": "Ordered fallback chain", "description": "Explicit ordered list of language tags attempted when the requested variant is absent.", "value_kind": "collection", "cardinality": "1", "required": true, "source_refs": [ "SRC-004", "SRC-002" ] }, { "id": "loc-trans-de-terminal-behaviour", "name": "Terminal fallback behaviour", "description": "Declared behaviour when no chain entry matches, as required by the language-matching specification.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-002" ] }, { "id": "loc-trans-de-served-position", "name": "Served chain position", "description": "Index and language tag of the chain entry that supplied the served value.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002", "SRC-004" ] }, { "id": "loc-trans-de-override-flag", "name": "Inherited or override flag", "description": "Whether the supplying entry was inherited from a parent or root, or explicitly overridden at that level.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] }, { "id": "loc-trans-de-fallback-disclosure", "name": "Fallback disclosure flag", "description": "Machine-readable assertion that the served value is a fallback and not a translation into the requested language.", "value_kind": "boolean", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-006", "SRC-019" ] } ], "artifacts": [ { "id": "loc-trans-fallback-chain-profile", "name": "Declared fallback chain profile", "description": "Versioned declaration of the ordered chain, the matching scheme in force, the terminal behaviour, the disclosure obligation and any content classes for which fallback is prohibited. It is the contract a resolver is evaluated against; it does not perform resolution.", "media_or_form": [ "structured declaration", "human-readable policy statement" ], "serial": true, "identity_strategy": "Authoritative master-system identifier issued by the adopting Dimension's profile register, qualified by a monotonic revision. Where no such register exists, use a governed IRI or UUID/ULID plus revision; the human-readable profile name, requested language range, content class and dates only qualify the identifier and never form the key.", "source_refs": [ "SRC-004", "SRC-002", "SRC-006" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "loc-trans-terminology-quality", "name": "Terminology Binding, Quality Assertions and Verification Evidence", "description": "What a term occurrence is required to mean, how good a variant is asserted to be, who vouched for it, and what testing shows about whether it actually renders and is usable.", "rationale": "ITS separates Terminology from Localization Quality Issue, Localization Quality Rating, MT Confidence and Provenance, and requires MT Confidence to be attributed to an engine through Provenance; XLIFF likewise separates the Glossary module from validation rules. TBX makes the concept, not the string, the unit of terminological identity. Pseudo-locale practice exists because a fully populated locale can still fail to render. Keeping terminology, asserted quality and observed rendering distinct is therefore evidence-led, not stylistic.", "source_refs": [ "SRC-016", "SRC-018", "SRC-020", "SRC-021", "SRC-022" ], "layers": [ { "id": "loc-trans-terminology-layer", "name": "Terminology and concept binding", "description": "Binding a term occurrence to a language-independent concept in an externally owned termbase, and stating the usage constraint that applies to it in this locale.", "source_refs": [ "SRC-016", "SRC-018", "SRC-020" ], "findings": [ { "id": "loc-trans-term-concept-binding", "name": "Terminology concept binding and term usage constraints", "description": "Which concept a marked term occurrence denotes, in which termbase that concept lives, which target term is preferred, admitted or deprecated for it in the target locale, how a usage breach is recorded, and what evidence supports an automatic term identification.", "source_refs": [ "SRC-016", "SRC-018", "SRC-020" ], "questions": [ { "id": "loc-trans-q-concept-ref", "text": "Which terminology concept does this term occurrence denote, and in which termbase does that concept live?", "kind": "relationship", "answer_data": [ "Concept entry identifier or IRI", "Termbase system reference and dialect or profile in use", "Term information reference resolvable to a definition", "Whether the concept is language-independent and which language sections exist" ] }, { "id": "loc-trans-q-term-status", "text": "Which target term is preferred, admitted or deprecated for that concept in this target locale?", "kind": "classification", "answer_data": [ "Target term string per language section", "Administrative status such as preferred, admitted or deprecated", "Whether more than one admitted term exists and how to choose", "Locale scope of the status, which may be narrower than the language" ] }, { "id": "loc-trans-q-term-breach", "text": "How is a term-usage breach recorded when the approved target term is not used?", "kind": "validation", "answer_data": [ "Quality issue typed as a terminology issue", "Severity value and the profile that defines the scale", "Offending span and expected term", "Whether the breach blocks approval or is advisory" ] }, { "id": "loc-trans-q-term-evidence", "text": "What evidence supports a term identification made automatically rather than by a terminologist?", "kind": "evidence", "answer_data": [ "Term confidence value on its declared scale", "Identifier of the annotating tool, required when confidence is asserted", "Whether a human terminologist has confirmed or rejected the identification", "Ambiguity note where one surface form maps to several concepts" ] } ], "data_elements": [ { "id": "loc-trans-de-concept-ref", "name": "Terminology concept reference", "description": "Reference to a language-independent concept entry in the externally owned termbase.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016", "SRC-020" ] }, { "id": "loc-trans-de-term-status", "name": "Term administrative status", "description": "Preferred, admitted or deprecated status of a target term for the bound concept in the target locale.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-020", "SRC-018" ] }, { "id": "loc-trans-de-term-confidence", "name": "Term identification confidence", "description": "Confidence value asserted for an automatically identified term, attributable to the annotating tool.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-016" ] }, { "id": "loc-trans-de-term-ambiguity-note", "name": "Terminology ambiguity note", "description": "Explicit record that a surface form maps to more than one concept and how the ambiguity is resolved or left open.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016", "SRC-020" ] } ], "artifacts": [], "inline_only_rationale": "The termbase owns concept definition, term admission, status governance and its own versioning; TBX makes the concept entry the top-level structure with its own language and term sections. This model carries only the outgoing concept reference, the locale-scoped usage constraint and the confidence or ambiguity assertion for one occurrence. Emitting a local glossary artifact would fork the termbase and let a stale copy override the governed source." } ] }, { "id": "loc-trans-quality-layer", "name": "Quality assertions, review provenance and rendering verification", "description": "Asserted quality and coverage, the agents who vouched for it, and the independent observations that show whether the localized product actually renders and is usable.", "source_refs": [ "SRC-016", "SRC-017", "SRC-019", "SRC-021", "SRC-022" ], "findings": [ { "id": "loc-trans-quality-assertion", "name": "Confidence, quality issue, rating and coverage measures", "description": "Machine confidence on its declared scale, recorded quality issues with type and severity, any overall rating computed against a named profile and threshold, and coverage measures that state exactly what they count and what they exclude.", "source_refs": [ "SRC-016", "SRC-018" ], "questions": [ { "id": "loc-trans-q-confidence-scale", "text": "What confidence value does the producing system assert for this variant, and on which declared scale?", "kind": "measurement", "answer_data": [ "Confidence value within its declared range", "Scale definition and whether zero to one probability semantics apply", "Identifier of the engine or tool the confidence is attributed to", "Explicit statement that confidence is a self-report and not an approval" ] }, { "id": "loc-trans-q-quality-issues", "text": "Which quality issues were recorded against this variant, of what type and at what severity?", "kind": "quality", "answer_data": [ "Issue type from the declared typology", "Severity value on the profile's scale", "Comment and the span the issue applies to", "Whether the issue is enabled or has been dismissed" ] }, { "id": "loc-trans-q-rating-profile", "text": "Against which published quality profile and score threshold was any overall rating computed?", "kind": "evidence", "answer_data": [ "Profile reference that defines issue types, severities and weighting", "Score and any vote score", "Score threshold treated as acceptance", "Whether the profile is externally published and versioned" ] }, { "id": "loc-trans-q-coverage-measure", "text": "What proportion of the unit set has an approved variant in this locale, and how is that proportion defined?", "kind": "measurement", "answer_data": [ "Numerator and denominator definitions including which units are in the set", "Whether stale variants count as covered", "Reference point in time for the measure", "Breakdown by translation state" ] }, { "id": "loc-trans-q-coverage-exclusions", "text": "Which entries does the coverage measure exclude, and is fallback-served content excluded from it?", "kind": "validation", "answer_data": [ "Exclusion of fallback-served entries", "Exclusion of machine-only entries that were never approved", "Exclusion of units filtered out for this locale", "Statement that coverage does not evidence usability" ] } ], "data_elements": [ { "id": "loc-trans-de-confidence-value", "name": "Machine confidence value", "description": "Self-reported confidence of the producing engine, on its declared scale and attributed to that engine.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-016" ] }, { "id": "loc-trans-de-quality-issue", "name": "Quality issue", "description": "Recorded language-oriented quality issue with type, severity, comment, applicable span and enabled status.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016" ] }, { "id": "loc-trans-de-quality-rating", "name": "Quality rating", "description": "Overall rating with score, optional vote score, acceptance threshold and the profile reference that defines the computation.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-016" ] }, { "id": "loc-trans-de-coverage-measure", "name": "Coverage measure", "description": "Proportion of the declared unit set holding an approved variant, with explicit numerator, denominator, exclusions and reference time.", "value_kind": "quantity", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016", "SRC-018" ] } ], "artifacts": [ { "id": "loc-trans-quality-assertion-record", "name": "Localization quality assertion record", "description": "Immutable record of one quality assertion about one variant: confidence, issues with type and severity, any rating with its profile and threshold, and coverage measures with their stated exclusions. It asserts; it does not gate publication.", "media_or_form": [ "structured record", "append-only assertion series" ], "serial": true, "identity_strategy": "Keyed by the variant binding reference plus a monotonic assertion sequence within that binding. A superseding assertion references the prior sequence number; no date component appears in the key.", "source_refs": [ "SRC-016", "SRC-018" ] } ], "inline_only_rationale": null }, { "id": "loc-trans-review-provenance", "name": "Translation and review agent provenance", "description": "Which person, organisation or tool produced and which revised the target text, what review occurred and under whose authority it was signed off, where the full workflow history is held, and how attribution personal data is minimised and retained.", "source_refs": [ "SRC-016", "SRC-017", "SRC-018" ], "questions": [ { "id": "loc-trans-q-agent-attribution", "text": "Which person, organisation or tool produced the target text, and which agent revised it?", "kind": "provenance", "answer_data": [ "Producing person, organisation and tool references", "Revising person, organisation and tool references", "Reference to a shared provenance record where agents are described once", "Whether attribution is asserted by the producing system or inferred" ] }, { "id": "loc-trans-q-review-authority", "text": "What review was performed on this variant, and under whose authority was it signed off?", "kind": "authority", "answer_data": [ "Review type such as bilingual revision, monolingual review or in-context review", "Identifier of the signing role or agent and its authorisation basis", "State transition the sign-off permits", "Event time and observation time of the sign-off" ] }, { "id": "loc-trans-q-workflow-owner", "text": "Where is the full workflow task history held, and what exactly is referenced from here?", "kind": "ownership", "answer_data": [ "Owning workflow or translation management system reference", "Task or job identifier held there", "Which fields this model carries and which it deliberately does not", "Statement that this model does not execute or reconstruct workflow" ] }, { "id": "loc-trans-q-attribution-privacy", "text": "What personal data appears in translator and reviewer attribution, and how is it minimised?", "kind": "privacy", "answer_data": [ "Categories of personal data present such as name, contact or employer", "Availability of a pseudonymous agent reference", "Audience permitted to see identified attribution", "Lawful basis or policy reference held by the adopting Dimension" ] }, { "id": "loc-trans-q-provenance-retention", "text": "How long must a review assertion be retained after the variant it describes is superseded?", "kind": "retention", "answer_data": [ "Retention period declared by the adopting Dimension", "Trigger that starts the period, such as supersession or withdrawal", "What is preserved in a tombstone after disposition", "Which system executes the disposition" ] } ], "data_elements": [ { "id": "loc-trans-de-producing-agent", "name": "Producing agent reference", "description": "Person, organisation or tool credited with producing the target text.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016" ] }, { "id": "loc-trans-de-revising-agent", "name": "Revising agent reference", "description": "Person, organisation or tool credited with revising or reviewing the target text.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016" ] }, { "id": "loc-trans-de-review-signoff", "name": "Review sign-off assertion", "description": "Assertion that a named review occurred, with review type, signing authority, event time and ingestion time.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016", "SRC-017" ] }, { "id": "loc-trans-de-workflow-task-ref", "name": "Workflow task reference", "description": "Outgoing reference to the task or job record held by the owning workflow system.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-018" ] } ], "artifacts": [], "inline_only_rationale": "Task histories, change-tracking revision series and vendor job records are produced and owned by the translation management and workflow systems, and XLIFF itself carries change tracking as an optional interchange module rather than as subject data. This model records the minimum attribution and sign-off assertions inline against the binding and points at the owning record. Materialising a local workflow artifact would duplicate an external audit trail this model does not own and cannot keep authoritative." }, { "id": "loc-trans-render-verification", "name": "Pseudo-localization and rendering verification evidence", "description": "Observed evidence that the localized surface actually renders: pseudo-locale runs that expose hardcoded strings, concatenation, expansion and bidi defects, measured fit against declared size limits, the build revision verified, and an explicit statement of what such testing cannot show.", "source_refs": [ "SRC-021", "SRC-022", "SRC-018", "SRC-019" ], "questions": [ { "id": "loc-trans-q-pseudo-runs", "text": "Which pseudo-locale runs were executed against this unit set, and what defects did they expose?", "kind": "evidence", "answer_data": [ "Pseudo-locale tags exercised, such as the accented-expansion and bidi pseudo-regions", "Defect classes observed, such as hardcoded strings, split or concatenated messages, expansion overflow or unmirrored elements", "Unit references for each observed defect", "Statement that pseudo-locales are test-only and must not reach production" ] }, { "id": "loc-trans-q-render-fit", "text": "Did the rendered target text fit the declared size, storage and layout constraints?", "kind": "measurement", "answer_data": [ "Measured rendered length or storage size against the declared limit", "Restriction profile used for the measurement", "Surface or component in which the measurement was taken", "Overflow or truncation verdict" ] }, { "id": "loc-trans-q-verified-build", "text": "Which build or product revision was verified, and when was the run observed?", "kind": "temporal", "answer_data": [ "Build or product revision reference", "Run event time as an RFC 3339 value with seconds and explicit offset", "Ingestion time at which the result was recorded here", "Variant revisions in force at run time" ] }, { "id": "loc-trans-q-render-untested", "text": "Which defect classes remain untested by pseudo-localization and rendering checks alone?", "kind": "exception", "answer_data": [ "Semantic and register defects that require human review", "Terminology correctness not observable from rendering", "Non-text alternative adequacy for captions, audio description and text alternatives", "Locale-specific cultural or legal appropriateness" ] } ], "data_elements": [ { "id": "loc-trans-de-pseudo-locale-tag", "name": "Pseudo-locale tag", "description": "Test-only locale tag exercised in a localizability run, such as an accented-expansion or bidi pseudo-region tag.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-021", "SRC-022" ] }, { "id": "loc-trans-de-render-defect", "name": "Rendering defect observation", "description": "Observed localizability or rendering defect with its class, affected unit reference and surface.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-022" ] }, { "id": "loc-trans-de-render-measurement", "name": "Rendered fit measurement", "description": "Measured rendered size compared against the declared size or storage restriction for the unit.", "value_kind": "quantity", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-018", "SRC-016" ] }, { "id": "loc-trans-de-verified-build-ref", "name": "Verified build reference", "description": "Reference to the build or product revision the verification run was executed against.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-022" ] } ], "artifacts": [ { "id": "loc-trans-render-test-report", "name": "Localizability and rendering verification report", "description": "Report of one verification run: pseudo-locales exercised, defect observations with unit references, fit measurements against declared restrictions, the build revision verified, and the explicit list of defect classes the run does not cover.", "media_or_form": [ "structured findings record", "human-readable report", "rendering capture reference" ], "serial": true, "identity_strategy": "Keyed by the unit-set reference plus the pseudo-locale or target language tag plus the verified build revision reference plus a monotonic run sequence. Times are fields; no date component appears in the key.", "source_refs": [ "SRC-021", "SRC-022", "SRC-018" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "loc-gov-governance-authority-bundle", "name": "Localization governance, authority and conformance", "description": "Who is accountable for a localization binding, who may declare its defaults and fallback, how the origin and pinned inputs of every bound value are recorded, and how the binding is validated, reconciled, disputed and mapped to external carriers.", "rationale": "Language and locale values are supplied by external registration authorities and locale-data committees whose own governance is explicit about roles, approval authority and stability. A binding that carries such values is only trustworthy if it names its own accountable owner, records which registry snapshot and profile it was judged against, and states how competing claims are disposed of.", "source_refs": [ "SRC-001", "SRC-002", "SRC-003", "SRC-024", "SRC-016", "SRC-025", "SRC-031" ], "layers": [ { "id": "loc-gov-stewardship-authority-layer", "name": "Stewardship, role rights and declaration authority", "description": "Accountable ownership of the binding, the roles permitted to propose, vet, review, approve and release changes, and the authority to declare source, default and fallback locales under a regional or organizational profile.", "source_refs": [ "SRC-002", "SRC-024", "SRC-031" ], "findings": [ { "id": "loc-gov-role-authority-finding", "name": "Accountable stewardship and decision rights over the binding", "description": "Names the party accountable for the localization binding on its host object, the roles authorized at each decision point, how distributed locale expertise is weighted, and what happens when no qualified authority exists for a target locale. Roles are references to parties governed elsewhere; only the assignment is owned here.", "source_refs": [ "SRC-024", "SRC-023", "SRC-027" ], "questions": [ { "id": "loc-gov-q-accountable-owner", "text": "Which named party is accountable for this localization binding on the host object?", "kind": "ownership", "answer_data": [ "Responsible-owner party reference", "Accountability scope (host object, field set or resource)", "Effective start timestamp of the accountability assignment", "Delegation reference where accountability is delegated" ] }, { "id": "loc-gov-q-role-rights", "text": "Which roles are authorized to propose, vet, review, approve and release a change to this binding?", "kind": "authority", "answer_data": [ "Role identifier per decision point", "Permitted operation set for each role", "Separation-of-duties constraint between reviewer and approver", "Reference to the authority source that granted the role" ] }, { "id": "loc-gov-q-vetting-weight", "text": "How is contributor standing weighted when locale expertise is distributed across several organizations?", "kind": "decision", "answer_data": [ "Contributor standing level", "Weight or vote value assigned to the level", "Aggregation rule where one organization holds several contributors", "Threshold at which a proposed value is treated as approved" ] }, { "id": "loc-gov-q-authority-escape", "text": "What is recorded when no qualified language expert or release authority is available for a target locale?", "kind": "exception", "answer_data": [ "Unstaffed-locale flag", "Interim authority reference", "Reduced draft status applied to affected values", "Re-review trigger condition" ] } ], "data_elements": [ { "id": "loc-gov-de-responsible-owner", "name": "Responsible owner reference", "description": "Stable reference to the party accountable for the binding; the party's own lifecycle is governed outside this model.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-027" ] }, { "id": "loc-gov-de-role-assignment", "name": "Role assignment set", "description": "Set of role-to-party assignments with the operations each role may perform on the binding.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-024" ] }, { "id": "loc-gov-de-release-authority", "name": "Release authority reference", "description": "The body or role whose approval is required before a binding version becomes effective.", "value_kind": "reference", "cardinality": "1", "required": true, "source_refs": [ "SRC-024" ] }, { "id": "loc-gov-de-contributor-standing", "name": "Contributor standing level", "description": "Declared standing of a contributor, used to weight competing proposed values for the same bound field.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-024" ] } ], "artifacts": [ { "id": "loc-gov-stewardship-charter-artifact", "name": "Localization stewardship charter", "description": "Record declaring the accountable owner, role rights, standing weights, separation-of-duties constraints and release authority that apply to localization bindings within a governed scope.", "media_or_form": [ "governance record", "structured role-assignment table", "signed policy document" ], "serial": false, "identity_strategy": "Authoritative identifier issued by the adopting Dimension's governance register; where none exists, a governed IRI in the Dimension namespace; otherwise a UUID or ULID assigned on creation.", "source_refs": [ "SRC-024", "SRC-027" ] } ], "inline_only_rationale": null }, { "id": "loc-gov-default-fallback-authority-finding", "name": "Authority to declare default locale, fallback chain and locale profile", "description": "Establishes who may declare the host's source locale, default locale, permitted-tag set and ordered language priority list, which matching scheme governs resolution, and the mandatory behaviour when nothing matches. Profiles are declarative constraint sets; the resolution engine that consumes them is external.", "source_refs": [ "SRC-002", "SRC-004", "SRC-030", "SRC-031" ], "questions": [ { "id": "loc-gov-q-default-declaration", "text": "Who is authorized to declare the default locale and the ordered fallback chain for this host object?", "kind": "authority", "answer_data": [ "Declaring role reference", "Approval evidence reference", "Scope over which the declaration binds", "Timestamp of the declaration" ] }, { "id": "loc-gov-q-matching-scheme", "text": "Which matching scheme governs resolution, and what behaviour is defined when no tag matches?", "kind": "decision", "answer_data": [ "Matching scheme code (basic filtering, extended filtering or lookup)", "Ordered language priority list with optional weights", "Defined no-match behaviour (null result, designated default tag or error)", "Whether parent-locale overrides supplement truncation-based fallback" ] }, { "id": "loc-gov-q-governing-profile", "text": "Which regional or organizational locale profile constrains the tags permitted on this binding?", "kind": "classification", "answer_data": [ "Profile identifier", "Profile revision identifier", "Profile scope (region, business unit, product line)", "Precedence rank where several profiles apply" ] }, { "id": "loc-gov-q-profile-constraints", "text": "Which subtag combinations does that profile require, prohibit or normalize away?", "kind": "constraint", "answer_data": [ "Permitted primary language subtag set", "Script subtag policy including suppression expectations", "Region subtag policy for ISO 3166-1 versus UN M.49 values", "Extension and private-use subtag policy", "Variant subtag allow list" ] } ], "data_elements": [ { "id": "loc-gov-de-source-locale", "name": "Source locale tag", "description": "The language tag of the authored source content that the binding's targets derive from.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-023" ] }, { "id": "loc-gov-de-default-locale", "name": "Default locale tag", "description": "The tag returned when resolution over the priority list yields no match, or the declared no-match behaviour reference.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "loc-gov-de-fallback-chain", "name": "Ordered language priority list", "description": "Ordered, optionally weighted list of language ranges used for resolution against the bound targets.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-002" ] }, { "id": "loc-gov-de-matching-scheme", "name": "Matching scheme code", "description": "Declared scheme governing resolution: basic filtering, extended filtering or lookup, optionally supplemented by parent-locale overrides.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-002", "SRC-004" ] }, { "id": "loc-gov-de-no-match-behaviour", "name": "Defined no-match behaviour", "description": "The behaviour applied after the priority list is exhausted; must be declared explicitly rather than left implementation-defined.", "value_kind": "text", "cardinality": "1", "required": true, "source_refs": [ "SRC-002" ] }, { "id": "loc-gov-de-profile-ref", "name": "Governing locale profile reference", "description": "Reference to the regional or organizational profile whose permitted-tag and required-subtag constraints apply.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-031" ] } ], "artifacts": [ { "id": "loc-gov-locale-profile-artifact", "name": "Locale profile release", "description": "Versioned declaration of the permitted tag set, required and prohibited subtags, extension policy, default locale, ordered priority list, matching scheme and no-match behaviour for a region or organization.", "media_or_form": [ "structured constraint set", "profile specification document", "machine-readable allow list" ], "serial": true, "identity_strategy": "Authoritative profile identifier issued by the profile-owning body, qualified by an immutable revision identifier; where no master system exists, a governed IRI plus revision; otherwise a ULID per release.", "source_refs": [ "SRC-002", "SRC-030", "SRC-031" ] } ], "inline_only_rationale": null } ] }, { "id": "loc-gov-provenance-pinning-layer", "name": "Provenance and revision pinning", "description": "The origin, agent, method and confidence of each bound value, and the exact registry, profile and standard revisions under which the binding was created and must be re-evaluated.", "source_refs": [ "SRC-003", "SRC-004", "SRC-016", "SRC-025" ], "findings": [ { "id": "loc-gov-binding-provenance-finding", "name": "Provenance of tags, translations, terminology and inferred values", "description": "Records how each bound value came to exist: human declaration, derivation from a registry record, machine detection or machine translation, together with the responsible agent, the activity, the prior version it revises and any confidence measure. Uses PROV starting-point terms rather than a local vocabulary.", "source_refs": [ "SRC-016", "SRC-025", "SRC-023" ], "questions": [ { "id": "loc-gov-q-generating-agent", "text": "Which agent generated or revised each bound language tag, translation or term, and in what role?", "kind": "provenance", "answer_data": [ "Agent reference typed as person, organization or software agent", "Role played in the generating or revising activity", "Activity start and end timestamps", "Delegation chain where an agent acted on behalf of another" ] }, { "id": "loc-gov-q-inference-evidence", "text": "What evidence supports an inferred or machine-generated value, and what confidence accompanies it?", "kind": "evidence", "answer_data": [ "Generation method code (declared, registry-derived, detected, machine-translated)", "Confidence or rating value with its declared scale", "Detector or engine identifier and version", "Sample or observation reference underpinning the inference" ] }, { "id": "loc-gov-q-derivation-chain", "text": "Which prior binding version or upstream source is this value derived from or a revision of?", "kind": "relationship", "answer_data": [ "Reference to the entity the value was derived from", "Revision relationship to the preceding binding version", "Primary-source reference where the value originates outside the system", "Derivation kind (translation, transliteration, correction, import)" ] }, { "id": "loc-gov-q-confidence-threshold", "text": "At what confidence threshold must an inferred locale or translation be escalated to human review?", "kind": "quality", "answer_data": [ "Threshold value and scale", "Escalation target role", "Draft status applied below the threshold", "Whether below-threshold values may be exported" ] } ], "data_elements": [ { "id": "loc-gov-de-provenance-agent", "name": "Provenance agent reference", "description": "Reference to the person, organization or software agent attributed with generating or revising a bound value.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016", "SRC-025" ] }, { "id": "loc-gov-de-generation-method", "name": "Generation method code", "description": "How the value was produced: human declaration, registry derivation, automatic detection or machine translation.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-016" ] }, { "id": "loc-gov-de-confidence-score", "name": "Confidence value", "description": "Machine-translation or detection confidence with an explicitly declared scale; never comparable across engines without that scale.", "value_kind": "number", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-016" ] }, { "id": "loc-gov-de-derived-from-ref", "name": "Derived-from reference", "description": "Reference to the entity or prior binding version from which this value was derived or revised.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-025" ] }, { "id": "loc-gov-de-provenance-activity-time", "name": "Provenance activity time", "description": "Start and end times of the generating or revising activity, recorded separately from the moment the assertion was ingested.", "value_kind": "timestamp", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-025", "SRC-026" ] } ], "artifacts": [], "inline_only_rationale": "Provenance here is a set of assertions attached to individual bound values, not a document. The standards this model aligns with express provenance as inline annotations on the annotated node and as graph triples over agents, activities and entities, so materializing a separate provenance file would duplicate the binding record and create a second place where agent attribution could drift. Any durable provenance document, signed statement or evidence package is owned by the referenced provenance and records models, and is carried here only as a reference." }, { "id": "loc-gov-source-pin-finding", "name": "Registry, profile and standard revision pins", "description": "Captures the exact external revisions under which a binding was interpreted and judged valid, so that a later registry or profile advance produces a detectable re-validation obligation rather than a silent change in meaning.", "source_refs": [ "SRC-001", "SRC-003", "SRC-004", "SRC-023", "SRC-030", "SRC-032" ], "questions": [ { "id": "loc-gov-q-registry-pin", "text": "Which language subtag registry revision was in force when this binding was validated?", "kind": "temporal", "answer_data": [ "Registry File-Date value", "Validation timestamp", "Whether validity was asserted or only well-formedness", "Registry retrieval reference" ] }, { "id": "loc-gov-q-locale-data-pin", "text": "Which locale-data release and profile revision were pinned for fallback and likely-subtag resolution?", "kind": "provenance", "answer_data": [ "Locale data release version", "Profile revision identifier", "Parent-locale override set applied", "Likely-subtags operation applied (add, remove or none)" ] }, { "id": "loc-gov-q-standard-version-pin", "text": "Which exchange-format and terminology standard versions does this binding claim alignment with?", "kind": "interoperability", "answer_data": [ "Translation-interchange format version", "Markup annotation standard version", "Terminology exchange standard edition and dialect", "Extension singleton registry revision" ] }, { "id": "loc-gov-q-pin-drift-trigger", "text": "What triggers re-validation when a pinned registry, profile or standard revision advances?", "kind": "process", "answer_data": [ "Drift-detection trigger condition", "Grace interval before the binding is marked stale", "Role notified on drift", "Automatic versus manual re-validation flag" ] } ], "data_elements": [ { "id": "loc-gov-de-registry-pin", "name": "Subtag registry revision pin", "description": "The registry File-Date under which the bound tag's validity was determined.", "value_kind": "date", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-003" ] }, { "id": "loc-gov-de-locale-data-pin", "name": "Locale data release pin", "description": "The locale-data release version used for canonicalization, likely subtags and parent-locale fallback.", "value_kind": "identifier", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-004" ] }, { "id": "loc-gov-de-standard-version-pin", "name": "Aligned standard version set", "description": "Versions of exchange, markup and terminology standards against which alignment is asserted.", "value_kind": "collection", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-023", "SRC-032" ] }, { "id": "loc-gov-de-pin-staleness-state", "name": "Pin staleness state", "description": "Whether the pinned revisions are current, superseded but tolerated, or stale and requiring re-validation.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-003" ] } ], "artifacts": [], "inline_only_rationale": "Revision pins are scalar version identifiers and dates carried directly on the binding record; they are meaningful only in the context of the single binding they qualify. Emitting them as a standalone manifest would detach them from the value whose interpretation they fix and would invite a stale second copy. The pinned registries, locale-data releases and standard texts are themselves external artifacts owned by their publishers and are referenced, not reproduced." } ] }, { "id": "loc-gov-conformance-interop-layer", "name": "Validation, conflict disposition and interoperability", "description": "Checks that determine whether a binding is well-formed, valid, canonical and profile-conformant; how contradictory localization claims are ranked and disposed; and how the binding is mapped onto external carriers as evidence-backed alignments.", "source_refs": [ "SRC-001", "SRC-004", "SRC-023", "SRC-016", "SRC-019", "SRC-006", "SRC-031" ], "findings": [ { "id": "loc-gov-validation-reconciliation-finding", "name": "Validation, canonicalization and reconciliation of declared against observed language", "description": "Defines the conformance checks applied to a binding and how a declared tag is reconciled against detected or transport-asserted content language, while preserving the originally recorded tag so that canonicalization and deprecation mapping never destroy the input.", "source_refs": [ "SRC-001", "SRC-003", "SRC-004", "SRC-006", "SRC-031" ], "questions": [ { "id": "loc-gov-q-wellformed-valid", "text": "Is the bound tag well-formed, valid against the pinned registry, and in canonical form?", "kind": "validation", "answer_data": [ "Well-formedness result against the tag grammar", "Validity result against the pinned registry snapshot", "Canonical form of the tag", "List of duplicate variant or singleton violations found" ] }, { "id": "loc-gov-q-profile-conformance", "text": "Does the binding satisfy the declared profile's permitted-tag and required-subtag constraints?", "kind": "constraint", "answer_data": [ "Profile conformance result", "Failed constraint identifiers", "Severity of each failure", "Waiver reference where a failure is accepted" ] }, { "id": "loc-gov-q-deprecation-mapping", "text": "How is a deprecated subtag with a preferred value mapped without silently rewriting the recorded original?", "kind": "process", "answer_data": [ "Recorded original tag as supplied", "Mapped preferred value", "Mapping rule reference and registry revision used", "Whether the mapping is advisory or applied on write" ] }, { "id": "loc-gov-q-declared-versus-observed", "text": "How is the declared tag reconciled against detected or transport-asserted content language?", "kind": "quality", "answer_data": [ "Detected language tag and detector confidence", "Transport-level language claim value", "Agreement or divergence result", "Reconciliation outcome and the value treated as authoritative" ] } ], "data_elements": [ { "id": "loc-gov-de-recorded-original-tag", "name": "Recorded original tag", "description": "The tag exactly as supplied, retained alongside any canonicalized or preferred-value-mapped form.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-001" ] }, { "id": "loc-gov-de-canonical-tag", "name": "Canonical tag form", "description": "The canonicalized form of the bound tag under the pinned registry and locale-data revisions.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-004" ] }, { "id": "loc-gov-de-validation-status", "name": "Validation status set", "description": "Structured result carrying well-formedness, validity, canonicality and profile conformance outcomes with severities.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-031" ] }, { "id": "loc-gov-de-observed-language", "name": "Observed content language", "description": "Language detected from the host content or asserted at transport level, held distinctly from the declared binding value.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006" ] } ], "artifacts": [ { "id": "loc-gov-validation-report-artifact", "name": "Binding validation report", "description": "Dated report of the conformance checks run against one or more bindings, listing check identifiers, pinned revisions used, results, severities and any waivers.", "media_or_form": [ "structured check-result record", "conformance report document" ], "serial": true, "identity_strategy": "Authoritative report identifier issued by the validating system of record, qualified by run sequence; otherwise a governed IRI, or a ULID assigned per run.", "source_refs": [ "SRC-001", "SRC-023", "SRC-031" ] } ], "inline_only_rationale": null }, { "id": "loc-gov-conflict-resolution-finding", "name": "Conflict disposition and declared review limitations", "description": "Records how competing localization claims are ranked and disposed, how macrolanguage and specific-language tensions are represented, and where accessibility or cultural review could not be completed. Disposition decisions are localization decisions; enforcement of the outcome belongs to the consuming system.", "source_refs": [ "SRC-001", "SRC-004", "SRC-024", "SRC-016", "SRC-019", "SRC-006" ], "questions": [ { "id": "loc-gov-q-precedence-rule", "text": "Which precedence rule applies when the declared tag, the transport-level claim and the profile default disagree?", "kind": "decision", "answer_data": [ "Ordered precedence rule identifier", "Winning value and losing values", "Rationale text for the disposition", "Deciding role reference and decision timestamp" ] }, { "id": "loc-gov-q-macrolanguage-tension", "text": "How is a conflict between a macrolanguage tag and a more specific individual-language tag recorded?", "kind": "relationship", "answer_data": [ "Macrolanguage subtag and encompassed subtag", "Profile preference between the two", "Whether both are retained or one is normalized away", "Downstream matching impact note" ] }, { "id": "loc-gov-q-review-gap", "text": "What is recorded when a cultural or accessibility review cannot be completed for a target locale?", "kind": "exception", "answer_data": [ "Review type that could not be completed", "Reason code (no qualified reviewer, disputed conventions, insufficient corpus)", "Provisional status applied to affected values", "Re-review trigger and target date" ] }, { "id": "loc-gov-q-accessibility-boundary", "text": "Which accessibility obligations does this binding discharge, and which remain with the rendering layer?", "kind": "requirement", "answer_data": [ "Programmatically determinable language value supplied for the host", "Passage-level versus page-level coverage of the binding", "Obligations explicitly left to the renderer or markup layer", "Reference to the external conformance evaluation" ] } ], "data_elements": [ { "id": "loc-gov-de-conflict-record", "name": "Conflict record", "description": "Structured statement of competing localization claims, their sources and the applied precedence rule.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-006" ] }, { "id": "loc-gov-de-disposition-outcome", "name": "Disposition outcome code", "description": "The recorded outcome of a conflict: accepted, overridden, dual-retained, deferred or escalated.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-024" ] }, { "id": "loc-gov-de-review-limitation", "name": "Declared review limitation", "description": "Explicit statement that a cultural or accessibility review was not completed, with reason and provisional status.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-024", "SRC-019" ] } ], "artifacts": [ { "id": "loc-gov-conflict-disposition-artifact", "name": "Localization conflict disposition note", "description": "Decision record naming the competing localization claims, the precedence rule applied, the deciding role, the rationale and any declared review limitation carried forward.", "media_or_form": [ "decision record", "annotated conflict statement" ], "serial": false, "identity_strategy": "Authoritative decision identifier from the adopting Dimension's decision register; otherwise a governed IRI, or a UUID assigned at disposition time.", "source_refs": [ "SRC-024", "SRC-006" ] } ], "inline_only_rationale": null }, { "id": "loc-gov-interop-mapping-finding", "name": "Interoperability crosswalks and export bindings", "description": "Declares how the binding maps onto external localization carriers, with each mapping recorded as an evidence-backed alignment and an explicit lossiness statement rather than an unqualified conformance claim.", "source_refs": [ "SRC-023", "SRC-016", "SRC-006", "SRC-031", "SRC-032" ], "questions": [ { "id": "loc-gov-q-carrier-mapping", "text": "Which external carrier fields does this binding map onto for interchange?", "kind": "interoperability", "answer_data": [ "Source and target locale attribute targets in the translation-interchange format", "Markup annotation data-category targets", "Transport header target for the content language claim", "Terminology exchange concept-entry target" ] }, { "id": "loc-gov-q-mapping-lossiness", "text": "Is each mapping lossless, lossy or one-way, and what is dropped on round-trip?", "kind": "constraint", "answer_data": [ "Lossiness classification per mapping", "Enumerated fields dropped or coarsened", "Round-trip test result reference", "Compensating annotation carried in a metadata slot" ] }, { "id": "loc-gov-q-correlation-identifier", "text": "Which identifier correlates the binding with an external localization unit across systems?", "kind": "identity", "answer_data": [ "Correlation identifier value and issuing system", "Identifier scope and uniqueness guarantee", "Stability policy for the identifier", "Fallback correlation strategy when the identifier is absent" ] }, { "id": "loc-gov-q-alignment-evidence", "text": "What evidence supports each claimed alignment, and is conformance asserted or only alignment?", "kind": "evidence", "answer_data": [ "Specification clause reference supporting the mapping", "Claim strength (alignment only versus asserted conformance)", "Test or certification evidence reference where conformance is claimed", "Standard version pinned for the claim" ] } ], "data_elements": [ { "id": "loc-gov-de-carrier-mapping", "name": "Carrier mapping entry", "description": "One declared mapping from a binding element to an external carrier field, with the pinned standard version.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-023", "SRC-016" ] }, { "id": "loc-gov-de-mapping-lossiness", "name": "Mapping lossiness code", "description": "Lossless, lossy or one-way classification for a declared mapping.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-023" ] }, { "id": "loc-gov-de-correlation-id", "name": "External correlation identifier", "description": "Identifier used to correlate the binding with an external localization unit or termbase concept entry.", "value_kind": "identifier", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-023", "SRC-032" ] }, { "id": "loc-gov-de-claim-strength", "name": "Alignment claim strength", "description": "Whether the model asserts alignment only or claims conformance backed by named evidence.", "value_kind": "code", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-031" ] } ], "artifacts": [ { "id": "loc-gov-interop-crosswalk-artifact", "name": "Localization interoperability crosswalk", "description": "Versioned mapping table from binding elements to external carrier fields, recording pinned standard versions, lossiness classification, correlation identifier strategy and supporting evidence per row.", "media_or_form": [ "crosswalk table", "mapping specification document", "machine-readable mapping set" ], "serial": true, "identity_strategy": "Authoritative crosswalk identifier from the interoperability register, qualified by an immutable revision; otherwise a governed IRI plus revision, or a ULID per release.", "source_refs": [ "SRC-023", "SRC-016", "SRC-006", "SRC-032" ] } ], "inline_only_rationale": null } ] } ] }, { "id": "loc-gov-lifecycle-service-bundle", "name": "Binding lifecycle, disclosure and disposition", "description": "The governed lifecycle of the binding on its host object, and the declarative rules that control who may see localized values, how long binding records are kept, and what survives their withdrawal.", "rationale": "A localization binding changes far more often than the host it annotates and far more often than the registries it cites, so it needs its own version, effective interval and supersession semantics without acquiring an independent identity as a language, content item or project. Localized variants are also routinely embargoed or locale-restricted before release, and binding records fall under the adopting organization's retention schedule, so disclosure and disposition must be declared explicitly and their execution attributed to the owning systems.", "source_refs": [ "SRC-023", "SRC-016", "SRC-025", "SRC-026", "SRC-027" ], "layers": [ { "id": "loc-gov-binding-lifecycle-layer", "name": "Binding state, version and supersession", "description": "Workflow state and permitted transitions for the binding, its monotonic version and effective interval, and how superseded or deprecated versions are represented so that correction never rewrites history in place.", "source_refs": [ "SRC-023", "SRC-025", "SRC-026" ], "findings": [ { "id": "loc-gov-binding-lifecycle-finding", "name": "Binding state, version, effective interval, supersession and deprecation", "description": "Governs the lifecycle of the binding itself on its host object: current workflow state and permitted transitions, monotonic version, interval over which a version is authoritative, supersession by a successor, deprecation with replacement guidance, and correction performed by issuing a superseding version rather than mutating a published one.", "source_refs": [ "SRC-023", "SRC-025", "SRC-026", "SRC-027" ], "questions": [ { "id": "loc-gov-q-current-state", "text": "What is the current workflow state of this binding and which transitions are permitted from it?", "kind": "state", "answer_data": [ "Current state code with the mapped interchange state", "Optional sub-state refinement", "Permitted next states and the role required for each", "Whether the state permits export or publication" ] }, { "id": "loc-gov-q-effective-interval", "text": "Over which effective interval is this binding version authoritative for the host object?", "kind": "temporal", "answer_data": [ "Effective-from timestamp", "Effective-to timestamp or open-ended marker", "Recording timestamp distinct from the effective-from value", "Interval overlap policy with sibling bindings on the same host" ] }, { "id": "loc-gov-q-supersession-link", "text": "Which binding version supersedes or is superseded by this one, and on what ground?", "kind": "lifecycle", "answer_data": [ "Predecessor binding version reference", "Successor binding version reference", "Supersession ground code (correction, retranslation, profile change, registry drift)", "Monotonic version number or concurrency token" ] }, { "id": "loc-gov-q-correction-mechanism", "text": "How is an erroneous published binding corrected without destroying the superseded record?", "kind": "event", "answer_data": [ "Correction event reference", "Superseded version retained in place with a closed effective interval", "Correction rationale text", "Notification obligation to downstream consumers" ] }, { "id": "loc-gov-q-deprecate-versus-withdraw", "text": "When is a binding deprecated with replacement guidance rather than withdrawn outright?", "kind": "decision", "answer_data": [ "Deprecation flag and deprecation timestamp", "Preferred replacement binding or tag reference", "Sunset date after which resolution must stop returning the value", "Consumer migration guidance text" ] } ], "data_elements": [ { "id": "loc-gov-de-binding-state", "name": "Binding workflow state", "description": "Current governed state of the binding, mapped to an interchange state value where one applies.", "value_kind": "code", "cardinality": "1", "required": true, "source_refs": [ "SRC-023" ] }, { "id": "loc-gov-de-binding-version", "name": "Binding version token", "description": "Monotonic version or concurrency token completing the binding's host-dependent weak identity: host object reference plus target field or resource path plus this version token.", "value_kind": "identifier", "cardinality": "1", "required": true, "source_refs": [ "SRC-025" ] }, { "id": "loc-gov-de-effective-interval", "name": "Effective interval", "description": "Interval over which this binding version is authoritative, recorded separately from the moment the record was written.", "value_kind": "duration", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-026" ] }, { "id": "loc-gov-de-supersedes-ref", "name": "Supersession reference", "description": "Reference to the predecessor or successor binding version, with the supersession ground.", "value_kind": "reference", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-025" ] }, { "id": "loc-gov-de-deprecation-marker", "name": "Deprecation marker", "description": "Flag, timestamp, preferred replacement and sunset date applied when a binding is deprecated rather than withdrawn.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-001", "SRC-026" ] } ], "artifacts": [], "inline_only_rationale": "This model is a mixin: the binding lives as a field set on a host object owned by another model and has only host-dependent weak identity, keyed by host object reference plus target field or resource path plus monotonic binding version. Its state, effective interval and supersession references remain inline on that host record. Materializing them as a standalone artifact would create a competing independent identity and could be mistaken for the lifecycle of a language, content item or translation project. A durable narrative of change remains in the host model's revision history and referenced records model." } ] }, { "id": "loc-gov-disclosure-retention-layer", "name": "Disclosure, redaction, retention and disposition", "description": "Declarative sensitivity, embargo and locale-filter rules for localized values and their export redaction, and the retention class, legal hold status, integrity evidence and tombstone content that govern binding records at end of life.", "source_refs": [ "SRC-016", "SRC-026", "SRC-027" ], "findings": [ { "id": "loc-gov-disclosure-redaction-finding", "name": "Sensitivity, embargo and finding/artifact disclosure of localized content", "description": "Classifies which localized findings or referenced resources are restricted, embargoed until a release moment, or filtered to specific locales, and states the redaction or substitution applied on export. Authorization scope is expressed only at supported bundle, layer, finding and artifact grains; evaluation and enforcement remain external.", "source_refs": [ "SRC-016", "SRC-026", "SRC-027" ], "questions": [ { "id": "loc-gov-q-restricted-fields", "text": "Which localized findings or artifacts are restricted, and to which audience classes?", "kind": "access", "answer_data": [ "Finding or artifact identifier within the binding", "Sensitivity classification code", "Permitted audience class identifiers", "Locale filter expression limiting applicability to named locales" ] }, { "id": "loc-gov-q-embargo-window", "text": "Until what moment is a localized variant embargoed, and what may be disclosed before it?", "kind": "access", "answer_data": [ "Embargo-until timestamp", "Pre-embargo disclosable subset", "Release authority permitted to lift the embargo early", "Behaviour when the embargo moment passes without approval" ] }, { "id": "loc-gov-q-regulated-content", "text": "Does the localized value contain personal or otherwise regulated data that constrains disclosure?", "kind": "privacy", "answer_data": [ "Regulated-data category flag", "Jurisdiction whose rules were assessed", "Basis reference for the constraint", "Minimization or pseudonymization applied to the localized value" ] }, { "id": "loc-gov-q-redaction-behaviour", "text": "What redaction or substitution is applied when an unauthorized audience requests the binding?", "kind": "access", "answer_data": [ "Redaction strategy code (omit, mask, substitute fallback locale, deny)", "Substituted value where applicable", "Whether the redaction itself is signalled to the requester", "Reference to the enforcing component" ] } ], "data_elements": [ { "id": "loc-gov-de-sensitivity-class", "name": "Sensitivity classification", "description": "Declared sensitivity class of a localized finding or referenced artifact within the binding.", "value_kind": "code", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-027" ] }, { "id": "loc-gov-de-locale-filter", "name": "Locale filter expression", "description": "Expression declaring the locales for which a localized value is applicable or withheld.", "value_kind": "text", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-016" ] }, { "id": "loc-gov-de-embargo-until", "name": "Embargo-until timestamp", "description": "Moment before which the localized value must not be disclosed to the general audience class.", "value_kind": "timestamp", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-026" ] }, { "id": "loc-gov-de-redaction-rule", "name": "Redaction rule", "description": "Declared strategy applied to a restricted finding or artifact on export or unauthorized read.", "value_kind": "object", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-016", "SRC-027" ] } ], "artifacts": [ { "id": "loc-gov-disclosure-profile-artifact", "name": "Localized-content disclosure profile", "description": "Versioned declaration mapping localized findings and artifacts to sensitivity classes, audience classes, locale filters, embargo moments and redaction strategies, for consumption by an external authorization component.", "media_or_form": [ "structured disclosure rule set", "classification schedule document" ], "serial": true, "identity_strategy": "Authoritative profile identifier from the adopting Dimension's information-classification register, qualified by revision; otherwise a governed IRI plus revision, or a ULID per release.", "source_refs": [ "SRC-016", "SRC-027" ] } ], "inline_only_rationale": null }, { "id": "loc-gov-retention-disposition-finding", "name": "Integrity, retention, legal hold and tombstone declarations", "description": "Declares the retention class and minimum period for binding records, whether a hold blocks disposition, what integrity evidence proves a superseded binding is unaltered, and what a tombstone must preserve. Appraisal authority and the physical execution of destruction or transfer sit with the records system.", "source_refs": [ "SRC-025", "SRC-026", "SRC-027" ], "questions": [ { "id": "loc-gov-q-retention-class", "text": "What retention class and minimum retention period apply to this binding record?", "kind": "retention", "answer_data": [ "Retention class identifier from the governing schedule", "Minimum retention period expressed as a duration", "Retention trigger event (creation, supersession, host disposal)", "Owning schedule reference and its issuing authority" ] }, { "id": "loc-gov-q-legal-hold", "text": "Is the binding subject to a hold that blocks disposition, and who asserted it?", "kind": "retention", "answer_data": [ "Hold flag and hold identifier", "Asserting authority reference", "Hold start timestamp and expected review date", "Scope of the hold across binding versions" ] }, { "id": "loc-gov-q-integrity-evidence", "text": "What integrity evidence shows that a superseded binding version is unaltered?", "kind": "evidence", "answer_data": [ "Content digest value and algorithm identifier", "Digest computation timestamp", "Signing or sealing reference where applied", "Verification result and verifier reference" ] }, { "id": "loc-gov-q-tombstone-content", "text": "What must a tombstone preserve after a binding is withdrawn, and who executes the destruction?", "kind": "retention", "answer_data": [ "Retained identifiers and host object reference", "Withdrawal reason code and withdrawal timestamp", "Successor or replacement reference where one exists", "Executing records system or policy reference for the physical destruction" ] } ], "data_elements": [ { "id": "loc-gov-de-retention-class", "name": "Retention class reference", "description": "Reference to the retention class in the governing schedule that applies to the binding record.", "value_kind": "reference", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-027" ] }, { "id": "loc-gov-de-hold-status", "name": "Hold status", "description": "Whether a legal or administrative hold currently blocks disposition of the binding record, with the asserting authority.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-027" ] }, { "id": "loc-gov-de-integrity-digest", "name": "Integrity digest", "description": "Digest of the binding record content with its algorithm identifier and computation timestamp.", "value_kind": "text", "cardinality": "0..n", "required": false, "source_refs": [ "SRC-025", "SRC-027" ] }, { "id": "loc-gov-de-tombstone-payload", "name": "Tombstone payload", "description": "Minimal retained set after withdrawal: identifiers, host reference, withdrawal reason, timestamp and successor reference.", "value_kind": "object", "cardinality": "0..1", "required": false, "source_refs": [ "SRC-026", "SRC-027" ] } ], "artifacts": [ { "id": "loc-gov-tombstone-record-artifact", "name": "Binding tombstone record", "description": "Minimal durable record left after a localization binding is withdrawn, preserving identifiers, host reference, withdrawal reason and timestamp, successor reference, integrity digest and the reference to the records policy under which destruction was or will be executed.", "media_or_form": [ "tombstone record", "disposition entry" ], "serial": false, "identity_strategy": "Retains the withdrawn binding's authoritative identifier so references do not dangle; where no master identifier existed, the governed IRI or the previously assigned UUID or ULID is preserved unchanged.", "source_refs": [ "SRC-026", "SRC-027" ] } ], "inline_only_rationale": null } ] } ] } ] }, "functions": [ { "id": "loc-locale-fn-parse-canonicalize", "name": "Parse and canonicalize a language or locale identifier", "description": "Parses a supplied identifier into its subtags by role, applies the stated case and ordering normalization, and returns the canonical form together with the parse result and the list of normalizations applied.", "inputs": [ "Identifier string exactly as received", "Canonicalization profile selector: language-tag canonical form or Unicode locale identifier canonical form", "Pinned registry and locale data versions to use" ], "outputs": [ "Canonical identifier string", "Parsed subtag structure by role, including extension attributes and keywords", "Well-formedness verdict with the failing position where parsing fails", "List of normalizations applied, including dropped duplicate attributes and keys" ], "preconditions": [ "The input is a single identifier, not a language range or a priority list", "The canonicalization profile and its data version are stated explicitly by the caller" ], "effects": [ "Produces a canonical identifier and a parse result for storage or comparison", "Records which normalization profile and data version were applied so the result is reproducible", "Performs no content transformation, no rendering and no resource selection" ], "source_refs": [ "SRC-001", "SRC-004", "SRC-009" ] }, { "id": "loc-locale-fn-validate-registry-reference", "name": "Validate subtags against the pinned subtag registry", "description": "Checks every subtag of a well-formed identifier against a pinned subtag registry snapshot and reports validity, deprecation, the prescribed replacement, and the prefix and script-suppression advisories attached to the matching records.", "inputs": [ "Well-formed identifier or a parsed subtag structure", "Pinned registry snapshot reference including its File-Date", "Policy for handling deprecated, grandfathered and collection-scope records" ], "outputs": [ "Validity verdict per subtag", "Deprecation status and prescribed replacement value per affected subtag", "References to the individual registry records consulted", "Prefix and script-suppression advisories, and scope classification of the primary language subtag" ], "preconditions": [ "The identifier has already passed well-formedness parsing", "A registry snapshot is pinned, retrievable and integrity-checked" ], "effects": [ "Emits a validation result bound to a named registry snapshot and File-Date", "Flags grandfathered, redundant, collection-scope and macrolanguage records for human review", "Does not rewrite the stored identifier; applying a replacement is a separate, policy-governed patch" ], "source_refs": [ "SRC-001", "SRC-003", "SRC-012" ] }, { "id": "loc-locale-fn-match-language-ranges", "name": "Filter or look up tags against language ranges", "description": "Applies basic filtering, extended filtering or lookup to compare a language priority list against a set of candidate tags, returning either the matching set in priority order or the single closest match with its truncation steps.", "inputs": [ "Language priority list of ranges with optional weights", "Candidate tag set", "Matching scheme selector", "Defaulting behaviour to use when no candidate matches" ], "outputs": [ "Matching tag set in priority order for filtering schemes", "Single closest tag or the declared default for lookup", "Match reason per candidate, including the truncation steps taken", "List of ranges that matched nothing" ], "preconditions": [ "Ranges and candidate tags are expressed in the same canonical form", "The defaulting behaviour for a no-match result is defined before the call is made" ], "effects": [ "Returns a match result without asserting the semantic validity of any tag or range", "Records the scheme, implementation and truncation steps used so the result can be reproduced", "Selects no resources, serves no content and writes to no host record" ], "source_refs": [ "SRC-002", "SRC-009", "SRC-004" ] }, { "id": "loc-locale-fn-resolve-declared-preferences", "name": "Resolve declared preferences to a resolved locale", "description": "Resolves an ordered preference declaration against an available locale inventory and a configured default, producing the resolved locale, the outcome class, an ordered fallback chain with a reason per step, and the extension values actually honoured.", "inputs": [ "Ordered preference declaration with its declared-versus-inferred markers", "Reference to an available locale inventory manifest and its version", "Configured default locale and defaulting behaviour", "Matching scheme selector and unknown-extension-key policy" ], "outputs": [ "Resolved locale identifier", "Outcome class: exact, fallback, default or none", "Ordered fallback chain with a reason code per step", "Extension key values actually honoured, with substitutions marked", "Data versions consulted: inventory version, registry File-Date and locale data release" ], "preconditions": [ "The inventory manifest version and the registry snapshot are both identified in the call", "Declared and inferred components of the preference are distinguishable in the input", "The caller is authorised to read any party-linked preference supplied" ], "effects": [ "Produces a resolution outcome record for the requesting context", "Reports which requested extension values were honoured and which were substituted", "Does not enforce access, execute rendering, or write to the referenced audit or retention models" ], "source_refs": [ "SRC-002", "SRC-009", "SRC-004", "SRC-006" ] }, { "id": "loc-trans-fn-bind-variant", "name": "Bind target variant and translation resource", "description": "Create or update the binding between a translatable unit and one target language variant, pinning the source revision, the variant revision, the origin class and a digest-verified reference to the resource that holds the text.", "inputs": [ "Translatable unit identifier and its declared uniqueness scope", "Current source revision identifier and digest", "Candidate target language tag", "External resource reference with named digest algorithm and value", "Production origin class and producing agent reference", "Translation event time and ingestion time" ], "outputs": [ "Target variant binding record with variant revision and state", "Staleness verdict against the current source revision", "Digest verification verdict and resolution time" ], "preconditions": [ "The unit identifier resolves within its declared uniqueness scope", "The target language tag is well-formed and canonicalised against the language subtag registry", "The source revision is known and the target language tag is declared wherever target content exists", "The state is initial when no target content is yet present" ], "effects": [ "Creates or supersedes a binding record; existing source revision and origin fields are never rewritten in place", "Raises or clears the staleness flag by comparing source revisions", "Does not write to, reformat or re-host the referenced catalogue, translation memory or asset" ], "source_refs": [ "SRC-016", "SRC-017", "SRC-001", "SRC-023" ] }, { "id": "loc-trans-fn-resolve-fallback", "name": "Resolve declared fallback chain", "description": "Given a requested language priority list and the declared fallback chain profile, select the binding that supplies a value, or return the declared terminal outcome, and label the result as translation or fallback.", "inputs": [ "Requested language priority list", "Declared fallback chain profile version", "Index of available bindings with their language tags, states and staleness flags", "Content class of the unit where fallback may be prohibited" ], "outputs": [ "Selected binding reference or the declared terminal outcome", "Served chain position with its language tag and inherited-or-override flag", "Fallback disclosure flag and the actual language of the served representation", "Resolution time" ], "preconditions": [ "The chain is explicitly ordered and its matching scheme is declared", "Terminal behaviour when nothing matches is declared rather than left implicit", "Bindings prohibited from being served, such as unapproved machine output, are identifiable" ], "effects": [ "Emits a resolution result that always distinguishes fallback from translation", "Never counts a fallback-served value toward translated coverage", "Does not create or alter bindings, and does not perform delivery, negotiation or enforcement" ], "source_refs": [ "SRC-004", "SRC-002", "SRC-006" ] }, { "id": "loc-trans-fn-validate-placeholders", "name": "Validate placeholder, selection and markup parity", "description": "Compare a target variant against the source unit's declared selection and placeholder contract, checking placeholder presence and arity, option and operand type constraints, catch-all variant presence, inline code disposition and bidirectional isolation.", "inputs": [ "Source placeholder and selector contract for the unit", "Target variant text with its inline codes and markup", "Required plural or select category set for the target language", "Protected token register entries in scope" ], "outputs": [ "Parity findings list with offending spans", "Missing, extra or misordered placeholder report", "Missing category or missing catch-all verdict", "Overall pass or fail verdict with the checking agent and time" ], "preconditions": [ "The placeholder and selector contract is declared for the source unit", "Original formatting codes are isolated from translatable text", "The required category set for the target language is available as reference data" ], "effects": [ "Records validation findings against the variant binding", "Never edits, repairs or reorders target text", "Does not by itself change translation state; gating on a failed verdict is performed by the adopting Dimension's runtime" ], "source_refs": [ "SRC-014", "SRC-015", "SRC-017", "SRC-018" ] }, { "id": "loc-trans-fn-apply-terminology", "name": "Apply terminology constraints to a variant", "description": "Resolve the concept bindings in scope for a unit, determine the preferred or admitted target term for the target locale, and record compliance or breach findings for the variant.", "inputs": [ "Concept references bound to the unit", "Target language tag and any narrower locale scope", "Target variant text", "Termbase reference and the dialect or profile in use" ], "outputs": [ "Term compliance findings with expected and observed terms", "Unresolved or ambiguous concept list", "Terminology-typed quality issues with severity and profile reference" ], "preconditions": [ "Concept references resolve in the referenced termbase", "The termbase declares administrative status for target terms in the relevant language section", "A severity profile is named where breaches are scored" ], "effects": [ "Records term compliance findings against the variant binding", "Does not create, edit, admit or deprecate concepts or terms in the termbase", "Leaves adjudication of an ambiguous concept to the terminologist role" ], "source_refs": [ "SRC-016", "SRC-018", "SRC-020" ] }, { "id": "loc-trans-fn-record-quality", "name": "Record review and quality assertion", "description": "Append an immutable assertion about a variant covering machine confidence, quality issues, any overall rating against a named profile and threshold, coverage measures with stated exclusions, and the agents and times involved.", "inputs": [ "Variant binding reference", "Quality issue list with types, severities and spans", "Optional score, vote score, threshold and quality profile reference", "Machine confidence value with the engine it is attributed to", "Producing, revising and signing agent references", "Event time and ingestion time" ], "outputs": [ "Quality assertion record with a monotonic sequence number", "Superseded-assertion reference where an earlier assertion is replaced", "Coverage measure with explicit numerator, denominator and exclusions" ], "preconditions": [ "The variant binding exists", "Any asserted machine confidence is attributed to an identified engine", "Any overall rating names a resolvable quality profile and its threshold", "Coverage measures declare whether fallback-served and machine-only entries are excluded" ], "effects": [ "Appends an immutable assertion; prior assertions are superseded by reference, never edited", "Does not advance translation state and never converts a confidence value into an approval", "Does not own the workflow task history or the audit trail; those remain with the workflow and logging systems of the adopting Dimension" ], "source_refs": [ "SRC-016", "SRC-017", "SRC-018" ] }, { "id": "loc-gov-check-binding-operation-eligibility-fn", "name": "Check binding-operation role eligibility", "description": "Advises whether the requesting principal's asserted role is listed as eligible for a requested operation and returns the governing role or rule references for evaluation by the adopting Dimension's external authorization component. It never returns or enforces an allow/deny decision; identity proofing, policy evaluation, credential handling and audit remain external.", "inputs": [ "Principal reference and asserted role claims", "Requested operation code", "Target binding reference and host object reference", "Applicable stewardship charter and disclosure profile references" ], "outputs": [ "Advisory eligibility status (listed, not listed, or additional review required)", "Governing role or rule references for the external decision point", "Required additional approvals for external evaluation" ], "preconditions": [ "A stewardship charter or equivalent role assignment is resolvable for the binding scope", "Separation-of-duties constraints between reviewer and approver are declared" ], "effects": [ "No authorization decision is made and no binding content changes", "Advisory context is returned to the external authorization component; that component owns any decision and audit emission" ], "source_refs": [ "SRC-024", "SRC-027" ] }, { "id": "loc-gov-read-binding-fn", "name": "Read binding", "description": "Returns the localization binding for a host object at a requested version or effective instant, applying declared finding- and artifact-level disclosure rules to the response.", "inputs": [ "Host object reference", "Optional binding version token or as-at timestamp", "Requesting audience class" ], "outputs": [ "Binding record with recorded original tag, canonical form, state, version and effective interval", "Applied-redaction indicator listing withheld fields", "Pinned registry, locale-data and standard revisions" ], "preconditions": [ "Authorization decision is allow for the read operation", "The requested version or effective instant resolves to exactly one binding version" ], "effects": [ "No state change", "Withheld fields are omitted or masked per the disclosure profile" ], "source_refs": [ "SRC-023", "SRC-016", "SRC-026" ] }, { "id": "loc-gov-bind-locale-fn", "name": "Bind locale to host object", "description": "Creates a localization binding on a host object with a recorded original tag, source and default locales, priority list, matching scheme and no-match behaviour, using a caller-supplied idempotency key so retries do not create duplicates.", "inputs": [ "Host object reference and target field or resource path", "Recorded original tag and optional profile reference", "Ordered language priority list, matching scheme and no-match behaviour", "Idempotency key" ], "outputs": [ "Created binding reference and initial version token", "Initial workflow state", "Initial validation result" ], "preconditions": [ "The host object exists and accepts the mixin at the named path", "Authorization decision is allow for the create operation", "The supplied tag is at minimum well-formed" ], "effects": [ "A new binding version is created in an initial, unpublished state", "Repeating the call with the same idempotency key returns the original binding without creating a second one", "Registry, locale-data and profile revisions in force are pinned onto the binding" ], "source_refs": [ "SRC-001", "SRC-002", "SRC-003", "SRC-031" ] }, { "id": "loc-gov-update-binding-fn", "name": "Update binding", "description": "Applies a partial change to an unpublished binding version under optimistic concurrency, rejecting the call when the supplied version token does not match the stored one.", "inputs": [ "Binding reference", "Expected version token", "Patch describing added, replaced or removed fields" ], "outputs": [ "New version token", "Applied patch summary", "Post-update validation result" ], "preconditions": [ "Authorization decision is allow for the update operation", "The binding is in a state that permits in-place update", "The supplied version token matches the stored token" ], "effects": [ "Binding content changes and the version token advances monotonically", "A version-token mismatch fails the call with a conflict outcome and no partial write", "An update attempted against a published version fails and directs the caller to supersession" ], "source_refs": [ "SRC-023", "SRC-025" ] }, { "id": "loc-gov-unbind-locale-fn", "name": "Unbind locale from host object", "description": "Detaches a localization binding from its host object while preserving referential integrity for anything that cites the binding.", "inputs": [ "Binding reference", "Expected version token", "Unbind reason code" ], "outputs": [ "Unbind outcome", "List of inbound references that block or survive the unbind" ], "preconditions": [ "Authorization decision is allow for the unbind operation", "No hold blocks the change", "Inbound references have been enumerated" ], "effects": [ "The binding no longer applies to the host object from the recorded moment", "Where inbound references exist, the binding is closed rather than removed and a tombstone is prepared", "Unbinding never deletes the host object or any separately identified translation resource" ], "source_refs": [ "SRC-023", "SRC-027" ] }, { "id": "loc-gov-resolve-locale-fn", "name": "Resolve locale for a request", "description": "Resolves a requested language priority list against the bindings available on a host object using the declared matching scheme, returning exactly one result for lookup or zero or more for filtering, and applying the declared no-match behaviour when the list is exhausted.", "inputs": [ "Host object reference", "Requested language priority list with optional weights", "Declared matching scheme and no-match behaviour", "Pinned locale-data release for parent-locale and likely-subtags handling" ], "outputs": [ "Selected binding reference and resolved tag, or the declared no-match result", "Ordered candidate list with the match basis for each candidate", "Indicator of whether truncation or a parent-locale override produced the match" ], "preconditions": [ "At least one binding exists on the host object or a no-match behaviour is declared", "The matching scheme is declared explicitly rather than inferred" ], "effects": [ "No state change", "The resolution basis is returned so that a downstream consumer can explain the selection" ], "source_refs": [ "SRC-002", "SRC-004", "SRC-006" ] }, { "id": "loc-gov-validate-binding-fn", "name": "Validate binding", "description": "Runs well-formedness, validity, canonicality and profile-conformance checks against the pinned registry and profile revisions, and produces a dated validation report without mutating the recorded original tag.", "inputs": [ "Binding reference", "Registry revision pin and locale-data release pin", "Governing profile reference and revision" ], "outputs": [ "Validation report with per-check results and severities", "Canonical form and any preferred-value mapping proposed", "Overall pass, pass-with-findings or fail outcome" ], "preconditions": [ "Revision pins are resolvable", "Authorization decision is allow for the validate operation" ], "effects": [ "A validation report is produced and linked to the binding version", "The recorded original tag is never overwritten by canonicalization or preferred-value mapping", "A fail outcome blocks transition to an approved state" ], "source_refs": [ "SRC-001", "SRC-003", "SRC-004", "SRC-031" ] }, { "id": "loc-gov-reconcile-claims-fn", "name": "Reconcile competing language claims", "description": "Compares the declared binding value with detected content language, transport-level claims and profile defaults, applies the declared precedence rule and emits a conflict disposition with rationale.", "inputs": [ "Declared binding value", "Observed or detected language values with confidence", "Transport-level content language claim", "Profile default and precedence rule reference" ], "outputs": [ "Reconciliation outcome and the value treated as authoritative", "Conflict disposition note with rationale and deciding role", "Escalation flag where the precedence rule does not decide" ], "preconditions": [ "A precedence rule is declared for the scope", "Confidence scales for detected values are declared" ], "effects": [ "A disposition is recorded against the binding version", "Losing claims are retained rather than discarded so the decision remains reviewable", "An undecidable conflict leaves the binding in a provisional state pending human decision" ], "source_refs": [ "SRC-024", "SRC-016", "SRC-006" ] }, { "id": "loc-gov-review-binding-fn", "name": "Review binding", "description": "Records a review outcome against a binding version, including declared limitations where a cultural or accessibility review could not be completed.", "inputs": [ "Binding reference and version token", "Reviewer reference and review type", "Review outcome and findings", "Declared limitation where the review is partial" ], "outputs": [ "Review record reference", "Updated workflow state", "Carried-forward limitation statement" ], "preconditions": [ "Authorization decision is allow for the review operation and the reviewer is not the proposer", "The binding is in a state that permits review" ], "effects": [ "The binding advances to a reviewed state or is returned for correction", "Declared limitations are attached and survive later state transitions", "Review does not by itself make the binding effective" ], "source_refs": [ "SRC-024", "SRC-023", "SRC-019" ] }, { "id": "loc-gov-approve-release-fn", "name": "Approve and release binding version", "description": "Applies the release authority's approval, sets the effective interval and moves the binding version to a published state; subsequent change proceeds by supersession only.", "inputs": [ "Binding reference and version token", "Approving authority reference", "Requested effective-from timestamp and optional effective-to timestamp" ], "outputs": [ "Published binding version with an effective interval", "Approval record reference", "Closed effective interval on the immediately preceding version" ], "preconditions": [ "Validation outcome is pass or pass-with-findings with accepted waivers", "A review record exists where the profile requires one", "The approver holds release authority and did not perform the review" ], "effects": [ "The binding version becomes authoritative over its effective interval", "The prior version's effective interval is closed at the new version's effective-from moment", "Published versions become immutable and can only be changed by supersession" ], "source_refs": [ "SRC-024", "SRC-023", "SRC-026" ] }, { "id": "loc-gov-supersede-binding-fn", "name": "Supersede or deprecate binding version", "description": "Issues a successor binding version that supersedes a published one, or marks a version deprecated with replacement guidance and a sunset date, preserving the superseded record intact.", "inputs": [ "Predecessor binding reference and version token", "Supersession ground or deprecation reason", "Successor content or preferred replacement reference", "Sunset date where deprecating" ], "outputs": [ "Successor binding version reference", "Bidirectional supersession links", "Deprecation marker with replacement guidance" ], "preconditions": [ "The predecessor is in a published state", "Authorization decision is allow and release authority is available", "No hold blocks the change" ], "effects": [ "The predecessor is retained unaltered with a closed effective interval", "Correction is recorded as a new version rather than an in-place edit", "Deprecated versions remain resolvable until the sunset date, after which resolution must stop returning them" ], "source_refs": [ "SRC-001", "SRC-025", "SRC-026" ] }, { "id": "loc-gov-export-binding-fn", "name": "Export binding with redaction", "description": "Projects the binding into a requested external carrier using the declared crosswalk, applies the disclosure profile's redaction rules for the requesting audience, and states what the projection loses.", "inputs": [ "Binding reference and requested carrier with its version", "Requesting audience class and purpose", "Crosswalk revision and disclosure profile revision" ], "outputs": [ "Carrier projection of the binding", "Redaction manifest naming withheld or masked fields", "Lossiness statement for the projection" ], "preconditions": [ "Authorization decision is allow for the export operation", "A crosswalk row exists for every element being projected", "Embargo moments have passed or an early-release approval is present" ], "effects": [ "No change to the stored binding", "Restricted fields are omitted, masked or substituted according to the declared strategy", "The projection carries the pinned standard version so a recipient can interpret it correctly" ], "source_refs": [ "SRC-023", "SRC-016", "SRC-006", "SRC-032" ] }, { "id": "loc-gov-dispose-binding-fn", "name": "Dispose binding and write tombstone", "description": "Evaluates retention class and hold status for a binding record, records the disposition decision and writes the tombstone, then hands physical destruction or transfer to the records system that owns execution.", "inputs": [ "Binding reference and all its versions", "Retention class reference and elapsed retention trigger", "Hold status and any asserting authority reference", "Disposition decision and authorizing role" ], "outputs": [ "Disposition decision record", "Tombstone record retaining identifiers, host reference, reason, timestamp and successor reference", "Handoff reference to the executing records system" ], "preconditions": [ "The retention period has elapsed against the declared trigger", "No hold is in force; an active hold fails the call without partial effect", "Authorization decision is allow for the disposition operation" ], "effects": [ "Binding content becomes unavailable while the tombstone and integrity digest persist so references do not dangle", "Physical destruction, media sanitization and archival transfer are executed by the referenced records system under the adopting Dimension's schedule, not by this model", "A disposition attempted under an active hold fails with an explicit hold-blocked outcome" ], "source_refs": [ "SRC-026", "SRC-027" ] } ], "composition": [ { "target": "IETF BCP 47 language tag and language tag matching standard", "relation": "ALIGN", "purpose": "Adopt the normative tag syntax, subtag roles, canonical form, well-formed versus valid distinction and the basic filtering, extended filtering and lookup schemes. Alignment is claimed for the structures actually cited; no conformance claim is made for behaviour this model does not execute.", "required": true, "source_refs": [ "SRC-001", "SRC-002" ] }, { "target": "IANA Language Subtag Registry", "relation": "REFERENCE", "purpose": "Dereference every subtag to its registry record for validity, deprecation, Preferred-Value replacement, Prefix, Suppress-Script, Macrolanguage and Scope. This model pins a snapshot by File-Date and carries record references; it does not maintain, extend or republish the registry.", "required": true, "source_refs": [ "SRC-003", "SRC-001" ] }, { "target": "Unicode CLDR and UTS #35 locale identity and locale data", "relation": "ALIGN", "purpose": "Adopt the Unicode locale identifier, its canonical syntax and alias-based canonicalization, likely-subtag expansion, the -u and -t extension field structures, and the layout orientation elements. Divergence from BCP 47 canonical form is recorded as a conflict rather than silently reconciled.", "required": true, "source_refs": [ "SRC-004", "SRC-005", "SRC-007", "SRC-008" ] }, { "target": "ISO 15924 script code registry", "relation": "REFERENCE", "purpose": "Bind the script subtag to an authoritative four-letter script code and its record. Script naming and code assignment stay with the registration authority; no direction property is imported because the consulted code list publishes none.", "required": false, "source_refs": [ "SRC-013", "SRC-001" ] }, { "target": "Any adopting Dimension entity that carries linguistic context, such as content records, catalogue entries, party preferences and message payloads", "relation": "MIX-IN", "purpose": "Embed the locale declaration alongside the value it qualifies so that value, language and direction travel together. The host entity keeps its own identity, lifecycle and access class; this mixin adds only the linguistic declaration and its provenance.", "required": true, "source_refs": [ "SRC-011", "SRC-010" ] }, { "target": "Party, person and account profile model of the adopting Dimension", "relation": "REFERENCE", "purpose": "Carry the preference declaration and its provenance while the party model owns the binding of that preference to a person or account. A language preference is never treated here as an identity attribute or as evidence of capability.", "required": false, "source_refs": [ "SRC-006", "SRC-011" ] }, { "target": "Localized content, document and terminology resource models", "relation": "REFERENCE", "purpose": "Point from a locale declaration to the translated resource or terminology asset it applies to, by identifier and version. Content storage, versioning, editorial state and translation production remain entirely with those models.", "required": false, "source_refs": [ "SRC-010", "SRC-008", "SRC-012" ] }, { "target": "Access control, privacy, retention and audit models of the adopting Dimension", "relation": "REFERENCE", "purpose": "Supply the retention class, linkability classification and reproducibility fields that those models need. Policy evaluation, enforcement, erasure execution and audit-trail storage are owned and performed there; this reference grants this model none of those semantics.", "required": true, "source_refs": [ "SRC-006" ] }, { "target": "Translatable content entity of the adopting Dimension (message, field, document node or media asset)", "relation": "MIX-IN", "purpose": "Attach translatable-unit identity, target variant bindings, fallback declaration, terminology constraints and quality assertions to a subject that already exists, without becoming the store of that subject's content.", "required": true, "source_refs": [ "SRC-016", "SRC-017" ] }, { "target": "BCP 47 language tag identity governed by the IANA Language Subtag Registry", "relation": "REFERENCE", "purpose": "Take language, script, region and variant identity from the governed registry, including Preferred-Value canonicalisation of deprecated subtags, instead of minting local language codes.", "required": true, "source_refs": [ "SRC-001" ] }, { "target": "Language range matching and lookup behaviour defined by RFC 4647", "relation": "ALIGN", "purpose": "Bind the declared fallback chain to a named matching scheme and to the requirement that defaulting behaviour be defined when no tag matches; the algorithm itself is not reimplemented here.", "required": true, "source_refs": [ "SRC-002" ] }, { "target": "Unicode CLDR/LDML locale inheritance, plural rules and language matching reference data", "relation": "ALIGN", "purpose": "Cite the released plural category sets, parent-locale chains and root fallback as reference data that constrains what a target variant must supply, without forking or restating that data locally.", "required": true, "source_refs": [ "SRC-004", "SRC-015" ] }, { "target": "Unicode MessageFormat 2 message, selector and placeholder model", "relation": "ALIGN", "purpose": "Ground the selection and placeholder contract in a normative message model, including catch-all variants, option and operand type constraints and format-time fallback representations; the formatting runtime remains external.", "required": false, "source_refs": [ "SRC-014" ] }, { "target": "OASIS XLIFF bitext interchange documents and their optional modules", "relation": "ALIGN", "purpose": "Map unit and segment identity, state and sub-state, inline codes, notes and validation rules to an interchange vocabulary so bindings survive round-tripping through localization tooling.", "required": false, "source_refs": [ "SRC-017", "SRC-018", "SRC-023" ] }, { "target": "W3C ITS 2.0 data categories", "relation": "ALIGN", "purpose": "Adopt named data categories for translatability, notes, terminology, locale filtering, provenance, external resources, quality issues, ratings and MT confidence rather than inventing parallel vocabulary.", "required": true, "source_refs": [ "SRC-016" ] }, { "target": "Terminology resource governed as a TBX termbase", "relation": "REFERENCE", "purpose": "Carry outgoing concept references and locale-scoped usage constraints while concept definition, term admission and termbase versioning stay with the terminology system.", "required": false, "source_refs": [ "SRC-016", "SRC-020" ] }, { "target": "Translation management, translation-memory and localization workflow systems of the adopting Dimension", "relation": "REFERENCE", "purpose": "Reference match candidates, job records and task histories held elsewhere; this model records the resulting binding and assertions and does not execute or reconstruct workflow.", "required": false, "source_refs": [ "SRC-018", "SRC-023" ] }, { "target": "Accessibility conformance model covering non-text and time-based media alternatives", "relation": "ALIGN", "purpose": "Record that locale-specific text alternatives, captions and audio descriptions are bound and evidenced, and that language of page and of parts must be programmatically determinable; conformance evaluation belongs to that model.", "required": false, "source_refs": [ "SRC-019" ] }, { "target": "HTTP content negotiation and Content-Language exposure at the delivery runtime", "relation": "REFERENCE", "purpose": "Supply the binding and fallback declaration that a negotiating runtime consumes, and require that the served representation's actual language be declared; negotiation execution and its fingerprinting exposure are owned by the runtime.", "required": false, "source_refs": [ "SRC-006" ] }, { "target": "Host object model designated by the adopting Dimension", "relation": "MIX-IN", "purpose": "Attach language, locale, translation and terminology binding plus its governance to an existing object, field or resource without giving the binding an independent identity or lifecycle.", "required": true, "source_refs": [ "SRC-016", "SRC-031" ] }, { "target": "IETF BCP 47 (RFC 5646 language tag syntax and RFC 4647 matching)", "relation": "ALIGN", "purpose": "Adopt the normative tag grammar, subtag types, well-formedness versus validity distinction, canonical formatting, and the filtering, lookup and mandatory no-match behaviour that govern resolution.", "required": true, "source_refs": [ "SRC-001", "SRC-002", "SRC-031" ] }, { "target": "IANA Language Subtag Registry", "relation": "REFERENCE", "purpose": "Carry a registry File-Date pin and cite subtag records including Deprecated and Preferred-Value, without assuming any part of the registry's assignment, deprecation or review process.", "required": true, "source_refs": [ "SRC-003" ] }, { "target": "IANA Language Tag Extensions Registry (u and t singletons)", "relation": "REFERENCE", "purpose": "Constrain which extension singletons a locale profile may permit, and attribute their definition to the registered authority.", "required": false, "source_refs": [ "SRC-030" ] }, { "target": "Unicode CLDR locale identifiers and locale data (UTS #35)", "relation": "ALIGN", "purpose": "Bind canonicalization, likely-subtags handling and parent-locale fallback chains to a pinned locale-data release, while leaving locale data maintenance and its release approval with the CLDR Technical Committee.", "required": true, "source_refs": [ "SRC-004", "SRC-024" ] }, { "target": "OASIS XLIFF 2.1 translation interchange", "relation": "ALIGN", "purpose": "Map source and target locale binding and workflow state onto the interchange format's attributes and modules for export, without owning the interchange document, its segmentation or its inline markup.", "required": false, "source_refs": [ "SRC-023" ] }, { "target": "W3C Internationalization Tag Set (ITS) 2.0 data categories", "relation": "ALIGN", "purpose": "Reuse Language Information, Translate, Terminology, Domain, Locale Filter, Provenance, Quality Issue and Rating, and MT Confidence rather than inventing local equivalents.", "required": false, "source_refs": [ "SRC-016" ] }, { "target": "W3C PROV-O provenance ontology", "relation": "ALIGN", "purpose": "Express agent attribution, generation, derivation and revision of bound values in a standard vocabulary; graph-scale provenance storage and inference stay with the provenance model.", "required": false, "source_refs": [ "SRC-025" ] }, { "target": "ISO 30042:2019 TermBase eXchange terminology resources", "relation": "REFERENCE", "purpose": "Reference concept entries and term records for the host subject and carry the correlation identifier and dialect pin, leaving termbase structure and maintenance external.", "required": false, "source_refs": [ "SRC-032" ] }, { "target": "ISO 639-3 and ISO 15924 registration authorities", "relation": "REFERENCE", "purpose": "Attribute language and script code assignment, change and retirement to their registration authorities so no local code lifecycle is created.", "required": true, "source_refs": [ "SRC-028", "SRC-029" ] }, { "target": "IETF RFC 9110 HTTP content negotiation", "relation": "REFERENCE", "purpose": "Bind the resolve and export surfaces to proactive negotiation semantics and record the documented hazard that a content language header states intended audience rather than the language of all text.", "required": false, "source_refs": [ "SRC-006" ] }, { "target": "W3C WCAG 2.2 accessibility conformance", "relation": "REFERENCE", "purpose": "Supply the programmatically determinable language value for a page or passage and record which conformance obligations remain with the rendering and accessibility layers.", "required": false, "source_refs": [ "SRC-019" ] }, { "target": "Adopting-Dimension access-control, policy-evaluation and audit model", "relation": "REFERENCE", "purpose": "Hand declared sensitivity classes, embargo moments, locale filters and redaction strategies to an external component for evaluation and enforcement, and reference its audit records without owning audit-trail semantics.", "required": true, "source_refs": [ "SRC-016", "SRC-027" ] }, { "target": "Adopting-Dimension records retention and disposition model", "relation": "REFERENCE", "purpose": "Bind retention class, hold status and tombstone content to a governing schedule whose appraisal authority, disposition execution and transfer remain external.", "required": true, "source_refs": [ "SRC-027" ] }, { "target": "Regional or organizational locale profile registry", "relation": "EXTEND", "purpose": "Specialize the permitted-tag set, required and prohibited subtags, extension policy, default locale and fallback chain for a named region or organization, without duplicating the generic identity, authority or conflict machinery defined in this model.", "required": false, "source_refs": [ "SRC-002", "SRC-030", "SRC-031" ] } ], "serviceLayers": { "dimension": { "owner_package_requirements": [ "The adopting Dimension names a single accountable owner for localization bindings within its scope and a distinct release authority, and records both as resolvable party references rather than free text.", "The Dimension publishes at least one locale profile revision that declares the permitted tag set, default locale, ordered language priority list, matching scheme and the mandatory no-match behaviour; a binding created without a resolvable profile is provisional.", "The Dimension declares which registry, locale-data and standard revisions are pinned by default, and the drift-detection trigger that marks bindings stale when those revisions advance.", "The Dimension binds its localization records to a retention class in its records schedule and names the records system that executes disposition, transfer and destruction.", "The Dimension names the external authorization component that evaluates and enforces the declared disclosure and redaction rules, since this model only declares them." ], "namespace_guidance": "Local identifiers for bindings, profiles, crosswalks and reports are minted in a Dimension-controlled namespace and never reuse an external registry's identifier space. Language, script and region subtag values are carried verbatim from their registration authorities and are never minted, extended or re-cased into local variants; private-use subtags are permitted only where the governing profile explicitly allows them and are always accompanied by a human-readable meaning. Where a governed IRI is used, it resolves within the Dimension's namespace and remains stable across binding supersession.", "registry_links": [ "IANA Language Subtag Registry pinned by File-Date for subtag validity and preferred-value mapping", "IANA Language Tag Extensions Registry for permitted extension singletons", "Unicode CLDR release identifiers for canonicalization, likely subtags and parent-locale fallback", "ISO 639-3 and ISO 15924 registration authority code tables for language and script code provenance", "The adopting Dimension's own locale profile register, retention schedule and information-classification register" ] }, "canon_and_patch": { "canonicalization_rules": [ "The recorded original tag is stored exactly as supplied and is never overwritten; the canonical form and any preferred-value mapping are stored as separate, additional fields alongside it.", "Canonical form follows the pinned tag-canonicalization rules: subtags lowercased except two-letter region subtags in uppercase and four-letter script subtags in title case, with duplicate variants and duplicate singletons rejected rather than silently deduplicated.", "Where a Unicode locale identifier form is required, extension keywords and variants are ordered as the pinned locale-data release specifies and key-only true values are removed; extlang and irregular legacy tags are mapped to their preferred equivalents and the mapping is recorded.", "A script subtag that the registry marks as suppressed for the primary language is retained if supplied but flagged as redundant; it is not deleted automatically.", "All comparisons for equality are made on the canonical form; all display and audit reporting cites the recorded original." ], "patch_rules": [ "Patches are expressed as explicit add, replace and remove operations against named paths and are rejected wholesale on any invalid path; there are no partial writes.", "Every patch carries the expected version token; a mismatch fails with a conflict outcome and leaves the stored binding untouched.", "A patch that would alter a published binding version is refused and the caller is directed to supersession, so correction always produces a new version and preserves the superseded record.", "Patches that change the pinned registry, locale-data or profile revision force re-validation before the binding may re-enter an approved state.", "Removing a provenance assertion, a declared review limitation or a conflict disposition is prohibited; such elements are closed or superseded, never erased." ], "compatibility_rules": [ "Adding an optional field, an additional crosswalk row or a new non-blocking validation check is backward compatible and does not require a new profile major revision.", "Narrowing a permitted-tag set, adding a required subtag, changing the matching scheme or changing the declared no-match behaviour is breaking and requires a new profile revision with an effective-from date and consumer migration guidance.", "Deprecating a bound value requires a preferred replacement reference and a sunset date; resolution continues to return the deprecated value until the sunset date passes.", "Alignment to an external standard is asserted only at a pinned version; advancing that version is a compatibility event that requires re-checking the crosswalk's lossiness statement.", "Conformance to an external standard is never claimed without a named test or certification evidence reference; absent that, the claim strength is alignment only." ] }, "artifact_rules": { "identity_priority": [ "Authoritative master-system identifier issued by the system of record that owns the artifact, such as the governance register, profile register, information-classification register or records system of the adopting Dimension.", "Governed global identifier or IRI minted in the adopting Dimension's controlled namespace, where no authoritative master system exists.", "UUID or ULID assigned by the adopting Dimension at creation time, used only when neither a master-system identifier nor a governed IRI is available.", "A date, a language tag, a locale profile name or a version label is never an identifier; each may qualify an identifier but never substitute for one." ], "timestamp_rule": "All time values are recorded as RFC 3339 date-time strings that include seconds and an explicit numeric offset or the Z designator; a bare local time, a value without seconds, or a value without an offset is rejected. Event time and observation or ingestion time are recorded separately whenever they differ: the effective-from moment of a binding version, the provenance activity start and end times, the embargo-until moment and the withdrawal moment are event times, while the record-written, validation-run, detection and import moments are observation or ingestion times. Where the true local offset is unknown but the instant is known in UTC, the -00:00 offset convention is used rather than Z. Registry-supplied dates such as a subtag Deprecated date or a registry File-Date are carried verbatim as source-supplied dates and are never treated as event timestamps for this model's own lifecycle.", "serial_naming_rule": "Every artifact marked serial — the registry reference/cache manifest, available-locale inventory, resolution outcome, target-variant binding, fallback-chain profile, quality assertion, rendering verification report, locale profile release, binding validation report, interoperability crosswalk and disclosure profile — is named by a stable base identifier plus an immutable, monotonically increasing revision or run token that never encodes a date as the identifier. The base identifier is stable across revisions; a new revision never reuses or renumbers a prior token, and a withdrawn revision keeps its token permanently reserved.", "integrity_rule": "Every published binding version and every serial artifact revision carries a content digest with a named algorithm and a computation timestamp, so that a superseded or tombstoned record can be shown to be unaltered. Digests are recomputed on read for verification but never overwritten in place; a verification failure marks the record as integrity-suspect and blocks export and approval until a named authority resolves it. Digest computation and storage are local; cryptographic signing, sealing and long-term evidence preservation are performed by the referenced records and provenance models." }, "policies": [ "Least privilege applies to every binding operation: a principal receives only the operations its declared role permits, and the reviewer of a binding version may not also be its approver.", "Correction is by supersession. A published binding version is immutable; errors are corrected by issuing a successor version with a supersession ground while the superseded record is retained with a closed effective interval.", "No silent normalization. Canonicalization, preferred-value mapping and profile normalization always preserve the recorded original tag and record the transformation that was applied.", "No unqualified conformance claims. External standards are treated as alignments pinned at a named version; conformance is asserted only where named test or certification evidence is referenced.", "Declared limitations survive. A cultural or accessibility review that could not be completed, and a conflict that the precedence rule could not decide, are recorded and carried forward rather than resolved by silent default.", "Declaration is not enforcement. Sensitivity, embargo, locale filter and redaction rules are declarations consumed by an external authorization component; this model neither evaluates nor enforces them and does not own the resulting audit trail." ], "crud": { "read": [ "Reads resolve a binding for a host object at an explicit version token or as-at instant; where neither is supplied, the version whose effective interval contains the current instant is returned.", "Reads apply the declared finding- and artifact-level disclosure rules for the requesting audience class and return a manifest of withheld or masked items rather than silently omitting them.", "Reads return the recorded original tag, the canonical form and the pinned registry, locale-data and profile revisions together, so the caller can reproduce the interpretation.", "Reads of a tombstoned binding return the tombstone payload with an explicit withdrawn indicator and the successor reference where one exists." ], "create": [ "Creation attaches the mixin to an existing host object at a named field or resource path; a binding cannot be created without a resolvable host.", "Creation requires a caller-supplied idempotency key; a repeated call with the same key returns the existing binding rather than creating a duplicate.", "Creation pins the registry File-Date, locale-data release and profile revision in force at that moment onto the new binding.", "Creation requires the supplied tag to be at minimum well-formed; validity against the pinned registry is asserted separately and may be deferred to validation.", "A newly created binding enters an initial, unpublished state and is not authoritative until approved and released." ], "update": [ "Updates require the expected version token and fail with a conflict outcome on mismatch, with no partial write.", "Updates are permitted only on unpublished versions; an update against a published version is refused and the caller is directed to supersession.", "Updates that change a pinned revision or the governing profile invalidate any prior approval and force re-validation and re-review.", "Unbinding a locale from a host object closes the binding and preserves inbound references; it never removes the host object or any separately identified translation or terminology resource.", "Approval and release are distinct from update: they set the effective interval, close the predecessor's interval and make the version immutable." ], "delete": [ "This model performs no hard delete of a published binding record. Withdrawal produces a tombstone that retains the binding identifier, host object reference, withdrawal reason code, withdrawal timestamp, successor or replacement reference and the integrity digest, so that inbound references do not dangle.", "Disposition is permitted only after the retention period declared for the binding's retention class has elapsed against its declared trigger, which may be creation, supersession or disposal of the host object.", "An active legal or administrative hold blocks disposition absolutely: the disposition call fails with an explicit hold-blocked outcome and no partial effect, and the hold's asserting authority is recorded.", "Superseded binding versions, provenance assertions, declared review limitations and conflict dispositions are never erased during the retention period; they are closed or superseded so the decision record remains reviewable.", "Deletion execution is outside this model's boundary. This model records the disposition decision, the authorizing role and the tombstone; physical destruction, media sanitization, archival transfer and backup expiry are executed by the adopting Dimension's records retention and disposition model under its governing schedule, and by that Dimension's data-protection policy where a subject-rights erasure obligation applies to personal data inside a localized value.", "A tombstone is itself a record subject to the same retention schedule; its own disposition is governed by the records model and is not initiated by this model." ] }, "roles": [ { "name": "Localization binding owner", "responsibilities": [ "Holds accountability for the binding on its host object and keeps the stewardship charter current", "Nominates language experts, translators, reviewers and approvers within the governed scope", "Records the accountable delegation chain when accountability moves", "Decides whether an unstaffed target locale is left provisional or removed from the profile" ] }, { "name": "Language and locale expert", "responsibilities": [ "Declares and justifies the tag, script, region and variant values for a locale within their competence", "Advises on macrolanguage versus individual-language selection and on region subtag choice", "Records declared limitations where locale conventions are disputed or insufficiently evidenced", "Assesses whether a detected or machine-generated value meets the confidence threshold" ] }, { "name": "Translator", "responsibilities": [ "Produces target-locale values bound to a source unit and records the generation method used", "Attaches terminology references for the host subject and flags terms lacking a concept entry", "Advances a binding to a translated state without approving or releasing it", "Records machine-translation engine identity, version and confidence where a value is post-edited" ] }, { "name": "Localization reviewer", "responsibilities": [ "Verifies a binding against the governing profile, the validation report and terminology bindings", "Records review outcome, findings and any cultural or accessibility limitation that could not be closed", "Returns a binding for correction rather than editing it when the proposer is better placed to fix it", "Never approves a binding version they reviewed, preserving separation of duties" ] }, { "name": "Release authority", "responsibilities": [ "Approves a binding version and sets its effective-from and optional effective-to moments", "Closes the predecessor version's effective interval at the successor's effective-from moment", "Approves early lifting of an embargo and records the basis for doing so", "Authorizes deprecation with a preferred replacement and a sunset date" ] }, { "name": "Localization records custodian", "responsibilities": [ "Binds the model's records to a retention class and monitors the disposition trigger", "Records hold assertion and release with the asserting authority, and blocks disposition while a hold is in force", "Prepares the tombstone payload and hands execution to the records system that owns destruction and transfer", "Maintains integrity digests and escalates verification failures as integrity-suspect" ] } ], "access": { "default_rule": "Deny by default. Every read, export and mutation of a localization binding requires an allow decision from the external authorization component against the roles declared in the stewardship charter and the supported bundle-, layer-, finding- and artifact-level rules declared in the disclosure profile; absence of an applicable rule is treated as deny, not as permit.", "scopes": [ "bundle", "layer", "finding", "artifact" ], "exceptions": [ "Locale-filtered content: a localized value marked as applicable only to named locales is withheld from requesters outside that filter even when the requester is otherwise authorized for the binding.", "Embargoed variants: a localized value remains withheld until its embargo-until moment unless the release authority records an explicit early-release approval.", "Regulated personal data inside a localized value: disclosure is further constrained by the adopting Dimension's data-protection policy for the assessed jurisdiction, which may override an otherwise permissive audience class.", "Integrity-suspect records: a binding whose digest verification failed is readable only by the records custodian and the owner until a named authority resolves it, and is blocked from export.", "Tombstoned bindings: the tombstone payload is readable by anyone authorized to read the former binding so references resolve, but the withdrawn content is not.", "Break-glass access to an embargoed or restricted localized value is permitted only with a named authorizing role and a recorded justification, and triggers mandatory post-hoc review by the owner." ], "audit_requirements": [ "Every authorization decision, export with redaction, approval, supersession, hold assertion and disposition emits a decision context containing the principal, operation, target binding version, governing rule reference and an RFC 3339 timestamp with seconds and an explicit offset.", "Recording, storage, tamper-evidence and retention of these audit entries are performed by the adopting Dimension's audit component; this model emits and references audit entries but does not own the audit trail or its evaluation semantics.", "Every redaction applied on read or export is signalled in a manifest so that a recipient can distinguish a withheld finding or artifact from an absent one.", "Break-glass access records the authorizing role, the justification and the post-hoc review outcome as a reviewable decision, retained under the binding's retention class." ] }, "agents_bootstrap": { "filename": "AGENTS.md", "required_fields": [ "Name", "Type", "Specification URL", "Storage type URL", "Interface URL", "Processes URL", "Model ID", "Registry ID", "Responsible owner and release authority", "Pinned registry, locale-data and profile revisions", "Retention class and records-execution owner" ], "read_order": [ "AGENTS.md, to establish the model name, type, and the specification, storage-type, interface and processes locations before any other read", "The specification referenced by Specification URL, to obtain the boundary, in-scope and out-of-scope statements and the composition links", "The governing locale profile revision, to obtain permitted tags, default locale, ordered priority list, matching scheme and no-match behaviour", "The pinned registry, locale-data and standard revisions, so tags are interpreted under the same snapshot that validated them", "The stewardship charter and disclosure profile, to establish role rights and supported finding- and artifact-level disclosure before reading or exporting any binding", "The processes referenced by Processes URL, to select the correct operation sequence for bind, resolve, validate, review, approve, supersede, export or dispose", "The interface referenced by Interface URL, last, because the storage format and access protocol are projections of the semantics established above" ] } }, "coverage": { "claim": "This audit confirms the Claude-only WM-XCT-031 draft is internally coherent against its own evidence: artifact-identity rules hold across all sixteen serial artifacts, and the CRUD, access, and retention policies are mutually consistent with the mixin's declared host-dependent identity. It does not confirm live source currency, does not substitute for a second-provider or human review, and leaves the five self-declared checklist gaps (retention-and-deletion, negotiation determinism, security, cultural review, privacy) and the not-applicable spatial dimension unresolved.", "confidence": "medium", "checklist": [ { "dimension": "identity", "status": "covered", "notes": "Canonical tag and locale identifier, subtag structure, well-formed versus valid, private-use handling and a three-tier identity priority that puts the master-system identifier first and rules out dates as identifiers." }, { "dimension": "classification", "status": "covered", "notes": "Translatability flags, locale filter include or exclude, selection kind cardinal, ordinal or enumerated, origin class, term administrative status, and quality issue typing against a named profile." }, { "dimension": "lifecycle", "status": "covered", "notes": "Workflow state with permitted transitions, monotonic version, effective interval, supersession, deprecation with sunset date and correction-by-supersession are governed on the binding only. No independent lifecycle is created for a language, script, country, person, content item or translation project; those are listed in out_of_scope and boundary_notes." }, { "dimension": "relationships", "status": "covered", "notes": "Mixin attachment to a host object, supersession links between binding versions, derived-from and revision links for provenance, macrolanguage-to-individual-language tension, and fifteen composition links each with source support and an explicit ownership statement." }, { "dimension": "temporal", "status": "covered", "notes": "RFC 3339 with seconds and explicit offset or Z is mandated; event time (effective-from, provenance activity, embargo-until, withdrawal) is separated from observation or ingestion time (record-written, validation-run, detection, import). Registry-supplied dates such as a subtag Deprecated date are carried as source-supplied values and excluded from this model's event timeline." }, { "dimension": "provenance", "status": "covered", "notes": "Generation method, agent attribution in PROV starting-point terms, derivation and revision links, confidence with a declared scale, and pinned registry, locale-data, profile and standard revisions. Provenance is inline by design; durable provenance documents belong to the referenced provenance model." }, { "dimension": "ownership", "status": "covered", "notes": "Named responsible owner, six roles with distinct responsibilities, a release authority separate from the reviewer, contributor standing weights modelled on an existing locale-data governance precedent, and an explicit unstaffed-locale exception." }, { "dimension": "validation", "status": "covered", "notes": "Well-formedness, validity against a pinned registry, canonicality, profile conformance, deprecated-subtag preferred-value mapping without destructive rewrite, and reconciliation of declared against detected and transport-asserted language, producing a dated validation report." }, { "dimension": "access", "status": "covered", "notes": "Deny-by-default with bundle, layer, finding and artifact scopes; six exceptions including locale filter, embargo, regulated personal data, integrity-suspect records, tombstones and break-glass. Evaluation and enforcement are explicitly external, and the model emits but does not own audit entries." }, { "dimension": "retention and deletion", "status": "gap", "notes": "The draft carries retention class and trigger, hold blocking, integrity digest, tombstone payload and delegation to the adopting Dimension's records system, but no broadly applicable primary records-management standard text was retrieved. The structure is therefore a reviewable baseline, not evidence of complete retention-and-deletion coverage." }, { "dimension": "interoperability", "status": "covered", "notes": "Versioned crosswalks to translation interchange, markup data categories, transport content negotiation and terminology exchange, each with a lossiness classification, a correlation identifier strategy and an explicit alignment-versus-conformance claim strength." }, { "dimension": "script and directionality", "status": "covered", "notes": "Script identity, suppression and inference are separated; base direction is required as explicit metadata with first-strong detection recorded as a last-resort fallback, and character and line order come from locale layout data. The absence of a direction property in the script code list is recorded as a conflict." }, { "dimension": "negotiation determinism", "status": "gap", "notes": "No consulted source defines an interoperable best-fit matching algorithm. Basic filtering, extended filtering and lookup are deterministic and normatively specified, but best-fit behaviour is implementation-defined, so the model mitigates rather than closes this by requiring the matcher identity and version to be stored with every outcome." }, { "dimension": "measurement and quality", "status": "covered", "notes": "Machine confidence on a declared scale, issue severity against a profile, overall rating with threshold, coverage measures with mandatory exclusions, and rendered-fit measurement against declared restrictions." }, { "dimension": "accessibility alternatives", "status": "covered", "notes": "Locale-specific text alternatives, captions and audio descriptions are bound and evidenced, and the language of a variant is required to be programmatically determinable. Adequacy assessment and conformance evaluation remain with the accessibility model." }, { "dimension": "security", "status": "gap", "notes": "No primary source consulted supplies a threat model for translation supply-chain tampering, such as malicious injection through a translation memory or a compromised vendor pipeline. Digest pinning and append-only assertions mitigate detection but do not constitute a security model; this is left as an acknowledged gap rather than asserted." }, { "dimension": "fallback and matching", "status": "covered", "notes": "Matching scheme is declared explicitly (basic filtering, extended filtering or lookup), the ordered priority list is carried, and the mandatory defined behaviour when nothing matches is a required field rather than an implementation detail." }, { "dimension": "terminology binding", "status": "covered", "notes": "Terminology references for the host subject are bound with a correlation identifier and a pinned exchange-standard edition; the termbase structure and its maintenance are external." }, { "dimension": "cultural review", "status": "gap", "notes": "No primary source establishes a universal reviewer-qualification standard or an adequacy test for cultural review outside one consortium's vote-weight model. The model therefore records declared review limitations rather than asserting a review standard." }, { "dimension": "privacy", "status": "gap", "notes": "Regulated-data classification and jurisdiction assessment are carried as declarations, but no data-protection legislation was successfully retrieved as a primary source in this pass, so the specific erasure, restriction and storage-limitation obligations are attributed to the adopting Dimension's data-protection policy rather than modelled here." }, { "dimension": "spatial", "status": "not-applicable", "notes": "Deliberately excluded. A region subtag identifies a locale variant and is not a place; territory geometry, political status and physical location belong to the geographic and jurisdiction models and a policy forbids inferring them here." } ], "known_omissions": [ "The ISO 639 and ISO 3166-1 code sets were not consulted directly because they are not openly published; they are reached only through the registry records that quote them, so no claim is made about clauses of those standards.", "CLDR supplemental script metadata, including per-script right-to-left flags and sample characters, was not retrieved. Direction guidance rests on the layout orientation elements and the HTML direction attribute instead.", "CLDR language matching distance data and its weights are referenced but not enumerated, so no matching quality thresholds are specified here.", "The full -u and -t key and type vocabularies change with each locale data release and are referenced rather than listed; the keys named in questions are illustrative, not exhaustive.", "Sign languages, constructed languages, historical orthographies and transliteration schemes are handled only through registered variant subtags and the transformed-content extension; no consulted source justified additional structure.", "Text segmentation, character encoding, Unicode normalization form, font selection and shaping were excluded because no consulted primary source places them inside a locale declaration.", "Terminology and glossary assets are bound by reference only; the internal structure of a term base was not researched and is left to the referenced terminology model.", "Segmentation rules themselves are not modelled; text boundary determination and segmentation-rule exchange were not consulted, so unit-to-node correspondence assumes a segmentation the owning system already performed.", "Translation memory leverage and fuzzy-match scoring algorithms are excluded; only the resulting binding and its recorded origin are held.", "Grammatical features beyond plural and select, such as grammatical gender and formality dimensions available in locale data, are not given a first-class finding.", "The normative text of ISO 30042:2019 for TBX and of ISO 5060:2024 for translation evaluation is paywalled and was not read; terminology structure is taken from first-party companion documentation and quality vocabulary from ITS instead.", "Certified, sworn and legally attested translation, and the identity of the attesting authority, are not modelled.", "Sign-language variants, Easy-Read and plain-language renditions are treated only as bound alternatives, not as first-class language variants with their own category systems.", "Character encoding, font availability, text shaping and line-breaking are excluded, so a variant can pass every check here and still fail to display.", "Cost, vendor commercial terms and service-level obligations attached to translation work are excluded.", "No records-management standard text was obtained as a primary source; ISO 15489-1 and the ISO 30042 full text were not retrievable, so retention semantics rest on a national archives authority's requirements plus the ISO 30042 catalogue record only.", "No data-protection legislation was retrieved live in this pass; subject-rights erasure, restriction of processing and storage-limitation obligations are referenced by delegation rather than modelled.", "Sign-language, oral-only and unwritten-locale governance is under-specified: script subtag policy and the notion of a canonical written form do not transfer cleanly to these cases.", "Machine-translation confidence calibration has no cross-engine primary basis; the model requires a declared scale but cannot make scores comparable.", "Bidirectional text, script-shaping and font-availability constraints that materially affect whether a localized value is usable are excluded as rendering concerns and are not represented even as a declared limitation field.", "Pluralization rules, gender agreement and message-format placeholder semantics are locale-data implementation concerns and are not bound here, although they routinely break naive translation bindings." ], "conflicts": [ "BCP 47 permanently reserves the second and third extended-language positions and permits a tag such as an extlang form written after its macrolanguage, while UTS #35 canonicalization replaces the extended-language subtag with its preferred value. The two canonical forms of the same input differ and must never be compared directly.", "BCP 47 canonical form replaces subtags that carry a registry Preferred-Value, whereas UTS #35 and ECMA-402 canonicalization additionally apply CLDR alias data. An identifier that is canonical at the transport layer may not be canonical at the application layer.", "RFC 4647 defines deterministic basic filtering, extended filtering and lookup, but ECMA-402 permits an implementation-defined best-fit matcher and allows implementations to accept further localeMatcher values with implementation-defined behaviour. Results are therefore not portable between hosts.", "RFC 9110 allows Content-Language to name several tags describing the intended audience, while the HTML Living Standard derives a pragma-set default document language from such metadata. A multi-tag value does not yield a usable single document language, so the two uses must be kept distinct.", "The ISO 15924 code list consulted assigns script codes but exposes no normative direction property. Base direction must therefore come from locale layout data or an explicit declaration and cannot be derived from the script code alone.", "W3C Strings on the Web: Language and Direction Metadata is a First Public Working Draft. Its value, language and direction carrier pattern is cited as best practice and must not be represented as a normative requirement.", "The registry snapshot consulted, File-Date 2026-08-08, deprecates collection-scope subtags with a prescribed replacement. Identifiers validated against an earlier snapshot may already be deprecated, which is why every verdict must name its snapshot.", "XLIFF 2.1 is the ratified OASIS Standard of 2018 while XLIFF 2.2 Part 1 and Part 2 are Committee Specifications of 2025. The constructs used here are stable across both, but an adopting Dimension should cite 2.1 for conformance claims unless it explicitly accepts a Committee Specification.", "ITS 2.0 localization quality vocabulary and the MQM-derived error typology harmonised in ISO 5060 overlap but are not identical, and no crosswalk was verified. Quality records must therefore carry a profile reference rather than assume a shared typology or severity scale.", "RFC 4647 Lookup and CLDR/LDML language matching can select different results for the same input, because one truncates a range while the other applies parent-locale data and match distance. A chain declared under one scheme must not be evaluated under the other without restating the scheme.", "ITS Locale Filter scopes content by locale while HTTP Content-Language describes the languages of a representation and explicitly does not identify the intended audience. Treating either as an audience or applicability claim overstates what the specifications support.", "MessageFormat 2 fallback representations are artefacts of a formatting error, not of locale fallback. Conflating the two hides missing translations behind what looks like a rendered placeholder.", "BCP 47 permits both well-formed-only and registry-valid tags; a tag can be well-formed yet not valid. Systems that accept well-formed tags without validation will bind variants under tags that no registry recognises.", "A tag may be valid under BCP 47 yet not be a canonical Unicode locale identifier: extlang subtags and irregular legacy tags are permitted by the tag standard but excluded from Unicode locale identifiers, and macrolanguage handling differs. The model resolves this by storing the recorded original and the canonical form separately and by pinning which canonicalization was applied.", "Fallback is ambiguous across sources: truncation-based lookup and parent-locale overrides with likely-subtags produce different results for the same input. The model therefore requires the matching scheme to be declared explicitly rather than inferred.", "A transport-level content language claim states the intended audience rather than the language of all text, so it is weak evidence of content language; treating it as authoritative conflicts with detection-based evidence. The precedence rule and conflict disposition make this choice explicit.", "Registry Deprecated dates can predate the registry itself, so a Deprecated value is not usable as an event timestamp on this model's timeline; it is carried verbatim as a source-supplied date.", "Well-formedness versus validity: specification guidance recommends requiring only well-formedness while advising authors to use valid tags. The model makes validity a profile-level constraint rather than a universal rule, which will disagree with adopters who expect validity to be mandatory.", "Region subtags may be drawn from two-letter country codes or three-digit area codes with overlapping coverage and contested political meaning; no source resolves which to prefer, so profile declaration is required." ], "regional_assumptions": [ "Region subtags may be two-letter country codes or three-digit numeric codes; the numeric form is preferable where an alpha assignment is contested or has changed, and neither form asserts a jurisdiction, a nationality or a place of residence.", "No default locale is assumed anywhere in the model. Any fallback locale is a configuration decision of the adopting Dimension and must be declared explicitly, including the behaviour when nothing matches at all.", "Statutory language obligations such as official-language requirements, mandatory translation and labelling law are jurisdiction-owned facts and are not derivable from any tag in this model.", "Right-to-left handling assumes the consuming environment implements the Unicode bidirectional algorithm. This model supplies the paragraph direction and isolation requirement only and performs no reordering itself.", "Where a language is written in more than one script across regions, the script subtag is treated as the discriminator and the region subtag is never used as a proxy for it.", "Region subtags are administrative identifiers for distinguishing language variants; no legal, tax, jurisdictional or geographic inference may be drawn from them.", "Plural category sets are language-specific and the required set differs by language; assuming an English one-and-other set for all locales is a defect, and only the other category is universally required.", "Right-to-left and bidirectional handling is assumed relevant wherever a right-to-left script appears anywhere in a declared fallback chain, not only in the requested locale.", "Statutory or contractual language-availability duties, such as official-language obligations in multilingual jurisdictions, are not modelled here and are owned by the adopting Dimension's compliance model.", "Pseudo-locale tags are drawn from user-assigned region code space reserved for testing and are assumed to be filtered out of production configuration by the adopting Dimension.", "Region subtag choice between two-letter country codes and three-digit area codes is left to the governing profile; the model takes no position on contested territorial designations and treats such disputes as conflicts to be disposed of and recorded, not resolved.", "Legal hold, records disposition and subject-rights erasure obligations vary by jurisdiction; execution is delegated to the adopting Dimension and the model only records the decision and the blocking condition.", "Retention practice is anchored to one national archives authority's requirements, which is a defensible baseline but is not universally binding; other jurisdictions impose different minimum periods and transfer duties.", "Cultural-review expectations, honorific and register conventions, and acceptability of machine translation for public-facing content differ materially by market; the model records limitations rather than asserting a common standard.", "Accessibility obligations vary by jurisdiction and procurement regime; the model asserts only the programmatically determinable language value and leaves conformance evaluation external." ], "adversarial_checks": [ "Tested whether a region subtag could be used to infer jurisdiction, nationality or physical location. Rejected: no consulted source supports the inference, and an explicit policy now requires validation to reject it rather than merely discourage it.", "Tested whether a stored Accept-Language preference could serve as a party attribute or a stable identifier. Rejected: RFC 9110 notes that a stated preference may not describe actual capability and that the field is a fingerprinting vector, so it is held as party-linked, access-restricted, non-identifying data.", "Tested whether ISO 15924 supplies script direction. No such property was found in the consulted code list, so direction is sourced from locale layout data or explicit metadata and the divergence is recorded as a conflict rather than papered over.", "Tested whether the resolution outcome record could be presented as an audit trail or as an enforcement decision. Rejected: it records the outcome of this model's own declaration, while evaluation, enforcement, erasure and audit-trail retention remain with referenced models and are named as such in the deletion and audit rules.", "Tested whether convention data - calendars, collations, numbering systems, measurement, time zones - could be modelled locally now that the extension keys are in scope. Rejected: only selector keys and versioned references are retained, because copying the data would create a second unowned source of truth for behaviour this model does not execute.", "Tested whether undetermined, multiple-language and no-linguistic-content values could be treated as ordinary tags or as missing data. Rejected: they carry distinct meanings and are handled as explicit exception values with their own precedence rule, never as a null or as a default.", "Searched for a normative, interoperable definition of best-fit locale matching and found none; determinism is recorded as a checklist gap and mitigated by storing the matcher identity and version, rather than being asserted.", "Tested whether an automatically detected language could be promoted into the declared field once confidence is high. Rejected: declared and detected values remain in separate fields with the detector confidence retained, and precedence is resolved at read time by a recorded rule.", "Counterexample sought for the claim that a served string proves a translation exists. Both RFC 4647 Lookup and locale-data inheritance toward root can return a value that originated in a different locale, so a resolved value is evidence of resolution only. This is why the resolution result carries a chain position and a fallback disclosure flag, and why coverage excludes fallback-served entries.", "Counterexample sought for the claim that identical source and target text means untranslated. Do-not-translate flags, protected tokens, brand strings and shared technical terms all make legitimate identity common, so identity is treated as requiring an explicit assertion rather than as a defect signal.", "Counterexample sought for the claim that high machine confidence implies approvability. The specification treats MT confidence as a self-report that must be attributed to an engine through provenance, which is why confidence is held as a measurement and never as a state transition.", "Counterexample sought for the claim that full locale coverage implies a usable product. Pseudo-locale practice exists precisely because fully populated locales still break on expansion, concatenation, hardcoded strings and bidi mirroring, so rendering evidence is kept as a separate finding from coverage.", "Structure rejected for lack of primary support: no normative severity scale, weighting or score formula is asserted here, because the consulted specification leaves severity profile-defined and the ISO normative text was not accessible. Only a profile reference and threshold are required.", "Structure rejected for lack of primary support: a canonical enumeration of translation origin sub-types beyond machine, human and mixed was not adopted, since the consulted sources enumerate match origins for candidates rather than a governed origin taxonomy for approved variants.", "Ownership boundary re-checked against every composition rationale: no bundle, layer, finding or function claims ownership of catalogue or asset storage, translation-memory leverage computation, workflow task execution, formatting-runtime execution, access decision enforcement, negotiation at the delivery runtime, or the audit trail. Each is bound by an outgoing REFERENCE or ALIGN link, and the functions state explicitly that they record assertions and findings without gating, editing or enforcing.", "Searched for a normative requirement that a language tag must be valid rather than merely well-formed. The tag standard and W3C specification guidance require well-formedness of specifications and only recommend validity to authors, so validity was modelled as a profile-level constraint and flagged as a documented disagreement rather than presented as canonical.", "Tested whether this model should own an audit trail, since it records approvals, dispositions and break-glass access. It should not: audit entries are emitted and referenced, while recording, tamper-evidence and retention of the trail are attributed to the adopting Dimension's audit component, and no function claims evaluation or enforcement semantics.", "Tested whether a translation workflow state implies ownership of a translation project lifecycle. It does not: workflow state is a state of the binding on its host object mapped onto an interchange state value, and project management, vendor selection and scheduling are listed in out_of_scope.", "Checked whether a locale profile deserves its own model rather than an artifact here. It was kept as a serial artifact plus an outgoing EXTEND link, so that a regional profile specializes permitted tags and defaults without duplicating the generic identity, authority, lifecycle or conflict machinery defined in this model.", "Probed whether the model duplicates registry function by carrying subtag semantics. It does not: only a File-Date pin and citations to subtag records are carried, and subtag assignment, deprecation and retirement are attributed to the IANA registry and the ISO 639-3 and ISO 15924 registration authorities.", "Attempted to justify a separate provenance artifact and rejected it: the aligned standards express provenance as inline annotations on the annotated node and as graph triples, so a separate document would create a second, driftable attribution record. The finding is inline-only with an external provenance model referenced.", "Looked for a counterexample to correction-by-supersession, namely a case where in-place edit is required. Pre-publication drafts are the only case, and they are handled by allowing update on unpublished versions under optimistic concurrency while refusing it on published ones.", "Checked whether declaring redaction rules amounts to owning enforcement. It does not: the disclosure profile is declarative data consumed by an external authorization component, and the export function applies rules without claiming to be the policy decision point." ] }, "researchAdjudication": { "providerMode": "single-provider-waiver", "activeProviders": [ "claude" ], "waivedProviders": [ "grok" ], "providerPolicy": { "contract_version": "1.0.0", "mode": "single-provider-waiver", "effective_at": "2026-08-29T09:06:27Z", "scope": "Queued subject-model research from WM-XCT-013 onward", "active_providers": [ "claude" ], "waived_providers": [ { "provider": "grok", "authorized_by": "repository owner", "authorized_at": "2026-08-29T09:06:27Z", "reason": "The repository owner explicitly instructed the research queue to continue without Grok after repeated structured-output failures." } ], "review_rule": "Claude-only results require a separate no-tools adversarial audit and remain reviewable drafts with a visible single-provider hold." }, "boundaryDecision": { "entry_kind": "mixin", "status": "accepted", "rationale": "Two independent axes are in play. The frozen registry's record_plane is 'world-model,' a catalog-shelving classification describing where WM-XCT-031 sits within Vercy's world-model corpus; it says nothing about the subject model's own ontological shape and must never be substituted for entry_kind. On the entry_kind axis, 'mixin' is the most defensible schema-enum value: the scope_statement opens by declaring 'WM-XCT-031 is a mixin that attaches linguistic and locale context to a host record,' reinforced by seven separate inline_only_rationale clauses and the binding-lifecycle finding's explicit 'host-dependent weak identity, keyed by host object reference plus target field or resource path plus monotonic binding version.' Alternatives were considered and rejected: 'entity' fails because no independent aggregate root is asserted anywhere in the evidence; 'relationship' was considered because a 'binding' is literally an association between a host and a locale declaration, but the model carries far more attribute payload, lifecycle and governance machinery than a pure join construct, and its own authors chose mixin language throughout. This matches the frozen registry's existing entry_kind value, so no reclassification is required. That said, the full lifecycle/roles/access/retention service scaffolding built around this 'mixin,' together with two artifacts (locale profile release, stewardship charter) whose identity is issued by an external profile-owning or governance body and is reusable across many bindings rather than scoped to one host, mean the record's own 'boundary-review-required' review_state is warranted and should remain open rather than being cleared by this audit." }, "decisions": [ { "concept": "Entry kind classification (mixin) vs. record-plane classification (world-model)", "disposition": "Accepted — mixin confirmed as the defensible subject-model entry kind; world-model record_plane is a separate, non-conflicting registry-shelving axis.", "rationale": "The scope_statement, seven inline_only_rationale clauses, and host-dependent weak-identity design (host reference plus field/path plus version) repeatedly assert mixin semantics with no independent root entity, event or relationship type proposed anywhere in the evidence." }, { "concept": "Artifact identity strategy across all 16 serial artifacts", "disposition": "Accepted without changes.", "rationale": "Every serial artifact's identity_strategy follows the declared three-tier priority (master-system id, then governed IRI, then UUID/ULID) and none uses a date, tag, or version label as the sole key, matching artifact_rules.identity_priority and the timestamp_rule exactly." }, { "concept": "Locale profile release and stewardship charter artifacts reading as cross-host reusable entities", "disposition": "Deferred — kept inline as artifacts of this mixin for now, flagged for future extraction review.", "rationale": "Their identity is issued by an external profile-owning or governance body and is designed to be referenced by many bindings across many hosts, which is closer to a shared registry entity than a per-binding by-product, and no relationship-contract entry exists yet to test this against sibling models." }, { "concept": "Model name 'Localization / Language' versus actual scope weight toward translation and terminology", "disposition": "Deferred — name retained as-is, scope-split evaluation recommended for a future pass.", "rationale": "Three of seven bundles (translatable-unit binding, message-form/fallback contracts, terminology/quality assertions) address translation-workflow binding rather than pure locale/language identity, so the name may undersell roughly forty percent of the modeled surface." }, { "concept": "Composition relations (REFERENCE, EXTEND, ALIGN) asserted in prose versus the frozen empty relationship-contract", "disposition": "Accepted as an expected sequencing gap, not a defect.", "rationale": "boundary_notes and adversarial_checks name specific link types to seven neighbor model families, but relationship-contract is empty and parent_ids/contains_ids/aligned_model_ids are blank in the frozen registry record, consistent with a candidate-status record awaiting registry-wide population rather than a contradiction." }, { "concept": "Full lifecycle, roles, access and retention service-layer scaffolding attached to entry_kind mixin", "disposition": "Deferred pending cross-registry precedent check.", "rationale": "Approval, supersession, disclosure and disposition machinery normally associated with aggregate or entity roots is fully specified here for a binding that otherwise claims only host-dependent weak identity, and this cannot be checked against other Vercy mixins without tool access." }, { "concept": "Retention and deletion posture (tombstone, hold-blocking, delegated execution)", "disposition": "Accepted, with the self-declared 'gap' rating carried forward as a publication hold rather than treated as blocking.", "rationale": "The disposition, hold, and tombstone rules are internally consistent with the correction-by-supersession and declaration-is-not-enforcement policies, but rest on a single national archives authority's requirements because ISO 15489-1 could not be retrieved, which the checklist itself already labels a gap." }, { "concept": "Access and disclosure design (deny-by-default, bundle/layer/finding/artifact scopes, break-glass)", "disposition": "Accepted without changes.", "rationale": "The six declared exceptions, the deny-by-default default rule, and the explicit statement that evaluation and enforcement are external are mutually consistent with the model's repeated declaration-is-not-enforcement policy and with the disclosure profile artifact's own scope grains." }, { "concept": "Naming disambiguation among loc-locale-fn-resolve-declared-preferences, loc-gov-resolve-locale-fn and loc-trans-fn-resolve-fallback", "disposition": "Accepted with a naming-clarity note, not blocking.", "rationale": "Each function operates on a different object (inventory, host-object bindings, and fallback-chain profile respectively) and is not a true duplicate, but the shared 'resolve' verb without disambiguating qualifiers risks implementer confusion and should be tightened in a future revision." }, { "concept": "Source currency for sources dated or accessed on the audit's own generation date (2026-09-03), including the SRC-010 HTML Living Standard", "disposition": "Deferred to a live-verification publication hold.", "rationale": "A Living Standard and several registry or code-list pages carry access or revision dates identical to this pass's generated_at timestamp, which this no-tools audit cannot re-verify, so currency must be confirmed before the draft is treated as source-verified rather than merely source-cited." } ], "publicationHolds": [ "Live re-verification is required for all 32 cited sources before publication, especially the SRC-010 HTML Living Standard and the SRC-003/SRC-013/SRC-028/SRC-029 registry and code-list pages whose accessed-or-revision dates coincide with this pass's own generation timestamp of 2026-09-03, since this no-tools audit cannot browse to confirm current validity.", "This draft carries a visible, owner-authorized single-provider hold: Grok was waived from the WM-XCT-031 research queue by the repository owner on 2026-08-29 after repeated structured-output failures, so the record must be published as a reviewable draft pending independent second-provider or human domain-expert review, not as a cross-validated result.", "The self-declared checklist gaps for retention-and-deletion, privacy, security and negotiation determinism rest on a single national-archives anchor and no retrieved data-protection or ISO 15489-1 text; these must be resolved or explicitly carried as caveats in any downstream policy built on this model.", "The relationship-contract for WM-XCT-031 is currently empty while boundary_notes and adversarial_checks name specific REFERENCE, EXTEND and ALIGN links to seven neighbor model families; these should be reconciled into registered composition links before this record is treated as fully positioned in the Vercy graph.", "Independent second-provider review was explicitly waived by the repository owner; this Claude-only result remains a reviewable draft." ], "deferredResearch": [ "Evaluate whether the locale profile release and stewardship charter artifacts should become standalone registry-type Vercy models once real multi-Dimension reuse evidence exists, rather than remaining artifacts nested inside this mixin.", "Retrieve ISO 15489-1 and at least one applicable data-protection statute to close the self-declared retention-and-deletion and privacy gaps, replacing the current single-anchor NARA-only retention basis.", "Determine whether Vercy already defines or should define a generic cross-cutting role/authority-assignment pattern, and check the six localization-specific roles here for duplication against it.", "Confirm against other registered Vercy mixins whether full lifecycle, approval, supersession, disclosure and disposition service machinery is the established pattern for entry_kind mixin, to keep cross-registry consistency.", "Research a cross-engine machine-translation confidence calibration reference and a translation-supply-chain security threat model, both explicitly flagged as gaps with no primary source located in this pass." ] }, "statistics": { "sources": 32, "bundles": 7, "layers": 16, "findings": 31, "questions": 136, "artifacts": 16, "functions": 22 } }