Field Definition Reference
Audience: collection authors.
Authoritative for:
- frontmatter property types
- every field-definition property: human-facing metadata, constraints, generation, uniqueness, immutability, relationship contribution, and vocabulary references
See also:
- Foundations: the shared expression language, parsing baselines, and string comparison
- Managed Notes and Properties: the managed note contract, field names, core-defined fields, materialization, and optionality
- Note Links: the link forms and resolution used by
format: note_linkfields - Collection Model: property sets and vocabularies
Frontmatter Property Types#
Every field definition is a YAML mapping. Every field definition MUST declare type, and it MAY declare additional field-definition properties such as label, description, icon, format, generated, computed, unique, deprecated, immutable, optional, nullable, default_value, validate_exists, not_empty, not_blank, regex, min, max, and allowed_values.
Field Definition Property Reference#
Rules:
- FDR-1 Field-definition properties apply to top-level fields, to
list.items, and recursively to nested fields insideobject.fieldsunless a type-specific rule says otherwise. - FDR-2 Human-facing field metadata MUST NOT change field identity, storage keys, type validation, optionality semantics, relationship semantics, or materialization behavior.
- FDR-3 Constraint properties other than
nullableandoptionalare evaluated only when the stored value is non-null. - FDR-4 A non-null
default_valueMUST satisfy all declared field constraints.
type#
Rules:
- FDR-5
typeis REQUIRED on every field definition. - FDR-6 Supported
typevalues aretext,integer,number,checkbox,date,time,datetime,link,list,tags,object, andany. - FDR-7 Field definitions MUST NOT use unknown property types.
- FDR-8
textvalues MUST be YAML strings. - FDR-9
integervalues MUST be YAML numbers with no fractional component. - FDR-10 Markdown syntax inside property values has no special meaning.
- FDR-11
numbervalues MUST be YAML numbers. - FDR-12
checkboxvalues MUST be eithertrueorfalse. - FDR-13
dateMUST use RFC 3339 full-date formatYYYY-MM-DD. - FDR-14
timevalues MUST be YAML strings and MUST match the declared timeformat. - FDR-15
datetimeMUST use RFC 3339 date-time format with seconds and an explicit timezone designator such asZor+02:00. - FDR-16
dateandtimevalues are floating: they carry no timezone and denote a calendar date or wall-clock time as written; when a rule needs to place them in time, they are interpreted in the collection timezone defined in Collection Model. - FDR-17
datetimevalues denote exact instants: twodatetimevalues are equal when they denote the same instant regardless of offset notation, and temporal ordering compares instants. - FDR-18 Because stored
datetimevalues carry explicit offsets anddateandtimevalues are floating, no daylight-saving disambiguation is required; the only conversions this specification defines are instant-to-collection-timezone conversions, which are always well defined. - FDR-19
linkvalues MUST be YAML strings and MUST follow the declared linkformat. - FDR-20 Stored
listvalues MUST be YAML sequences. - FDR-21
tagsvalues MUST be YAML sequences of tag strings. - FDR-22
tagsentries MUST be non-empty strings. - FDR-23 A
tagsentry is one or more segments joined by single/separators; each segment MUST consist of Unicode letters, digits, underscores, and hyphens, and MUST NOT start with a hyphen. In the ECMA-262 dialect with theuflag:^[\p{L}\p{N}_][\p{L}\p{N}_-]*(?:\/[\p{L}\p{N}_][\p{L}\p{N}_-]*)*$. - FDR-24
tagsentries MUST NOT include a leading#; the#prefix belongs to inline body syntax, which carries no structural meaning. - FDR-25 The
/separator expresses hierarchy:project/alphais a descendant ofproject. This specification assigns the separator that meaning but does not define controlled vocabularies or validate entries against a taxonomy. - FDR-26 Entries within one stored
tagsvalue MUST be unique under the string comparison rules defined in Foundations; a duplicate entry is aninvalid_field_valuefailure. - FDR-27 A
tagsentry that violates this grammar is aninvalid_field_valuefailure. - FDR-28 Stored
objectvalues MUST be YAML mappings. - FDR-29
anyvalues MAY be any non-null YAML value, and MAY benullonly whennullable: true. - FDR-30 YAML scalar, sequence, and mapping values are all supported when they satisfy the declared property type.
- FDR-31 A core-defined managed-note field name MAY still use a dedicated structured value only when this specification explicitly defines that field's contract.
items#
Rules:
- FDR-32
itemsMAY appear only whentype: list. - FDR-33 A field definition with
type: listMUST declareitems. - FDR-34
itemsMUST be a valid field definition. - FDR-35
itemsMUST NOT declaredefault_valuebecause anonymous list elements are not materialized independently. - FDR-36
itemsMUST NOT declarenullablebecause list elements are not materialized independently. - FDR-37
itemsMUST NOT declareimmutablebecause anonymous list elements are not tracked individually. - FDR-38
itemsMAY use any supported property type. - FDR-39 Fields with
type: tagsMUST NOT declareitems. - FDR-40 Fields with
type: objectMUST NOT declareitems.
fields#
Rules:
- FDR-41
fieldsMAY appear only whentype: object. - FDR-42 A field definition with
type: objectMUST declarefields. - FDR-43
fieldsMUST be a mapping, even when it is empty. - FDR-44 Nested field definitions inside
object.fieldsfollow the same type, materialization, and value-requirement rules as top-level field definitions unless a type-specific rule says otherwise. - FDR-45 Nested list and object properties are supported.
label#
Rules:
- FDR-46
labelMAY be omitted. - FDR-47
labelis the human-facing name of the field and MUST NOT change the stored field key. - FDR-48 If present,
labelMUST be a non-empty string.
description#
Rules:
- FDR-49
descriptionMAY be omitted. - FDR-50
descriptionis human-facing explanatory metadata for generated references, forms, and authoring interfaces. - FDR-51 If present,
descriptionMUST be a non-empty string.
icon#
Rules:
- FDR-52
iconMAY be omitted. - FDR-53
iconis human-facing field metadata for generated references and applications. - FDR-54 If present,
iconMUST be a non-empty string. - FDR-55 The core specification treats
iconas opaque and does not standardize icon libraries or rendering behavior.
generated#
Rules:
- FDR-56
generatedMAY be omitted. - FDR-57
generatedMUST befalse,true, or a generation strategy. - FDR-58 If omitted,
generateddefaults tofalse. - FDR-59 A field is generated when
generatedistrueor declares a generation strategy. - FDR-60
generated: truemarks a field whose values are produced by tool-defined means this specification does not standardize, such as AI-written summaries. - FDR-61 A generation strategy makes value production portable: every conforming tool MUST produce values as the strategy defines.
- FDR-62
generateddoes not make a field virtual. Generated fields still follow the same type validation, optionality, stored-frontmatter, and canonical materialization rules as other declared fields. - FDR-63 A generation strategy does not constrain stored values; validation of stored values uses only the field's declared type and constraints.
- FDR-64 A field declaring a generation strategy MUST NOT declare
default_value,const_value, orvalue_from_schema; the strategy is the field's defaulting behavior. - FDR-65 A generated value MUST satisfy the field's declared type and constraints; a schema MUST NOT combine a strategy with constraints the strategy's values cannot satisfy.
- FDR-66
itemsMUST NOT declare a generation strategy, because anonymous list elements are not materialized independently;generatedonitemsMUST be a boolean. - FDR-67 Deriving a value from other fields is not a generation strategy on
generated; sibling-field derivation usescomputed, defined below.
Supported generation strategies:
- FDR-68
nowis valid fordate,time, anddatetimefields. When a tool creates the note, or first materializes the field without a concrete value, it MUST set the field to the current instant in the collection timezone defined in Collection Model, rendered according to the field's type and declaredformat; generateddatetimevalues SHOULD carry the collection timezone's offset at that instant. The value is produced once: a tool MUST NOT overwrite an existing concrete non-null value. - FDR-69
now_on_writeis valid fordate,time, anddatetimefields. Every tool that writes changes to the managed note MUST set the field to the current instant in the collection timezone as part of that write; the refresh itself does not count as a further change. A field withnow_on_writeMUST NOT declareimmutable: true. - FDR-70
uuidis valid fortextfields. The tool MUST generate an RFC 4122 version 4 UUID in lowercase form, once; it MUST NOT overwrite an existing concrete non-null value. Lowercase UUIDs satisfyformat: slug, souuidMAY be used for the core-definedidfield. - FDR-71
ulidis valid fortextfields. The tool MUST generate a ULID written in lowercase, so the value satisfiesformat: slug, once; it MUST NOT overwrite an existing concrete non-null value. - FDR-72
{ random: n }is valid fortextfields.randomMUST be a positive integer. The tool MUST generatencharacters drawn uniformly from the lowercase lettersathroughzand the digits0through9, once; it MUST NOT overwrite an existing concrete non-null value. - FDR-73
{ sequence: { start, scope } }is valid forintegerfields.startMAY be omitted and defaults to1;scopeMAY be omitted, MUST benote_typeorcollectionwhen present, and defaults tonote_type. The generated value is one greater than the highest stored value of this field across the managed notes in scope, orstartwhen no stored value exists;note_typescope spans managed notes of the same note type andcollectionscope spans all managed notes. The value is produced once: a tool MUST NOT overwrite an existing concrete non-null value.
Generation behavior rules:
- FDR-74 Tools that create, scaffold, or import managed notes MUST apply every declared generation strategy before writing the note.
- FDR-75 Generation alone guarantees no uniqueness: random values MAY collide and hard deletion MAY free sequence values. When the field also declares
unique, the tool MUST verify the generated value against the field's uniqueness scope and regenerate on collision. - FDR-76 A note authored without a tool MAY lack generated values; the field's normal optionality and nullability rules decide whether the note conforms, and a tool that later normalizes the note MUST generate the missing values of once-produced strategies.
- FDR-77 The once-produced strategies pair naturally with
immutable: truewhen manual edits should be prevented as well.
computed#
computed defines a stored text field whose value is derived from sibling frontmatter fields instead of being authored directly. Unlike generated, it is not about value origination from time, randomness, identity, or tool-specific automation; it is the single schema-defined mechanism for sibling-field derivation in this specification version. It uses the shared text-template expression context defined in Foundations.
Example:
first_name:
type: text
nullable: false
last_name:
type: text
nullable: false
full_name:
type: text
computed: '${capitalize(first_name)} ${capitalize(last_name)}'
nullable: false
Rules:
- FDR-218
computedMAY be omitted. - FDR-219 If present,
computedMUST be a non-empty string in the shared text-template expression context defined in Foundations. - FDR-220
computedMAY be declared only on top-level frontmatter fields. - FDR-221
computedis the single schema-defined mechanism for deriving a field value from sibling fields of the same managed note. - FDR-222
generatedandcomputedare distinct:generatedcovers value origination without sibling-field inputs;computedcovers sibling-field derivation. - FDR-223 A field declaring
computedMUST declaretype: text. - FDR-224 A field declaring
computedMUST NOT declaregenerated,default_value,const_value, orvalue_from_schema; the computed expression is the field's materialization behavior. - FDR-225 A field declaring
computedMUST NOT declareimmutable: true, because its stored value is recomputed from its dependencies. - FDR-226
computeddoes not make a field virtual. Computed fields still follow the same type validation, optionality, stored-frontmatter, and canonical materialization rules as other declared fields. - FDR-227 For
computed, the shared expression-language scope is the managed note's sibling top-level fields in the effectivefrontmatter. - FDR-228 Every reference name used by a
computedexpression MUST resolve to a sibling top-level field declared in the same effectivefrontmatter, and MUST NOT resolve to the declaring field itself or to a field that itself declarescomputed. - FDR-229 Every field referenced by a
computedexpression MUST declaretype: text. - FDR-230
computeduses the shared expression-language syntax and shared transform semantics defined in Foundations; it defines no local syntax extensions. - FDR-231 A
computedexpression is evaluated against the managed note's materialized sibling-field values after non-computed defaults, schema-derived values, and generation strategies have been applied. - FDR-232 Every referenced field MUST hold a concrete non-null string when the
computedexpression is evaluated; otherwise the computed field has no conforming value and MUST be reported asinvalid_field_value. - FDR-233 Tools that create, scaffold, import, normalize, or otherwise write managed-note frontmatter MUST evaluate every
computedexpression and store the resulting value before writing the note. - FDR-234 A stored computed value MUST equal the result of its
computedexpression; a mismatch is aninvalid_field_valuefailure. - FDR-235 The computed result MUST satisfy the field's declared constraints; a schema MUST NOT combine
computedwith constraints its expression cannot satisfy. - FDR-236
computedMUST NOT depend on the note body, resolved note links, query results, collection-global state, or any data outside the sibling-field scope defined above. - FDR-237 A
computedfield whose stored value disagrees with its evaluated expression is a note-levelinvalid_field_valuefailure, not a schema-shape failure. - FDR-238 A syntactically invalid shared expression, an unresolved sibling-field reference, a type-incompatible reference, or an unknown transform name makes the declaring artifact invalid.
unique#
Rules:
- FDR-78
uniqueMAY be omitted. - FDR-79
uniqueMUST be a boolean or the stringcollection. - FDR-80 If omitted,
uniquedefaults tofalse. - FDR-81
uniqueMAY be declared only on top-level frontmatter fields. - FDR-82
unique: trueandunique: collectionare valid only for scalar field types:text,integer,number,checkbox,date,time,datetime, andlink. - FDR-83
unique: truemeans every non-null stored value for that field MUST be distinct across all managed notes of the same note type. - FDR-84
unique: collectionmeans every non-null stored value for that field MUST be distinct across all managed notes in the collection, regardless of note type, comparing fields that share this field name. - FDR-85 Uniqueness is evaluated using exact stored-value equality after normal YAML parsing, under the string comparison rules defined in Foundations, not by note-link resolution.
- FDR-86 Multiple
nullvalues do not violate uniqueness. - FDR-87 A repeated non-null value for a field with
unique: trueis aduplicate_unique_valuevalidation failure, as defined in Collection Model. - FDR-88 If a unique value may be assigned later, the RECOMMENDED pattern is
nullable: truewithdefault_value: null.
deprecated#
Rules:
- FDR-89
deprecatedMAY be omitted. - FDR-90
deprecatedMUST be a boolean. - FDR-91 If omitted,
deprecateddefaults tofalse. - FDR-92
deprecated: truemarks a field as discouraged for new use. - FDR-93 A deprecated field remains valid and governed by the same type validation, optionality, defaulting, stored-frontmatter, and canonical materialization rules as any other declared field.
- FDR-94 This specification version does not define replacement mappings, migration behavior, or automatic validator severities for deprecated fields.
immutable#
Rules:
- FDR-95
immutableMAY be omitted. - FDR-96
immutableMUST be a boolean. - FDR-97 If omitted,
immutabledefaults tofalse. - FDR-98
immutable: truemeans that once the field holds a concrete non-null stored value, that value MUST NOT change. - FDR-99 Immutability is an obligation on tools and operations that modify managed notes; because conformance evaluation is stateless, a validator MAY verify immutability only when it has access to historical state.
- FDR-100 A
rename_fieldmigration moves an immutable value unchanged; achange_fieldmigration MAY change a field'simmutabledeclaration. - FDR-101
const_valueandvalue_from_schemaare stronger guarantees thanimmutable; a field declaring either need not also declareimmutable. - FDR-102 The core-defined
idfield is immutable whether or not its definition declares it. - FDR-103
immutableMAY be declared on top-level fields and on nested fields insideobject.fields; it MUST NOT be declared onitems.
optional#
Rules:
- FDR-104
optionalMAY be omitted. - FDR-105
optionalMUST be a boolean. - FDR-106 If omitted,
optionaldefaults tofalse. - FDR-107
optionaldefines value requirements, not sparse-storage behavior. - FDR-108 A field with
optional: trueMUST be nullable in the effective schema. - FDR-109 A schema MUST NOT yield a field definition with
optional: trueandnullable: false. - FDR-110 Fields with
optional: trueare semantically OPTIONAL, not sparse. - FDR-111 Fields with
optional: trueMAY remainnullindefinitely when materialized.
nullable#
Rules:
- FDR-112
nullableMAY be omitted. - FDR-113
nullableMUST be a boolean. - FDR-114 If
optional: falseandnullableis omitted,nullabledefaults tofalse. - FDR-115 If
optional: trueandnullableis omitted,nullabledefaults totrue. - FDR-116 A field with
nullable: trueMAY explicitly use the valuenull. - FDR-117 If a field is not nullable and no explicit value or
default_valueis available, the field still MUST be present and the note MUST be treated as non-conforming until a conforming concrete value is supplied.
default_value#
Rules:
- FDR-118
default_valueMAY be used on any field definition that does not declare a generation strategy, as defined undergenerated. - FDR-119
default_valueMUST conform to the declared field type, or MAY benullonly whennullable: true. - FDR-120
default_valueapplies during field materialization when the field has no explicit concrete value. - FDR-121 An explicit
nullvalue is distinct from an absent field and MUST NOT be replaced bydefault_value. - FDR-122
default_valuedoes not waive the physical presence requirement for declared fields. - FDR-123 If
nullable: trueand no explicitdefault_valueis provided, the implicit materialization default isnull. - FDR-124 The RECOMMENDED pattern for a field that MUST always be present but MAY have no concrete value is
nullable: truewithdefault_value: null.
relationship_kind#
Rules:
- FDR-125
relationship_kindMAY be omitted. - FDR-126 If present,
relationship_kindMUST be eitherbelongs_toorrelated_to. - FDR-127
relationship_kindMAY be declared only on top-level frontmatter fields. - FDR-128 A field with
relationship_kindMUST havetype: linkandformat: note_link, ortype: listwhoseitems.typeislinkanditems.formatisnote_link. - FDR-129 A field without
relationship_kindMAY still useformat: note_link, but it does not contribute to typed relationship conformance. - FDR-130 The semantics of
relationship_kindare defined in Relationships, Headings, and Templates.
format#
Rules:
- FDR-131
formatMAY be omitted. - FDR-132 Supported
formatvalues areslug,note_link,uri,hh:mm,hh:mm:ss, andhh:mm:ss.sss. - FDR-133
type: linkMUST declareformat. - FDR-134
type: timeMUST declareformat. - FDR-135
format: slugis valid only fortype: textorlist.items.type: text. - FDR-136
format: note_linkis valid only fortype: linkorlist.items.type: link. - FDR-137
format: uriis valid only fortype: linkorlist.items.type: link. - FDR-138
format: hh:mm,format: hh:mm:ss, andformat: hh:mm:ss.sssare valid only fortype: timeorlist.items.type: time. - FDR-139 Values with
format: slugMUST match^[a-z0-9]+(?:-[a-z0-9]+)*$. - FDR-140 Values with
format: uriMUST be absolute URIs with a non-empty scheme and valid syntax according to RFC 3986. Relative references MUST NOT be used. - FDR-141 Values with
format: note_linkMAY be the empty string as an explicit placeholder when no concrete link is known. - FDR-142 Non-empty values with
format: note_linkMUST use the note-link syntax and resolution rules defined in Note Links. - FDR-143 An empty-string value with
format: note_linkdoes not resolve to a managed note and does not contribute to relationship conformance. - FDR-144 Values with
format: hh:mmontype: timeorlist.items.type: timeMUST use a 24-hour clock and match^(?:[01]\d|2[0-3]):[0-5]\d$. - FDR-145 Values with
format: hh:mm:ssontype: timeorlist.items.type: timeMUST use a 24-hour clock and match^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d$. - FDR-146 Values with
format: hh:mm:ss.sssontype: timeorlist.items.type: timeMUST use a 24-hour clock and match^(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d\.\d{3}$.
validate_exists#
Rules:
- FDR-147
validate_existsMAY be omitted. - FDR-148
validate_existsMUST be a boolean. - FDR-149 If omitted,
validate_existsdefaults tofalse. - FDR-150
validate_existsis valid only on field definitions that declareformat: note_link, includinglist.items. - FDR-151
validate_exists: truemeans every non-empty stored note-link value MUST resolve to exactly one existing collection note under the note-link resolution rules defined in Note Links. - FDR-152 An empty-string placeholder value does not violate
validate_exists; combine it withnot_empty: trueto forbid placeholders entirely. - FDR-153 A non-empty value that does not resolve violates
validate_existsand is reported asinvalid_note_link. - FDR-154
validate_existsdoes not change relationship counting; unresolved placeholders already fail minimum-cardinality requirements.
targets#
Rules:
- FDR-155
targetsMAY be omitted. - FDR-156 If present,
targetsMUST be a non-empty list of unique note-type identifiers. - FDR-157
targetsis valid only on field definitions that declareformat: note_link, includinglist.items. - FDR-158 Each identifier in
targetsMUST resolve to a note type defined in the collection; it MAY name an abstract note type. - FDR-159 An abstract note type in
targetsmeans any concrete note type that extends it directly or transitively. - FDR-160 A non-empty stored value that resolves to a managed note MUST resolve to a note whose concrete note type satisfies
targets; a value resolving to an untyped note violatestargets. - FDR-161 A
targetsviolation is aninvalid_field_valuefailure. - FDR-162 An unresolved value does not violate
targets; existence is governed byvalidate_exists. - FDR-163 For values stored in a field declaring
targets, the id, name, and alias passes of name-based resolution consider only managed notes whose concrete note type satisfiestargets; path-formed targets resolve normally and are then validated againsttargets. - FDR-164 A relationship-bearing field MAY declare
targets; its declared targets SHOULD be consistent with the type-level relationship declarations, and a resolved typed relationship instance is validated against both.
not_empty#
Rules:
- FDR-165
not_emptyMAY be omitted. - FDR-166
not_emptyMUST be a boolean. - FDR-167 If omitted,
not_emptydefaults tofalse. - FDR-168
not_empty: trueis valid only fortype: text,type: link,type: list,type: tags, ortype: object. - FDR-169 For
type: textandtype: link,not_empty: truemeans the stored string MUST NOT be"". - FDR-170 For
type: listandtype: tags,not_empty: truemeans the stored sequence MUST contain at least one item. - FDR-171 For
type: object,not_empty: truemeans the stored mapping MUST contain at least one key.
not_blank#
Rules:
- FDR-172
not_blankMAY be omitted. - FDR-173
not_blankMUST be a boolean. - FDR-174 If omitted,
not_blankdefaults tofalse. - FDR-175
not_blank: trueis valid only fortype: textortype: link. - FDR-176
not_blank: truemeans the stored string MUST contain at least one non-whitespace character. - FDR-177
not_blank: trueis stronger thannot_empty: true.
regex#
Rules:
- FDR-178
regexMAY be omitted. - FDR-179
regexMUST be a non-empty string. - FDR-180
regexis valid only fortype: textortype: link. - FDR-181
regexis matched against the entire stored string value. - FDR-182
regexpatterns use the ECMA-262 regular expression dialect defined in Foundations.
min#
Rules:
- FDR-183
minMAY be omitted. - FDR-184
minis valid only fortype: text,type: link,type: integer,type: number,type: date,type: time,type: datetime,type: list, ortype: tags. - FDR-185 For
type: textandtype: link,minconstrains string length in Unicode code points and MUST be a non-negative integer. - FDR-186 For
type: listandtype: tags,minconstrains item count and MUST be a non-negative integer. - FDR-187 For
type: integer,type: number,type: date,type: time, andtype: datetime,minconstrains the stored value itself and MUST conform to the declared field type andformatwhen applicable. - FDR-188 For
type: date,type: time, andtype: datetime,mincomparison uses temporal ordering, not raw string comparison.
max#
Rules:
- FDR-189
maxMAY be omitted. - FDR-190
maxis valid only fortype: text,type: link,type: integer,type: number,type: date,type: time,type: datetime,type: list, ortype: tags. - FDR-191 For
type: textandtype: link,maxconstrains string length in Unicode code points and MUST be a non-negative integer. - FDR-192 For
type: listandtype: tags,maxconstrains item count and MUST be a non-negative integer. - FDR-193 For
type: integer,type: number,type: date,type: time, andtype: datetime,maxconstrains the stored value itself and MUST conform to the declared field type andformatwhen applicable. - FDR-194 For
type: date,type: time, andtype: datetime,maxcomparison uses temporal ordering, not raw string comparison. - FDR-195 If both
minandmaxare present,minMUST be less than or equal tomax.
allowed_values#
Rules:
- FDR-196
allowed_valuesMAY be omitted. - FDR-197
allowed_valuesMUST be a non-empty list of unique scalar values. - FDR-198 For scalar field types,
allowed_valuesentries MUST be compatible with the declared propertytype. - FDR-199 For
type: list,allowed_valuesis valid only whenitems.typeis one oftext,integer,number,checkbox,date,time,datetime, orlink, and eachallowed_valuesentry MUST be compatible with that item type. - FDR-200 For
type: list, every stored item value MUST be one of the declaredallowed_values. - FDR-201
allowed_valuesMUST NOT be used withtype: tags,type: object, ortype: any. - FDR-202 Text and link
allowed_valuescomparisons are case-sensitive and use exact string equality under the string comparison rules defined in Foundations. - FDR-203 Non-text scalar
allowed_valuescomparisons use exact scalar equality after normal YAML parsing and type validation.
allowed_values_from#
Rules:
- FDR-204
allowed_values_fromMAY be omitted. - FDR-205 If present,
allowed_values_fromMUST be a non-empty slug naming a vocabulary defined intypedmark.mdvocabularies, as defined in Collection Model; a reference that does not resolve makes the declaring artifact invalid. - FDR-206
allowed_values_fromandallowed_valuesMUST NOT both be present on the same field definition. - FDR-207
allowed_values_fromis valid whereverallowed_valuesis valid, and additionally ontype: tags. - FDR-208 For every type except
tags,allowed_values_fromhas the same semantics as declaringallowed_valueswith the referenced vocabulary's values. - FDR-209 For
type: tags, every stored entry MUST equal a vocabulary value or be a descendant of one under the tag hierarchy rules; an entry outside the vocabulary is aninvalid_field_valuefailure.
const_value#
Rules:
- FDR-210
const_valueMAY be omitted. - FDR-211
const_valueMUST conform to the declared property type. - FDR-212
const_valueandvalue_from_schemaMUST NOT both be present on the same field definition. - FDR-213 If
const_valueis present, the stored value MUST equal it exactly.
value_from_schema#
Rules:
- FDR-214
value_from_schemaMAY be omitted. - FDR-215 The only supported
value_from_schemavalue in this specification version isnote_type. - FDR-216
value_from_schema: note_typemeans the constant value is taken from the note type identifier of the schema currently being evaluated. - FDR-217 If
value_from_schemais present, the stored value MUST equal the derived schema value exactly.