ext-R5-MedicationStatement.adherence
type: StructureDefinition
node role: treeRoot
id:
  v: ext-R5-MedicationStatement.adherence
text:
  status:
    v: extensions
  div:
    v: Generated Narrative: StructureDefinition ext-R5-MedicationStatement.adherence Name Flags Card. Type Description & Constraints<img src="[binary]" alt="doco" style="background-color: inherit"/> Extension 0..1 Extension R5: Indicates whether the medication is or is not being consumed or administered (new) #xD; Slices for extension 1..* Extension Extension Slice: Unordered, Open by value:url #xD; extension:code 1..1 Extension R5: Type of adherence (new) #xD; url 1..1 uri "code" #xD; value[x] 1..1 CodeableConcept Type of adherence Binding: R5MedicationStatementAdherenceForR3 (0.1.0) (example) #xD; extension:reason 0..1 Extension R5: Details of the reason for the current use of the medication (new) #xD; url 1..1 uri "reason" #xD; value[x] 0..1 CodeableConcept Details of the reason for the current use of the medication #xD; url 1..1 uri "http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.adherence" #xD; value[x] 0..0 Value of extension #xD; <img src="[binary]" alt="doco" style="background-color: inherit"/> Documentation for this format
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-wg
    l: structuredefinition-wg
  value: Code
    v: fhir
extension:
  extension:
    url:
      v: packageId
      l: packageId
    value: Id
      v: hl7.fhir.uv.xver-r5.r3
  extension:
    url:
      v: version
      l: version
    value: String
      v: 0.1.0
  extension:
    url:
      v: uri
      l: uri
    value: Uri
      v: http://hl7.org/fhir/uv/xver/ImplementationGuide/hl7.fhir.uv.xver-r5.r3
      l: hl7.fhir.uv.xver-r5.r3
  url:
    v: http://hl7.org/fhir/StructureDefinition/package-source
    l: package-source
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm
    l: structuredefinition-fmm
  value: Integer
    v: 0
    extension:
      url:
        v: http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom
        l: structuredefinition-conformance-derivedFrom
      value: Uri
        v: http://hl7.org/fhir/uv/xver/ImplementationGuide/hl7.fhir.uv.xver-r5.r3
        l: hl7.fhir.uv.xver-r5.r3
extension:
  url:
    v: http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status
    l: structuredefinition-standards-status
  value: Code
    v: trial-use
    extension:
      url:
        v: http://hl7.org/fhir/StructureDefinition/structuredefinition-conformance-derivedFrom
        l: structuredefinition-conformance-derivedFrom
      value: Uri
        v: http://hl7.org/fhir/uv/xver/ImplementationGuide/hl7.fhir.uv.xver-r5.r3
        l: hl7.fhir.uv.xver-r5.r3
url:
  v: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.adherence
  l: extension-MedicationStatement.adherence
version:
  v: 0.1.0
name:
  v: ExtensionMedicationStatement_Adherence
title:
  v: R5: Indicates whether the medication is or is not being consumed or administered (new)
status:
  v: active
experimental:
  v: false
date:
  v: 2026-03-17T21:02:03.8104715+00:00
publisher:
  v: FHIR Infrastructure
contact:
  name:
    v: FHIR Infrastructure
  telecom:
    system:
      v: url
    value:
      v: http://www.hl7.org/Special/committees/fiwg
description:
  v: R5: `MedicationStatement.adherence` (new:BackboneElement)
jurisdiction:
  coding:
    system:
      v: http://unstats.un.org/unsd/methods/m49/m49.htm
      l: m49.htm
    code:
      v: 001
    display:
      v: World
purpose:
  v: This extension is part of the cross-version definitions generated to enable use of the element `MedicationStatement.adherence` as defined in FHIR R5 in FHIR STU3. The source element is defined as: `MedicationStatement.adherence` 0..1 `BackboneElement` Across FHIR versions, the element set has been mapped as: * R5: `MedicationStatement.adherence` 0..1 `BackboneElement` Following are the generation technical comments: Element `MedicationStatement.adherence` has a context of MedicationStatement based on following the parent source element upwards and mapping to `MedicationStatement`. Element `MedicationStatement.adherence` has no mapping targets in FHIR STU3. Typically, this is because the element has been added (is a new element).
fhir version:
  v: 3.0.2
mapping:
  identity:
    v: rim
  uri:
    v: http://hl7.org/v3
    l: v3
  name:
    v: RIM Mapping
kind:
  v: complex-type
abstract:
  v: false
context type:
  v: resource
context:
  v: MedicationStatement
type:
  v: Extension
base definition:
  v: http://hl7.org/fhir/StructureDefinition/Extension
  l: Extension
derivation:
  v: constraint
snapshot:
  element:
    id:
      v: Extension
    path:
      v: Extension
    short:
      v: R5: Indicates whether the medication is or is not being consumed or administered (new)
    definition:
      v: R5: `MedicationStatement.adherence` (new:BackboneElement)
    comment:
      v: Element `MedicationStatement.adherence` has a context of MedicationStatement based on following the parent source element upwards and mapping to `MedicationStatement`. Element `MedicationStatement.adherence` has no mapping targets in FHIR STU3. Typically, this is because the element has been added (is a new element). This element can be used to indicate whether a patient is following a course of treatment as instructed/prescribed or whether they are taking medications of their own volition. It can also be used to indicate that a patient is not taking a medication, either because they were told not to or because they decided on their own.
    min:
      v: 0
    max:
      v: 1
    base:
      path:
        v: Extension
      min:
        v: 0
      max:
        v: *
    condition:
      v: ele-1
    constraint:
      key:
        v: ele-1
      severity:
        v: error
      human:
        v: All FHIR elements must have a @value or children
      expression:
        v: hasValue() | (children().count() > id.count())
      xpath:
        v: @value|f:*|h:div
      source:
        v: http://hl7.org/fhir/StructureDefinition/Element
        l: Element
    constraint:
      key:
        v: ext-1
      severity:
        v: error
      human:
        v: Must have either extensions or value[x], not both
      expression:
        v: extension.exists() != value.exists()
      xpath:
        v: exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])
      source:
        v: http://hl7.org/fhir/StructureDefinition/Extension
        l: Extension
    is modifier:
      v: false
  element:
    id:
      v: Extension.id
    path:
      v: Extension.id
    representation:
      v: xmlAttr
    short:
      v: xml:id (or equivalent in JSON)
    definition:
      v: unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
    min:
      v: 0
    max:
      v: 1
    base:
      path:
        v: Element.id
      min:
        v: 0
      max:
        v: 1

code:
  v: string
  l: string

identity:
  v: rim
map:
  v: n/a

id:
  v: Extension.extension
path:
  v: Extension.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  ordered:
    v: false
  rules:
    v: open
short:
  v: Extension
definition:
  v: An Extension
min:
  v: 1
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension

id:
  v: Extension.extension:code
path:
  v: Extension.extension
slice name:
  v: code
short:
  v: R5: Type of adherence (new)
definition:
  v: R5: `MedicationStatement.adherence.code` (new:CodeableConcept)
comment:
  v: Element `MedicationStatement.adherence.code` is part of an existing definition because parent element `MedicationStatement.adherence` requires a cross-version extension. Element `MedicationStatement.adherence.code` has a context of MedicationStatement based on following the parent source element upwards and mapping to `MedicationStatement`. Element `MedicationStatement.adherence.code` has no mapping targets in FHIR STU3. Typically, this is because the element has been added (is a new element).
requirements:
  v: Element `MedicationStatement.adherence.code` is part of an existing definition because parent element `MedicationStatement.adherence` requires a cross-version extension. Element `MedicationStatement.adherence.code` has a context of MedicationStatement based on following the parent source element upwards and mapping to `MedicationStatement`. Element `MedicationStatement.adherence.code` has no mapping targets in FHIR STU3. Typically, this is because the element has been added (is a new element).
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension

id:
  v: Extension.extension:code.id
path:
  v: Extension.extension.id
representation:
  v: xmlAttr
short:
  v: xml:id (or equivalent in JSON)
definition:
  v: unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Extension.extension:code.extension
path:
  v: Extension.extension.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional Content defined by implementations
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Extension.extension:code.url
path:
  v: Extension.extension.url
representation:
  v: xmlAttr
short:
  v: identifies the meaning of the extension
definition:
  v: Source of the definition for the extension code - a logical name or a URL.
comment:
  v: The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Extension.url
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: uri
    l: uri
fixed: Uri
  v: code
  l: code
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Extension.extension:code.value[x]
path:
  v: Extension.extension.value[x]
short:
  v: Type of adherence
definition:
  v: Type of the adherence for the medication.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Extension.value[x]
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: CodeableConcept
    l: CodeableConcept
binding:
  strength:
    v: example
  value set: Uri
    v: http://hl7.org/fhir/uv/xver/ValueSet/R5-medication-statement-adherence-for-R3|0.1.0
    l: http://hl7.org/fhir/uv/xver/ValueSet/R5-medication-statement-adherence-for-R3
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Extension.extension:reason
path:
  v: Extension.extension
slice name:
  v: reason
short:
  v: R5: Details of the reason for the current use of the medication (new)
definition:
  v: R5: `MedicationStatement.adherence.reason` (new:CodeableConcept)
comment:
  v: Element `MedicationStatement.adherence.reason` is part of an existing definition because parent element `MedicationStatement.adherence` requires a cross-version extension. Element `MedicationStatement.adherence.reason` has a context of MedicationStatement based on following the parent source element upwards and mapping to `MedicationStatement`. Element `MedicationStatement.adherence.reason` has no mapping targets in FHIR STU3. Typically, this is because the element has been added (is a new element). This is generally only used for "exception" statuses such as "entered-in-error". The reason for performing the event at all is captured in reasonCode, not here.
requirements:
  v: Element `MedicationStatement.adherence.reason` is part of an existing definition because parent element `MedicationStatement.adherence` requires a cross-version extension. Element `MedicationStatement.adherence.reason` has a context of MedicationStatement based on following the parent source element upwards and mapping to `MedicationStatement`. Element `MedicationStatement.adherence.reason` has no mapping targets in FHIR STU3. Typically, this is because the element has been added (is a new element).
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension

id:
  v: Extension.extension:reason.id
path:
  v: Extension.extension.id
representation:
  v: xmlAttr
short:
  v: xml:id (or equivalent in JSON)
definition:
  v: unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Element.id
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: string
    l: string
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Extension.extension:reason.extension
path:
  v: Extension.extension.extension
slicing:
  discriminator:
    type:
      v: value
    path:
      v: url
  description:
    v: Extensions are always sliced by (at least) url
  rules:
    v: open
short:
  v: Additional Content defined by implementations
definition:
  v: May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
comment:
  v: There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
alias:
  v: extensions
alias:
  v: user content
min:
  v: 0
max:
  v: *
base:
  path:
    v: Element.extension
  min:
    v: 0
  max:
    v: *
type:
  code:
    v: Extension
    l: Extension
mapping:
  identity:
    v: rim
  map:
    v: n/a

id:
  v: Extension.extension:reason.url
path:
  v: Extension.extension.url
representation:
  v: xmlAttr
short:
  v: identifies the meaning of the extension
definition:
  v: Source of the definition for the extension code - a logical name or a URL.
comment:
  v: The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Extension.url
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: uri
    l: uri
fixed: Uri
  v: reason
  l: reason
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Extension.extension:reason.value[x]
path:
  v: Extension.extension.value[x]
short:
  v: Details of the reason for the current use of the medication
definition:
  v: Captures the reason for the current use or adherence of a medication.
comment:
  v: This is generally only used for "exception" statuses such as "entered-in-error". The reason for performing the event at all is captured in reasonCode, not here.
min:
  v: 0
max:
  v: 1
base:
  path:
    v: Extension.value[x]
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: CodeableConcept
    l: CodeableConcept
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Extension.url
path:
  v: Extension.url
representation:
  v: xmlAttr
short:
  v: identifies the meaning of the extension
definition:
  v: Source of the definition for the extension code - a logical name or a URL.
comment:
  v: The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension.
min:
  v: 1
max:
  v: 1
base:
  path:
    v: Extension.url
  min:
    v: 1
  max:
    v: 1
type:
  code:
    v: uri
    l: uri
fixed: Uri
  v: http://hl7.org/fhir/5.0/StructureDefinition/extension-MedicationStatement.adherence
  l: extension-MedicationStatement.adherence
mapping:
  identity:
    v: rim
  map:
    v: N/A

id:
  v: Extension.value[x]
path:
  v: Extension.value[x]
short:
  v: Value of extension
definition:
  v: Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list).
min:
  v: 0
max:
  v: 0
base:
  path:
    v: Extension.value[x]
  min:
    v: 0
  max:
    v: 1
type:
  code:
    v: base64Binary
    l: base64Binary
type:
  code:
    v: boolean
    l: boolean
type:
  code:
    v: code
    l: code
type:
  code:
    v: date
    l: date
type:
  code:
    v: dateTime
    l: dateTime
type:
  code:
    v: decimal
    l: decimal
type:
  code:
    v: id
    l: id
type:
  code:
    v: instant
    l: instant
type:
  code:
    v: integer
    l: integer
type:
  code:
    v: markdown
    l: markdown
type:
  code:
    v: oid
    l: oid
type:
  code:
    v: positiveInt
    l: positiveInt
type:
  code:
    v: string
    l: string
type:
  code:
    v: time
    l: time
type:
  code:
    v: unsignedInt
    l: unsignedInt
type:
  code:
    v: uri
    l: uri
type:
  code:
    v: Address
    l: Address
type:
  code:
    v: Age
    l: Age
type:
  code:
    v: Annotation
    l: Annotation
type:
  code:
    v: Attachment
    l: Attachment
type:
  code:
    v: CodeableConcept
    l: CodeableConcept
type:
  code:
    v: Coding
    l: Coding
type:
  code:
    v: ContactPoint
    l: ContactPoint
type:
  code:
    v: Count
    l: Count
type:
  code:
    v: Distance
    l: Distance
type:
  code:
    v: Duration
    l: Duration
type:
  code:
    v: HumanName
    l: HumanName
type:
  code:
    v: Identifier
    l: Identifier
type:
  code:
    v: Money
    l: Money
type:
  code:
    v: Period
    l: Period
type:
  code:
    v: Quantity
    l: Quantity
type:
  code:
    v: Range
    l: Range
type:
  code:
    v: Ratio
    l: Ratio
type:
  code:
    v: Reference
    l: Reference
type:
  code:
    v: SampledData
    l: SampledData
type:
  code:
    v: Signature
    l: Signature
type:
  code:
    v: Timing
    l: Timing
type:
  code:
    v: Meta
    l: Meta
mapping:
  identity:
    v: rim
  map:
    v: N/A

element:
  id:
    v: Extension
  path:
    v: Extension
  short:
    v: R5: Indicates whether the medication is or is not being consumed or administered (new)
  definition:
    v: R5: `MedicationStatement.adherence` (new:BackboneElement)
  comment:
    v: Element `MedicationStatement.adherence` has a context of MedicationStatement based on following the parent source element upwards and mapping to `MedicationStatement`. Element `MedicationStatement.adherence` has no mapping targets in FHIR STU3. Typically, this is because the element has been added (is a new element). This element can be used to indicate whether a patient is following a course of treatment as instructed/prescribed or whether they are taking medications of their own volition. It can also be used to indicate that a patient is not taking a medication, either because they were told not to or because they decided on their own.
  min:
    v: 0
  max:
    v: 1
  base:
    path:
      v: Extension
    min:
      v: 0
    max:
      v: *
  is modifier:
    v: false
element:
  id:
    v: Extension.extension
  path:
    v: Extension.extension
  slicing:
    discriminator:
      type:
        v: value
      path:
        v: url
    ordered:
      v: false
    rules:
      v: open
  min:
    v: 1
  max:
    v: *
  base:
    path:
      v: Extension.extension
    min:
      v: 0
    max:
      v: *
element:
  id:
    v: Extension.extension:code
  path:
    v: Extension.extension
  slice name:
    v: code
  short:
    v: R5: Type of adherence (new)
  definition:
    v: R5: `MedicationStatement.adherence.code` (new:CodeableConcept)
  comment:
    v: Element `MedicationStatement.adherence.code` is part of an existing definition because parent element `MedicationStatement.adherence` requires a cross-version extension. Element `MedicationStatement.adherence.code` has a context of MedicationStatement based on following the parent source element upwards and mapping to `MedicationStatement`. Element `MedicationStatement.adherence.code` has no mapping targets in FHIR STU3. Typically, this is because the element has been added (is a new element).
  requirements:
    v: Element `MedicationStatement.adherence.code` is part of an existing definition because parent element `MedicationStatement.adherence` requires a cross-version extension. Element `MedicationStatement.adherence.code` has a context of MedicationStatement based on following the parent source element upwards and mapping to `MedicationStatement`. Element `MedicationStatement.adherence.code` has no mapping targets in FHIR STU3. Typically, this is because the element has been added (is a new element).
  min:
    v: 1
  max:
    v: 1
  base:
    path:
      v: Extension.extension
    min:
      v: 0
    max:
      v: *
element:
  id:
    v: Extension.extension:code.url
  path:
    v: Extension.extension.url
  min:
    v: 1
  max:
    v: 1
  base:
    path:
      v: Extension.url
    min:
      v: 1
    max:
      v: 1
  fixed: Uri
    v: code
    l: code
element:
  id:
    v: Extension.extension:code.value[x]
  path:
    v: Extension.extension.value[x]
  short:
    v: Type of adherence
  definition:
    v: Type of the adherence for the medication.
  min:
    v: 1
  max:
    v: 1
  base:
    path:
      v: Extension.value[x]
    min:
      v: 0
    max:
      v: 1
  type:
    code:
      v: CodeableConcept
      l: CodeableConcept
  binding:
    strength:
      v: example
    value set: Uri
      v: http://hl7.org/fhir/uv/xver/ValueSet/R5-medication-statement-adherence-for-R3|0.1.0
      l: http://hl7.org/fhir/uv/xver/ValueSet/R5-medication-statement-adherence-for-R3
element:
  id:
    v: Extension.extension:reason
  path:
    v: Extension.extension
  slice name:
    v: reason
  short:
    v: R5: Details of the reason for the current use of the medication (new)
  definition:
    v: R5: `MedicationStatement.adherence.reason` (new:CodeableConcept)
  comment:
    v: Element `MedicationStatement.adherence.reason` is part of an existing definition because parent element `MedicationStatement.adherence` requires a cross-version extension. Element `MedicationStatement.adherence.reason` has a context of MedicationStatement based on following the parent source element upwards and mapping to `MedicationStatement`. Element `MedicationStatement.adherence.reason` has no mapping targets in FHIR STU3. Typically, this is because the element has been added (is a new element). This is generally only used for "exception" statuses such as "entered-in-error". The reason for performing the event at all is captured in reasonCode, not here.
  requirements:
    v: Element `MedicationStatement.adherence.reason` is part of an existing definition because parent element `MedicationStatement.adherence` requires a cross-version extension. Element `MedicationStatement.adherence.reason` has a context of MedicationStatement based on following the parent source element upwards and mapping to `MedicationStatement`. Element `MedicationStatement.adherence.reason` has no mapping targets in FHIR STU3. Typically, this is because the element has been added (is a new element).
  min:
    v: 0
  max:
    v: 1
  base:
    path:
      v: Extension.extension
    min:
      v: 0
    max:
      v: *
element:
  id:
    v: Extension.extension:reason.url
  path:
    v: Extension.extension.url
  min:
    v: 1
  max:
    v: 1
  base:
    path:
      v: Extension.url
    min:
      v: 1
    max:
      v: 1
  fixed: Uri
    v: reason
    l: reason
element:
  id:
    v: Extension.extension:reason.value[x]
  path:
    v: Extension.extension.value[x]
  short:
    v: Details of the reason for the current use of the medication
  definition:
    v: Captures the reason for the current use or adherence of a medication.
  comment:
    v: This is generally only used for "exception" statuses such as "entered-in-error". The reason for performing the event at all is captured in reasonCode, not here.
  min:
    v: 0
  max:
    v: 1
  base:
    path:
      v: Extension.value[x]
    min:
      v: 0
    max:
      v: 1
  type:
    code:
      v: CodeableConcept
      l: CodeableConcept
element:
  id:
    v: Extension.url
  path:
    v: Extension.url
  fixed: Uri

v: 1

v: 1

path:
  v: Extension.url
min:
  v: 1
max:
  v: 1

id:
  v: Extension.value[x]
path:
  v: Extension.value[x]
min:
  v: 0
max:
  v: 0
base:
  path:
    v: Extension.value[x]
  min:
    v: 0
  max:
    v: 1