[rtems-central commit] spec: Allow multiple interface references

Sebastian Huber sebh at rtems.org
Wed Apr 28 07:04:36 UTC 2021


Module:    rtems-central
Branch:    master
Commit:    d3b9142a896f710924f47b4c61c19b4201cb9e8f
Changeset: http://git.rtems.org/rtems-central/commit/?id=d3b9142a896f710924f47b4c61c19b4201cb9e8f

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Mon Apr 26 09:04:50 2021 +0200

spec: Allow multiple interface references

---

 rtemsspec/applconfig.py                            |  7 +++---
 rtemsspec/sphinxcontent.py                         | 20 +++++++++--------
 .../tests/spec-applconfig/unspec-define-2.yml      |  3 ++-
 rtemsspec/tests/spec-applconfig/unspec-define.yml  |  3 ++-
 rtemsspec/tests/spec-applconfig/unspec-type-2.yml  |  3 ++-
 rtemsspec/tests/spec-applconfig/unspec-type.yml    |  2 +-
 rtemsspec/tests/test_applconfig.py                 |  2 +-
 spec/bsp/if/boot-card.yml                          |  2 +-
 spec/build-options/if/ada.yml                      |  2 +-
 spec/build-options/if/debug.yml                    |  2 +-
 spec/build-options/if/drvmgr.yml                   |  2 +-
 spec/build-options/if/multiprocessing.yml          |  2 +-
 spec/build-options/if/networking.yml               |  2 +-
 spec/build-options/if/paravirt.yml                 |  2 +-
 spec/build-options/if/posix.yml                    |  2 +-
 spec/build-options/if/profiling.yml                |  2 +-
 spec/build-options/if/smp.yml                      |  2 +-
 spec/c/if/atexit.yml                               |  2 +-
 spec/c/if/bool.yml                                 |  2 +-
 spec/c/if/chmod.yml                                |  2 +-
 spec/c/if/chown.yml                                |  2 +-
 spec/c/if/cpu_set_t.yml                            |  2 +-
 spec/c/if/errno.yml                                |  2 +-
 spec/c/if/exit.yml                                 |  2 +-
 spec/c/if/false.yml                                |  2 +-
 spec/c/if/free.yml                                 |  2 +-
 spec/c/if/int16_t.yml                              |  3 ++-
 spec/c/if/int32_t.yml                              |  3 ++-
 spec/c/if/int64_t.yml                              |  3 ++-
 spec/c/if/int8_t.yml                               |  3 ++-
 spec/c/if/intmax_t.yml                             |  3 ++-
 spec/c/if/intptr_t.yml                             |  3 ++-
 spec/c/if/link.yml                                 |  2 +-
 spec/c/if/malloc.yml                               |  2 +-
 spec/c/if/mkfifo.yml                               |  2 +-
 spec/c/if/mknod.yml                                |  2 +-
 spec/c/if/null.yml                                 |  3 ++-
 spec/c/if/offsetof.yml                             |  2 +-
 spec/c/if/on-exit.yml                              |  2 +-
 spec/c/if/printf.yml                               |  2 +-
 spec/c/if/pthread_setspecific.yml                  |  2 +-
 spec/c/if/readdir.yml                              |  2 +-
 spec/c/if/readlink.yml                             |  2 +-
 spec/c/if/rename.yml                               |  2 +-
 spec/c/if/rmnod.yml                                |  2 +-
 spec/c/if/sbrk.yml                                 |  2 +-
 spec/c/if/sem_init.yml                             |  2 +-
 spec/c/if/sem_open.yml                             |  2 +-
 spec/c/if/size_max.yml                             |  3 ++-
 spec/c/if/size_t.yml                               |  3 ++-
 spec/c/if/symlink.yml                              |  2 +-
 spec/c/if/time_t.yml                               |  2 +-
 spec/c/if/timespec.yml                             |  2 +-
 spec/c/if/timeval.yml                              |  2 +-
 spec/c/if/true.yml                                 |  2 +-
 spec/c/if/uint16_t.yml                             |  3 ++-
 spec/c/if/uint32_max.yml                           |  3 ++-
 spec/c/if/uint32_t.yml                             |  3 ++-
 spec/c/if/uint64_t.yml                             |  3 ++-
 spec/c/if/uint8_t.yml                              |  3 ++-
 spec/c/if/uintmax_t.yml                            |  3 ++-
 spec/c/if/uintptr_max.yml                          |  3 ++-
 spec/c/if/uintptr_t.yml                            |  3 ++-
 spec/c/if/utime.yml                                |  2 +-
 spec/compiler/if/asm.yml                           |  2 +-
 spec/compiler/if/builtin-choose-expr.yml           |  2 +-
 spec/compiler/if/builtin-expect.yml                |  2 +-
 spec/compiler/if/builtin-return-address.yml        |  2 +-
 spec/compiler/if/builtin-types-compatible-p.yml    |  2 +-
 spec/compiler/if/builtin-unreachable.yml           |  2 +-
 spec/compiler/if/coverity.yml                      |  2 +-
 spec/compiler/if/cplusplus.yml                     |  2 +-
 spec/compiler/if/gnuc.yml                          |  2 +-
 spec/compiler/if/stdc-version.yml                  |  3 ++-
 spec/compiler/if/typeof.yml                        |  2 +-
 spec/compiler/if/user-label-prefix.yml             |  2 +-
 spec/rtems/io/if/getchark.yml                      |  2 +-
 spec/rtems/io/if/mount.yml                         |  2 +-
 spec/rtems/io/if/printk.yml                        |  2 +-
 spec/rtems/io/if/putc.yml                          |  2 +-
 spec/rtems/io/if/unmount.yml                       |  2 +-
 spec/score/context/if/fp-size.yml                  |  2 +-
 spec/score/cpu/if/all-tasks-are-fp.yml             |  2 +-
 spec/score/cpu/if/exception-frame-print.yml        |  2 +-
 spec/score/cpu/if/exception-frame.yml              |  2 +-
 spec/score/cpu/if/hardware-fp.yml                  |  2 +-
 spec/score/cpu/if/heap-alignment.yml               |  2 +-
 spec/score/cpu/if/interrupt-frame.yml              |  2 +-
 spec/score/cpu/if/interrupt-stack-alignment.yml    |  2 +-
 spec/score/cpu/if/isr-passes-frame-pointer.yml     |  2 +-
 spec/score/cpu/if/maximum-processors.yml           |  2 +-
 spec/score/cpu/if/modes-interrupt-mask.yml         |  2 +-
 spec/score/cpu/if/simple-vectored-interrupts.yml   |  2 +-
 spec/score/cpu/if/sizeof-pointer.yml               |  2 +-
 spec/score/cpu/if/stack-alignment.yml              |  2 +-
 spec/score/cpu/if/stack-minimum-size.yml           |  2 +-
 spec/score/cpu/if/uint32ptr.yml                    |  2 +-
 spec/score/heap/if/information-block.yml           |  2 +-
 spec/score/interr/if/code.yml                      |  2 +-
 spec/score/interr/if/internal-error-rtems-api.yml  |  2 +-
 spec/score/interr/if/source-exit.yml               |  2 +-
 spec/score/interr/if/source-panic.yml              |  2 +-
 spec/score/interr/if/source.yml                    |  2 +-
 spec/score/interr/if/terminate.yml                 |  2 +-
 spec/score/isr/if/handler-entry.yml                |  2 +-
 spec/score/isr/if/handler.yml                      |  2 +-
 spec/score/isr/if/is-in-progress.yml               |  2 +-
 spec/score/isr/if/level.yml                        |  2 +-
 spec/score/isr/if/local-disable.yml                |  2 +-
 spec/score/isr/if/local-enable.yml                 |  2 +-
 spec/score/isr/if/local-flash.yml                  |  2 +-
 spec/score/isr/if/lock-context.yml                 |  2 +-
 spec/score/isr/if/lock-control.yml                 |  2 +-
 spec/score/isr/if/lock-declare.yml                 |  2 +-
 spec/score/isr/if/lock-define.yml                  |  2 +-
 spec/score/isr/if/lock-destroy.yml                 |  2 +-
 spec/score/isr/if/lock-initialize.yml              |  2 +-
 spec/score/isr/if/lock-initializer.yml             |  2 +-
 spec/score/isr/if/lock-isr-disable-acquire.yml     |  2 +-
 spec/score/isr/if/lock-isr-disable.yml             |  2 +-
 spec/score/isr/if/lock-member.yml                  |  2 +-
 spec/score/isr/if/lock-reference.yml               |  2 +-
 spec/score/isr/if/lock-release-isr-enable.yml      |  2 +-
 spec/score/isr/if/stack-size.yml                   |  2 +-
 spec/score/isr/if/vector-number.yml                |  2 +-
 spec/score/memory/if/zero-before-use.yml           |  2 +-
 spec/score/mpci/if/configuration-type.yml          |  2 +-
 spec/score/mpci/if/configuration.yml               |  2 +-
 spec/score/mpci/if/control.yml                     |  2 +-
 spec/score/mpci/if/entry.yml                       |  2 +-
 spec/score/mpci/if/get-packet-entry.yml            |  2 +-
 spec/score/mpci/if/initialization-entry.yml        |  2 +-
 spec/score/mpci/if/packet-classes.yml              |  2 +-
 .../mpci/if/packet-minimum-hetero-conversion.yml   |  2 +-
 spec/score/mpci/if/packet-minimum-size.yml         |  2 +-
 spec/score/mpci/if/packet-prefix.yml               |  2 +-
 spec/score/mpci/if/receive-entry.yml               |  2 +-
 spec/score/mpci/if/return-packet-entry.yml         |  2 +-
 spec/score/mpci/if/send-entry.yml                  |  2 +-
 spec/score/msgq/if/buffer.yml                      |  2 +-
 spec/score/object/if/apis-last.yml                 |  2 +-
 spec/score/object/if/build-id.yml                  |  2 +-
 spec/score/object/if/build-name.yml                |  2 +-
 spec/score/object/if/get-api.yml                   |  2 +-
 spec/score/object/if/get-class.yml                 |  2 +-
 spec/score/object/if/get-index.yml                 |  2 +-
 spec/score/object/if/get-node.yml                  |  2 +-
 spec/score/object/if/id-final-index.yml            |  2 +-
 spec/score/object/if/id-final.yml                  |  2 +-
 spec/score/object/if/id-initial-index.yml          |  2 +-
 spec/score/object/if/id-initial.yml                |  2 +-
 spec/score/object/if/id-none.yml                   |  2 +-
 spec/score/object/if/id-of-self.yml                |  2 +-
 spec/score/object/if/id.yml                        |  2 +-
 spec/score/object/if/internal-api.yml              |  2 +-
 spec/score/object/if/is-unlimited.yml              |  2 +-
 spec/score/object/if/local-node.yml                |  2 +-
 spec/score/object/if/maximum-per-allocation.yml    |  2 +-
 spec/score/object/if/search-all-nodes.yml          |  2 +-
 spec/score/object/if/search-local-nodes.yml        |  2 +-
 spec/score/object/if/search-other-nodes.yml        |  2 +-
 spec/score/object/if/unlimited-objects.yml         |  2 +-
 spec/score/object/if/who-am-i.yml                  |  2 +-
 spec/score/smp/if/get-current-processor.yml        |  2 +-
 spec/score/smp/if/get-processor-maximum.yml        |  2 +-
 spec/score/smp/if/lock-acquire.yml                 |  2 +-
 spec/score/smp/if/lock-release.yml                 |  2 +-
 spec/score/smp/if/processor-configured-maximum.yml |  2 +-
 spec/score/stack/if/allocator-allocate-type.yml    |  2 +-
 spec/score/stack/if/allocator-allocate.yml         |  2 +-
 spec/score/stack/if/allocator-avoids-workspace.yml |  2 +-
 spec/score/stack/if/allocator-free-type.yml        |  2 +-
 spec/score/stack/if/allocator-free.yml             |  2 +-
 spec/score/stack/if/allocator-initialize-type.yml  |  2 +-
 spec/score/stack/if/allocator-initialize.yml       |  2 +-
 spec/score/stack/if/minimum-size.yml               |  2 +-
 spec/score/status/if/deadlock.yml                  |  2 +-
 spec/score/status/if/successful.yml                |  2 +-
 spec/score/status/if/unsatisfied.yml               |  2 +-
 spec/score/thread/if/idle-body.yml                 |  2 +-
 spec/score/thread/if/idle-stack-size.yml           |  2 +-
 spec/score/userext/if/fatal.yml                    |  2 +-
 spec/score/userext/if/initial-count.yml            |  2 +-
 spec/score/userext/if/initial-extensions.yml       |  2 +-
 spec/score/userext/if/table.yml                    |  2 +-
 spec/score/userext/if/thread-begin.yml             |  2 +-
 spec/score/userext/if/thread-create.yml            |  2 +-
 spec/score/userext/if/thread-delete.yml            |  2 +-
 spec/score/userext/if/thread-exitted.yml           |  2 +-
 spec/score/userext/if/thread-restart.yml           |  2 +-
 spec/score/userext/if/thread-start.yml             |  2 +-
 spec/score/userext/if/thread-switch.yml            |  2 +-
 spec/score/userext/if/thread-terminate.yml         |  2 +-
 spec/score/watchdog/if/interval.yml                |  2 +-
 spec/score/watchdog/if/microseconds-per-tick.yml   |  2 +-
 spec/score/watchdog/if/nanoseconds-per-tick.yml    |  2 +-
 spec/score/watchdog/if/no-timeout.yml              |  2 +-
 spec/score/watchdog/if/ticks-per-second.yml        |  2 +-
 spec/score/watchdog/if/ticks-per-timeslice.yml     |  2 +-
 spec/score/watchdog/if/ticks-since-boot.yml        |  2 +-
 spec/score/wkspace/if/is-unified.yml               |  2 +-
 spec/score/wkspace/if/size.yml                     |  2 +-
 spec/spec/interface-references.yml                 | 25 ++++++++++++++++++++++
 spec/spec/interface-unspecified.yml                | 10 ++++-----
 spec/user/if/asm.yml                               |  2 +-
 spec/user/if/false.yml                             |  2 +-
 spec/user/if/true.yml                              |  2 +-
 207 files changed, 268 insertions(+), 221 deletions(-)

diff --git a/rtemsspec/applconfig.py b/rtemsspec/applconfig.py
index 364b122..a2ef703 100644
--- a/rtemsspec/applconfig.py
+++ b/rtemsspec/applconfig.py
@@ -425,17 +425,18 @@ def _get_value_doxygen_reference(_ctx: ItemGetValueContext) -> Any:
 
 
 def _get_value_doxygen_url(ctx: ItemGetValueContext) -> Any:
-    return f"<a href=\"{ctx.item['reference']}\">{ctx.value[ctx.key]}</a>"
+    url = ctx.item["references"]["url"]
+    return f"<a href=\"{url}\">{ctx.value[ctx.key]}</a>"
 
 
 def _get_value_doxygen_unspecfied_define(ctx: ItemGetValueContext) -> Any:
-    if ctx.item["reference"]:
+    if "url" in ctx.item["references"]:
         return _get_value_doxygen_url(ctx)
     return get_value_hash(ctx)
 
 
 def _get_value_doxygen_unspecfied_type(ctx: ItemGetValueContext) -> Any:
-    if ctx.item["reference"]:
+    if "url" in ctx.item["references"]:
         return _get_value_doxygen_url(ctx)
     return get_value_double_colon(ctx)
 
diff --git a/rtemsspec/sphinxcontent.py b/rtemsspec/sphinxcontent.py
index af555fb..3ac0a9b 100644
--- a/rtemsspec/sphinxcontent.py
+++ b/rtemsspec/sphinxcontent.py
@@ -28,7 +28,7 @@ from contextlib import contextmanager
 from typing import Any, Iterable, Iterator, List, Optional, Sequence, Union
 
 from rtemsspec.content import Content, make_lines, to_camel_case
-from rtemsspec.items import Item, ItemGetValueContext, ItemMapper
+from rtemsspec.items import Item, ItemGetValue, ItemGetValueContext, ItemMapper
 
 GenericContent = Union[str, List[str], "Content"]
 GenericContentIterable = Union[Iterable[str], Iterable[List[str]],
@@ -229,20 +229,22 @@ def _get_value_sphinx_type(ctx: ItemGetValueContext) -> Any:
     return f":c:type:`{ctx.value[ctx.key]}`"
 
 
-def _get_value_sphinx_url(ctx: ItemGetValueContext) -> Any:
-    return f"`{ctx.value[ctx.key]} <{ctx.item['reference']}>`_"
+def _get_value_sphinx_ref(ctx: ItemGetValueContext,
+                          get_value: ItemGetValue) -> Any:
+    if "c-user" in ctx.item["references"]:
+        sphinx_ref = ctx.item["references"]["c-user"]
+        return f":ref:`{ctx.value[ctx.key]} <{sphinx_ref}>`"
+    if "url" in ctx.item["references"]:
+        return f"`{ctx.value[ctx.key]} <{ctx.item['references']['url']}>`_"
+    return get_value(ctx)
 
 
 def _get_value_sphinx_unspecified_define(ctx: ItemGetValueContext) -> Any:
-    if ctx.item["reference"]:
-        return _get_value_sphinx_url(ctx)
-    return _get_value_sphinx_macro(ctx)
+    return _get_value_sphinx_ref(ctx, _get_value_sphinx_macro)
 
 
 def _get_value_sphinx_unspecified_type(ctx: ItemGetValueContext) -> Any:
-    if ctx.item["reference"]:
-        return _get_value_sphinx_url(ctx)
-    return _get_value_sphinx_type(ctx)
+    return _get_value_sphinx_ref(ctx, _get_value_sphinx_type)
 
 
 class SphinxMapper(ItemMapper):
diff --git a/rtemsspec/tests/spec-applconfig/unspec-define-2.yml b/rtemsspec/tests/spec-applconfig/unspec-define-2.yml
index 017673b..75acb27 100644
--- a/rtemsspec/tests/spec-applconfig/unspec-define-2.yml
+++ b/rtemsspec/tests/spec-applconfig/unspec-define-2.yml
@@ -5,5 +5,6 @@ enabled-by: true
 interface-type: unspecified-define
 links: []
 name: UNSPEC_DEFINE_2
-reference: https://foo
+references:
+  url: https://foo
 type: interface
diff --git a/rtemsspec/tests/spec-applconfig/unspec-define.yml b/rtemsspec/tests/spec-applconfig/unspec-define.yml
index 766b0de..6ca8998 100644
--- a/rtemsspec/tests/spec-applconfig/unspec-define.yml
+++ b/rtemsspec/tests/spec-applconfig/unspec-define.yml
@@ -5,5 +5,6 @@ enabled-by: true
 interface-type: unspecified-define
 links: []
 name: UNSPEC_DEFINE
-reference: null
+references:
+  c-user: SphinxRefTarget
 type: interface
diff --git a/rtemsspec/tests/spec-applconfig/unspec-type-2.yml b/rtemsspec/tests/spec-applconfig/unspec-type-2.yml
index f34f63e..4635d78 100644
--- a/rtemsspec/tests/spec-applconfig/unspec-type-2.yml
+++ b/rtemsspec/tests/spec-applconfig/unspec-type-2.yml
@@ -5,5 +5,6 @@ enabled-by: true
 interface-type: unspecified-type
 links: []
 name: unspec_type_2
-reference: https://bar
+references:
+  url: https://bar
 type: interface
diff --git a/rtemsspec/tests/spec-applconfig/unspec-type.yml b/rtemsspec/tests/spec-applconfig/unspec-type.yml
index b133d42..249fe30 100644
--- a/rtemsspec/tests/spec-applconfig/unspec-type.yml
+++ b/rtemsspec/tests/spec-applconfig/unspec-type.yml
@@ -5,5 +5,5 @@ enabled-by: true
 interface-type: unspecified-type
 links: []
 name: unspec_type
-reference: null
+references: {}
 type: interface
diff --git a/rtemsspec/tests/test_applconfig.py b/rtemsspec/tests/test_applconfig.py
index c99e026..1e53e83 100644
--- a/rtemsspec/tests/test_applconfig.py
+++ b/rtemsspec/tests/test_applconfig.py
@@ -107,7 +107,7 @@ NOTES:
 
     * :c:macro:`DEFINE`
 
-    * :c:macro:`UNSPEC_DEFINE`
+    * :ref:`UNSPEC_DEFINE <SphinxRefTarget>`
 
     * `UNSPEC_DEFINE_2 <https://foo>`_
 
diff --git a/spec/bsp/if/boot-card.yml b/spec/bsp/if/boot-card.yml
index f33061f..711da4c 100644
--- a/spec/bsp/if/boot-card.yml
+++ b/spec/bsp/if/boot-card.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: boot_card
-reference: null
+references: {}
 type: interface
diff --git a/spec/build-options/if/ada.yml b/spec/build-options/if/ada.yml
index f22c690..524a026 100644
--- a/spec/build-options/if/ada.yml
+++ b/spec/build-options/if/ada.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __RTEMS_ADA__
-reference: null
+references: {}
 type: interface
diff --git a/spec/build-options/if/debug.yml b/spec/build-options/if/debug.yml
index 87eaf0d..53d22f0 100644
--- a/spec/build-options/if/debug.yml
+++ b/spec/build-options/if/debug.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: RTEMS_DEBUG
-reference: null
+references: {}
 type: interface
diff --git a/spec/build-options/if/drvmgr.yml b/spec/build-options/if/drvmgr.yml
index 2df73b2..dd61fa1 100644
--- a/spec/build-options/if/drvmgr.yml
+++ b/spec/build-options/if/drvmgr.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: RTEMS_DRVMGR_STARTUP
-reference: null
+references: {}
 type: interface
diff --git a/spec/build-options/if/multiprocessing.yml b/spec/build-options/if/multiprocessing.yml
index d72cbe5..91b16e3 100644
--- a/spec/build-options/if/multiprocessing.yml
+++ b/spec/build-options/if/multiprocessing.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: RTEMS_MULTIPROCESSING
-reference: null
+references: {}
 type: interface
diff --git a/spec/build-options/if/networking.yml b/spec/build-options/if/networking.yml
index 256343a..a586479 100644
--- a/spec/build-options/if/networking.yml
+++ b/spec/build-options/if/networking.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: RTEMS_NETWORKING
-reference: null
+references: {}
 type: interface
diff --git a/spec/build-options/if/paravirt.yml b/spec/build-options/if/paravirt.yml
index 5c1f456..29a20c7 100644
--- a/spec/build-options/if/paravirt.yml
+++ b/spec/build-options/if/paravirt.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: RTEMS_PARAVIRT
-reference: null
+references: {}
 type: interface
diff --git a/spec/build-options/if/posix.yml b/spec/build-options/if/posix.yml
index 3ea272e..2ad0f05 100644
--- a/spec/build-options/if/posix.yml
+++ b/spec/build-options/if/posix.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: RTEMS_POSIX_API
-reference: null
+references: {}
 type: interface
diff --git a/spec/build-options/if/profiling.yml b/spec/build-options/if/profiling.yml
index e4faa82..a97b8c8 100644
--- a/spec/build-options/if/profiling.yml
+++ b/spec/build-options/if/profiling.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: RTEMS_PROFILING
-reference: null
+references: {}
 type: interface
diff --git a/spec/build-options/if/smp.yml b/spec/build-options/if/smp.yml
index aaafeec..1d835b4 100644
--- a/spec/build-options/if/smp.yml
+++ b/spec/build-options/if/smp.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: RTEMS_SMP
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/atexit.yml b/spec/c/if/atexit.yml
index 0464ec9..5ebb05c 100644
--- a/spec/c/if/atexit.yml
+++ b/spec/c/if/atexit.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: stdlib
 name: atexit
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/bool.yml b/spec/c/if/bool.yml
index e106550..5f689e6 100644
--- a/spec/c/if/bool.yml
+++ b/spec/c/if/bool.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: stdbool
 name: bool
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/chmod.yml b/spec/c/if/chmod.yml
index 9e920f6..1bb52e9 100644
--- a/spec/c/if/chmod.yml
+++ b/spec/c/if/chmod.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-stat
 name: chmod
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/chown.yml b/spec/c/if/chown.yml
index 05765b3..74f7dbb 100644
--- a/spec/c/if/chown.yml
+++ b/spec/c/if/chown.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-stat
 name: chown
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/cpu_set_t.yml b/spec/c/if/cpu_set_t.yml
index 6d1e14b..a887c44 100644
--- a/spec/c/if/cpu_set_t.yml
+++ b/spec/c/if/cpu_set_t.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-cpuset
 name: cpu_set_t
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/errno.yml b/spec/c/if/errno.yml
index f256c6f..2f13850 100644
--- a/spec/c/if/errno.yml
+++ b/spec/c/if/errno.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: errno-header
 name: errno
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/exit.yml b/spec/c/if/exit.yml
index c0434c5..596fc46 100644
--- a/spec/c/if/exit.yml
+++ b/spec/c/if/exit.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: stdlib
 name: exit
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/false.yml b/spec/c/if/false.yml
index bf016ac..8531c1b 100644
--- a/spec/c/if/false.yml
+++ b/spec/c/if/false.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: stdbool
 name: 'false'
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/free.yml b/spec/c/if/free.yml
index 4f28fb0..e47e1c5 100644
--- a/spec/c/if/free.yml
+++ b/spec/c/if/free.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: stdlib
 name: free
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/int16_t.yml b/spec/c/if/int16_t.yml
index 2807561..a44cb6e 100644
--- a/spec/c/if/int16_t.yml
+++ b/spec/c/if/int16_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: int16_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/int32_t.yml b/spec/c/if/int32_t.yml
index 3b99e88..71f0d66 100644
--- a/spec/c/if/int32_t.yml
+++ b/spec/c/if/int32_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: int32_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/int64_t.yml b/spec/c/if/int64_t.yml
index ed09078..f5dbe95 100644
--- a/spec/c/if/int64_t.yml
+++ b/spec/c/if/int64_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: int64_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/int8_t.yml b/spec/c/if/int8_t.yml
index 671c7ef..ec76cc7 100644
--- a/spec/c/if/int8_t.yml
+++ b/spec/c/if/int8_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: int8_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/intmax_t.yml b/spec/c/if/intmax_t.yml
index c9cf46b..4703193 100644
--- a/spec/c/if/intmax_t.yml
+++ b/spec/c/if/intmax_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: intmax_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/intptr_t.yml b/spec/c/if/intptr_t.yml
index 4507022..11388ed 100644
--- a/spec/c/if/intptr_t.yml
+++ b/spec/c/if/intptr_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: intptr_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/link.yml b/spec/c/if/link.yml
index f741735..bd40031 100644
--- a/spec/c/if/link.yml
+++ b/spec/c/if/link.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-stat
 name: link
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/malloc.yml b/spec/c/if/malloc.yml
index 2c7ae1f..19d5bf7 100644
--- a/spec/c/if/malloc.yml
+++ b/spec/c/if/malloc.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: stdlib
 name: malloc
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/mkfifo.yml b/spec/c/if/mkfifo.yml
index 154463d..1e13b6b 100644
--- a/spec/c/if/mkfifo.yml
+++ b/spec/c/if/mkfifo.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-stat
 name: mkfifo
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/mknod.yml b/spec/c/if/mknod.yml
index c10af8d..2ae383f 100644
--- a/spec/c/if/mknod.yml
+++ b/spec/c/if/mknod.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-stat
 name: mknod
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/null.yml b/spec/c/if/null.yml
index bb510e7..dc3c5d7 100644
--- a/spec/c/if/null.yml
+++ b/spec/c/if/null.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stddef
 name: 'NULL'
-reference: https://en.cppreference.com/w/c/types/NULL
+references:
+  url: https://en.cppreference.com/w/c/types/NULL
 type: interface
diff --git a/spec/c/if/offsetof.yml b/spec/c/if/offsetof.yml
index 01a3cc7..fa7935a 100644
--- a/spec/c/if/offsetof.yml
+++ b/spec/c/if/offsetof.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: stddef
 name: offsetof
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/on-exit.yml b/spec/c/if/on-exit.yml
index 65e2acf..2791384 100644
--- a/spec/c/if/on-exit.yml
+++ b/spec/c/if/on-exit.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: stdlib
 name: on_exit
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/printf.yml b/spec/c/if/printf.yml
index 95cc010..47ccc38 100644
--- a/spec/c/if/printf.yml
+++ b/spec/c/if/printf.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: stdio
 name: printf
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/pthread_setspecific.yml b/spec/c/if/pthread_setspecific.yml
index 1446e1a..e4e51ab 100644
--- a/spec/c/if/pthread_setspecific.yml
+++ b/spec/c/if/pthread_setspecific.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: pthread
 name: pthread_setspecific
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/readdir.yml b/spec/c/if/readdir.yml
index a1f55ff..f364d0a 100644
--- a/spec/c/if/readdir.yml
+++ b/spec/c/if/readdir.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-stat
 name: readdir
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/readlink.yml b/spec/c/if/readlink.yml
index a6c9de2..454f9a1 100644
--- a/spec/c/if/readlink.yml
+++ b/spec/c/if/readlink.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-stat
 name: readlink
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/rename.yml b/spec/c/if/rename.yml
index 54ed5cb..129c41e 100644
--- a/spec/c/if/rename.yml
+++ b/spec/c/if/rename.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-stat
 name: rename
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/rmnod.yml b/spec/c/if/rmnod.yml
index a2eb8d3..4dda42d 100644
--- a/spec/c/if/rmnod.yml
+++ b/spec/c/if/rmnod.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-stat
 name: rmnod
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/sbrk.yml b/spec/c/if/sbrk.yml
index 99c02be..ba4924d 100644
--- a/spec/c/if/sbrk.yml
+++ b/spec/c/if/sbrk.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: unistd
 name: sbrk
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/sem_init.yml b/spec/c/if/sem_init.yml
index cb2c99d..795de10 100644
--- a/spec/c/if/sem_init.yml
+++ b/spec/c/if/sem_init.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: semaphore
 name: sem_init
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/sem_open.yml b/spec/c/if/sem_open.yml
index ab63597..7972d1b 100644
--- a/spec/c/if/sem_open.yml
+++ b/spec/c/if/sem_open.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: semaphore
 name: sem_open
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/size_max.yml b/spec/c/if/size_max.yml
index ec29e19..4def1c5 100644
--- a/spec/c/if/size_max.yml
+++ b/spec/c/if/size_max.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: SIZE_MAX
-reference: https://en.cppreference.com/w/c/types/limits
+references:
+  url: https://en.cppreference.com/w/c/types/limits
 type: interface
diff --git a/spec/c/if/size_t.yml b/spec/c/if/size_t.yml
index 746c2bc..ffc934b 100644
--- a/spec/c/if/size_t.yml
+++ b/spec/c/if/size_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stddef
 name: size_t
-reference: https://en.cppreference.com/w/c/types/size_t
+references:
+  url: https://en.cppreference.com/w/c/types/size_t
 type: interface
diff --git a/spec/c/if/symlink.yml b/spec/c/if/symlink.yml
index 5247120..00807fe 100644
--- a/spec/c/if/symlink.yml
+++ b/spec/c/if/symlink.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-stat
 name: symlink
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/time_t.yml b/spec/c/if/time_t.yml
index 9813e28..2ab0176 100644
--- a/spec/c/if/time_t.yml
+++ b/spec/c/if/time_t.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: time
 name: time_t
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/timespec.yml b/spec/c/if/timespec.yml
index a17322a..2677557 100644
--- a/spec/c/if/timespec.yml
+++ b/spec/c/if/timespec.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-impl-timespec
 name: struct timespec
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/timeval.yml b/spec/c/if/timeval.yml
index 9b919f6..897e951 100644
--- a/spec/c/if/timeval.yml
+++ b/spec/c/if/timeval.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-impl-timeval
 name: struct timeval
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/true.yml b/spec/c/if/true.yml
index 96f26e6..76b24ff 100644
--- a/spec/c/if/true.yml
+++ b/spec/c/if/true.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: stdbool
 name: 'true'
-reference: null
+references: {}
 type: interface
diff --git a/spec/c/if/uint16_t.yml b/spec/c/if/uint16_t.yml
index 9097f76..21a5d9c 100644
--- a/spec/c/if/uint16_t.yml
+++ b/spec/c/if/uint16_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: uint16_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/uint32_max.yml b/spec/c/if/uint32_max.yml
index c9810b5..0229257 100644
--- a/spec/c/if/uint32_max.yml
+++ b/spec/c/if/uint32_max.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: UINT32_MAX
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/uint32_t.yml b/spec/c/if/uint32_t.yml
index 3a66398..9a1dbaa 100644
--- a/spec/c/if/uint32_t.yml
+++ b/spec/c/if/uint32_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: uint32_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/uint64_t.yml b/spec/c/if/uint64_t.yml
index 98ba745..1de3325 100644
--- a/spec/c/if/uint64_t.yml
+++ b/spec/c/if/uint64_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: uint64_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/uint8_t.yml b/spec/c/if/uint8_t.yml
index f073f73..e9ad1b3 100644
--- a/spec/c/if/uint8_t.yml
+++ b/spec/c/if/uint8_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: uint8_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/uintmax_t.yml b/spec/c/if/uintmax_t.yml
index cd81e26..851c67c 100644
--- a/spec/c/if/uintmax_t.yml
+++ b/spec/c/if/uintmax_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: uintmax_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/uintptr_max.yml b/spec/c/if/uintptr_max.yml
index 40fe396..828003a 100644
--- a/spec/c/if/uintptr_max.yml
+++ b/spec/c/if/uintptr_max.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: UINTPTR_MAX
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/uintptr_t.yml b/spec/c/if/uintptr_t.yml
index 34de3a6..22e26b5 100644
--- a/spec/c/if/uintptr_t.yml
+++ b/spec/c/if/uintptr_t.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: stdint
 name: uintptr_t
-reference: https://en.cppreference.com/w/c/types/integer
+references:
+  url: https://en.cppreference.com/w/c/types/integer
 type: interface
diff --git a/spec/c/if/utime.yml b/spec/c/if/utime.yml
index c03247b..4221bbd 100644
--- a/spec/c/if/utime.yml
+++ b/spec/c/if/utime.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: sys-stat
 name: utime
-reference: null
+references: {}
 type: interface
diff --git a/spec/compiler/if/asm.yml b/spec/compiler/if/asm.yml
index b913995..be296db 100644
--- a/spec/compiler/if/asm.yml
+++ b/spec/compiler/if/asm.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __asm__
-reference: null
+references: {}
 type: interface
diff --git a/spec/compiler/if/builtin-choose-expr.yml b/spec/compiler/if/builtin-choose-expr.yml
index a36c6df..4c804a9 100644
--- a/spec/compiler/if/builtin-choose-expr.yml
+++ b/spec/compiler/if/builtin-choose-expr.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __builtin_choose_expr
-reference: null
+references: {}
 type: interface
diff --git a/spec/compiler/if/builtin-expect.yml b/spec/compiler/if/builtin-expect.yml
index 906a076..a3ddfac 100644
--- a/spec/compiler/if/builtin-expect.yml
+++ b/spec/compiler/if/builtin-expect.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __builtin_expect
-reference: null
+references: {}
 type: interface
diff --git a/spec/compiler/if/builtin-return-address.yml b/spec/compiler/if/builtin-return-address.yml
index 0f11d18..0f09739 100644
--- a/spec/compiler/if/builtin-return-address.yml
+++ b/spec/compiler/if/builtin-return-address.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __builtin_return_address
-reference: null
+references: {}
 type: interface
diff --git a/spec/compiler/if/builtin-types-compatible-p.yml b/spec/compiler/if/builtin-types-compatible-p.yml
index 7efe9f8..8fa3da4 100644
--- a/spec/compiler/if/builtin-types-compatible-p.yml
+++ b/spec/compiler/if/builtin-types-compatible-p.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __builtin_types_compatible_p
-reference: null
+references: {}
 type: interface
diff --git a/spec/compiler/if/builtin-unreachable.yml b/spec/compiler/if/builtin-unreachable.yml
index 0744bbb..73bb0aa 100644
--- a/spec/compiler/if/builtin-unreachable.yml
+++ b/spec/compiler/if/builtin-unreachable.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __builtin_unreachable
-reference: null
+references: {}
 type: interface
diff --git a/spec/compiler/if/coverity.yml b/spec/compiler/if/coverity.yml
index 3bb5723..6656ea3 100644
--- a/spec/compiler/if/coverity.yml
+++ b/spec/compiler/if/coverity.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __COVERITY__
-reference: null
+references: {}
 type: interface
diff --git a/spec/compiler/if/cplusplus.yml b/spec/compiler/if/cplusplus.yml
index aa8d638..5c79dcd 100644
--- a/spec/compiler/if/cplusplus.yml
+++ b/spec/compiler/if/cplusplus.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __cplusplus
-reference: null
+references: {}
 type: interface
diff --git a/spec/compiler/if/gnuc.yml b/spec/compiler/if/gnuc.yml
index 740382e..3cd4606 100644
--- a/spec/compiler/if/gnuc.yml
+++ b/spec/compiler/if/gnuc.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __GNUC__
-reference: null
+references: {}
 type: interface
diff --git a/spec/compiler/if/stdc-version.yml b/spec/compiler/if/stdc-version.yml
index e096825..1416ff4 100644
--- a/spec/compiler/if/stdc-version.yml
+++ b/spec/compiler/if/stdc-version.yml
@@ -8,5 +8,6 @@ links:
 - role: interface-placement
   uid: container
 name: __STDC_VERSION__
-reference: https://en.cppreference.com/w/c/preprocessor/replace
+references:
+  url: https://en.cppreference.com/w/c/preprocessor/replace
 type: interface
diff --git a/spec/compiler/if/typeof.yml b/spec/compiler/if/typeof.yml
index bd4ab92..fea12c2 100644
--- a/spec/compiler/if/typeof.yml
+++ b/spec/compiler/if/typeof.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __typeof__
-reference: null
+references: {}
 type: interface
diff --git a/spec/compiler/if/user-label-prefix.yml b/spec/compiler/if/user-label-prefix.yml
index a74d48b..a5525df 100644
--- a/spec/compiler/if/user-label-prefix.yml
+++ b/spec/compiler/if/user-label-prefix.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: __USER_LABEL_PREFIX__
-reference: null
+references: {}
 type: interface
diff --git a/spec/rtems/io/if/getchark.yml b/spec/rtems/io/if/getchark.yml
index 3c70da0..23615c4 100644
--- a/spec/rtems/io/if/getchark.yml
+++ b/spec/rtems/io/if/getchark.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: getchark
-reference: null
+references: {}
 type: interface
diff --git a/spec/rtems/io/if/mount.yml b/spec/rtems/io/if/mount.yml
index 0abe204..ef65d5f 100644
--- a/spec/rtems/io/if/mount.yml
+++ b/spec/rtems/io/if/mount.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-2
 name: mount
-reference: null
+references: {}
 type: interface
diff --git a/spec/rtems/io/if/printk.yml b/spec/rtems/io/if/printk.yml
index 480cba0..4436922 100644
--- a/spec/rtems/io/if/printk.yml
+++ b/spec/rtems/io/if/printk.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: printk
-reference: null
+references: {}
 type: interface
diff --git a/spec/rtems/io/if/putc.yml b/spec/rtems/io/if/putc.yml
index c8c3512..00f6f32 100644
--- a/spec/rtems/io/if/putc.yml
+++ b/spec/rtems/io/if/putc.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: rtems_putc
-reference: null
+references: {}
 type: interface
diff --git a/spec/rtems/io/if/unmount.yml b/spec/rtems/io/if/unmount.yml
index bca0f63..c004503 100644
--- a/spec/rtems/io/if/unmount.yml
+++ b/spec/rtems/io/if/unmount.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-2
 name: unmount
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/context/if/fp-size.yml b/spec/score/context/if/fp-size.yml
index 9ad8402..6a032ec 100644
--- a/spec/score/context/if/fp-size.yml
+++ b/spec/score/context/if/fp-size.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CONTEXT_FP_SIZE
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/all-tasks-are-fp.yml b/spec/score/cpu/if/all-tasks-are-fp.yml
index a9df311..86cb076 100644
--- a/spec/score/cpu/if/all-tasks-are-fp.yml
+++ b/spec/score/cpu/if/all-tasks-are-fp.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_ALL_TASKS_ARE_FP
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/exception-frame-print.yml b/spec/score/cpu/if/exception-frame-print.yml
index 890eb90..bd4c76f 100644
--- a/spec/score/cpu/if/exception-frame-print.yml
+++ b/spec/score/cpu/if/exception-frame-print.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _CPU_Exception_frame_print
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/exception-frame.yml b/spec/score/cpu/if/exception-frame.yml
index d9ca0c2..3a9ef4f 100644
--- a/spec/score/cpu/if/exception-frame.yml
+++ b/spec/score/cpu/if/exception-frame.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_Exception_frame
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/hardware-fp.yml b/spec/score/cpu/if/hardware-fp.yml
index bbbb31a..95b8378 100644
--- a/spec/score/cpu/if/hardware-fp.yml
+++ b/spec/score/cpu/if/hardware-fp.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_HARDWARE_FP
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/heap-alignment.yml b/spec/score/cpu/if/heap-alignment.yml
index 9c558e6..fa4130f 100644
--- a/spec/score/cpu/if/heap-alignment.yml
+++ b/spec/score/cpu/if/heap-alignment.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_HEAP_ALIGNMENT
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/interrupt-frame.yml b/spec/score/cpu/if/interrupt-frame.yml
index f649616..4b2a648 100644
--- a/spec/score/cpu/if/interrupt-frame.yml
+++ b/spec/score/cpu/if/interrupt-frame.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_Interrupt_frame
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/interrupt-stack-alignment.yml b/spec/score/cpu/if/interrupt-stack-alignment.yml
index 081b682..ecaff68 100644
--- a/spec/score/cpu/if/interrupt-stack-alignment.yml
+++ b/spec/score/cpu/if/interrupt-stack-alignment.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_INTERRUPT_STACK_ALIGNMENT
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/isr-passes-frame-pointer.yml b/spec/score/cpu/if/isr-passes-frame-pointer.yml
index 67554cb..2b1933f 100644
--- a/spec/score/cpu/if/isr-passes-frame-pointer.yml
+++ b/spec/score/cpu/if/isr-passes-frame-pointer.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_ISR_PASSES_FRAME_POINTER
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/maximum-processors.yml b/spec/score/cpu/if/maximum-processors.yml
index 35bf149..0c0a98f 100644
--- a/spec/score/cpu/if/maximum-processors.yml
+++ b/spec/score/cpu/if/maximum-processors.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_MAXIMUM_PROCESSORS
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/modes-interrupt-mask.yml b/spec/score/cpu/if/modes-interrupt-mask.yml
index 7feeb7e..499019d 100644
--- a/spec/score/cpu/if/modes-interrupt-mask.yml
+++ b/spec/score/cpu/if/modes-interrupt-mask.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_MODES_INTERRUPT_MASK
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/simple-vectored-interrupts.yml b/spec/score/cpu/if/simple-vectored-interrupts.yml
index 2e65889..7f743e1 100644
--- a/spec/score/cpu/if/simple-vectored-interrupts.yml
+++ b/spec/score/cpu/if/simple-vectored-interrupts.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_SIMPLE_VECTORED_INTERRUPTS
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/sizeof-pointer.yml b/spec/score/cpu/if/sizeof-pointer.yml
index 9694a33..0640583 100644
--- a/spec/score/cpu/if/sizeof-pointer.yml
+++ b/spec/score/cpu/if/sizeof-pointer.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_SIZEOF_POINTER
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/stack-alignment.yml b/spec/score/cpu/if/stack-alignment.yml
index 223f014..deffaa8 100644
--- a/spec/score/cpu/if/stack-alignment.yml
+++ b/spec/score/cpu/if/stack-alignment.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_STACK_ALIGNMENT
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/stack-minimum-size.yml b/spec/score/cpu/if/stack-minimum-size.yml
index aef95f8..dc6dd6d 100644
--- a/spec/score/cpu/if/stack-minimum-size.yml
+++ b/spec/score/cpu/if/stack-minimum-size.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_STACK_MINIMUM_SIZE
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/cpu/if/uint32ptr.yml b/spec/score/cpu/if/uint32ptr.yml
index a40dfed..ade8fa5 100644
--- a/spec/score/cpu/if/uint32ptr.yml
+++ b/spec/score/cpu/if/uint32ptr.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: CPU_Uint32ptr
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/heap/if/information-block.yml b/spec/score/heap/if/information-block.yml
index 45ebf86..bbaaae1 100644
--- a/spec/score/heap/if/information-block.yml
+++ b/spec/score/heap/if/information-block.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: Heap_Information_block
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/interr/if/code.yml b/spec/score/interr/if/code.yml
index 5f2c8d9..5465020 100644
--- a/spec/score/interr/if/code.yml
+++ b/spec/score/interr/if/code.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: Internal_errors_t
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/interr/if/internal-error-rtems-api.yml b/spec/score/interr/if/internal-error-rtems-api.yml
index 3f73fb4..29502b8 100644
--- a/spec/score/interr/if/internal-error-rtems-api.yml
+++ b/spec/score/interr/if/internal-error-rtems-api.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: INTERNAL_ERROR_RTEMS_API
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/interr/if/source-exit.yml b/spec/score/interr/if/source-exit.yml
index d94d2f4..0517c34 100644
--- a/spec/score/interr/if/source-exit.yml
+++ b/spec/score/interr/if/source-exit.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: RTEMS_FATAL_SOURCE_EXIT
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/interr/if/source-panic.yml b/spec/score/interr/if/source-panic.yml
index 5fc4940..925ff7c 100644
--- a/spec/score/interr/if/source-panic.yml
+++ b/spec/score/interr/if/source-panic.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: RTEMS_FATAL_SOURCE_PANIC
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/interr/if/source.yml b/spec/score/interr/if/source.yml
index 72408cc..431eb02 100644
--- a/spec/score/interr/if/source.yml
+++ b/spec/score/interr/if/source.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: Internal_errors_Source
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/interr/if/terminate.yml b/spec/score/interr/if/terminate.yml
index 679f3d6..f4f91fb 100644
--- a/spec/score/interr/if/terminate.yml
+++ b/spec/score/interr/if/terminate.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Terminate
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/handler-entry.yml b/spec/score/isr/if/handler-entry.yml
index a5b236c..c0525c7 100644
--- a/spec/score/isr/if/handler-entry.yml
+++ b/spec/score/isr/if/handler-entry.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: ISR_Handler_entry
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/handler.yml b/spec/score/isr/if/handler.yml
index 5ba519d..28ee039 100644
--- a/spec/score/isr/if/handler.yml
+++ b/spec/score/isr/if/handler.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: ISR_Handler
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/is-in-progress.yml b/spec/score/isr/if/is-in-progress.yml
index 29e7174..480af75 100644
--- a/spec/score/isr/if/is-in-progress.yml
+++ b/spec/score/isr/if/is-in-progress.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _ISR_Is_in_progress
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/level.yml b/spec/score/isr/if/level.yml
index 988d6fd..0645067 100644
--- a/spec/score/isr/if/level.yml
+++ b/spec/score/isr/if/level.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-2
 name: ISR_Level
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/local-disable.yml b/spec/score/isr/if/local-disable.yml
index 3cd33be..d0015d8 100644
--- a/spec/score/isr/if/local-disable.yml
+++ b/spec/score/isr/if/local-disable.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-2
 name: _ISR_Local_disable
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/local-enable.yml b/spec/score/isr/if/local-enable.yml
index 6f1aa46..5eeb187 100644
--- a/spec/score/isr/if/local-enable.yml
+++ b/spec/score/isr/if/local-enable.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-2
 name: _ISR_Local_enable
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/local-flash.yml b/spec/score/isr/if/local-flash.yml
index bd18e51..8a2a008 100644
--- a/spec/score/isr/if/local-flash.yml
+++ b/spec/score/isr/if/local-flash.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-2
 name: _ISR_Local_flash
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-context.yml b/spec/score/isr/if/lock-context.yml
index 4c64dc1..654b1dd 100644
--- a/spec/score/isr/if/lock-context.yml
+++ b/spec/score/isr/if/lock-context.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: ISR_lock_Context
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-control.yml b/spec/score/isr/if/lock-control.yml
index 79fbaf5..97fe7b3 100644
--- a/spec/score/isr/if/lock-control.yml
+++ b/spec/score/isr/if/lock-control.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: ISR_lock_Control
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-declare.yml b/spec/score/isr/if/lock-declare.yml
index 6058b3a..6d1797a 100644
--- a/spec/score/isr/if/lock-declare.yml
+++ b/spec/score/isr/if/lock-declare.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: ISR_LOCK_DECLARE
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-define.yml b/spec/score/isr/if/lock-define.yml
index 79fd76d..b6405ca 100644
--- a/spec/score/isr/if/lock-define.yml
+++ b/spec/score/isr/if/lock-define.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: ISR_LOCK_DEFINE
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-destroy.yml b/spec/score/isr/if/lock-destroy.yml
index 80e830d..b85ec1f 100644
--- a/spec/score/isr/if/lock-destroy.yml
+++ b/spec/score/isr/if/lock-destroy.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: _ISR_lock_Destroy
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-initialize.yml b/spec/score/isr/if/lock-initialize.yml
index 954434d..3842374 100644
--- a/spec/score/isr/if/lock-initialize.yml
+++ b/spec/score/isr/if/lock-initialize.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: _ISR_lock_Initialize
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-initializer.yml b/spec/score/isr/if/lock-initializer.yml
index adc1871..57c533c 100644
--- a/spec/score/isr/if/lock-initializer.yml
+++ b/spec/score/isr/if/lock-initializer.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: ISR_LOCK_INITIALIZER
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-isr-disable-acquire.yml b/spec/score/isr/if/lock-isr-disable-acquire.yml
index a2cb28e..4e2462d 100644
--- a/spec/score/isr/if/lock-isr-disable-acquire.yml
+++ b/spec/score/isr/if/lock-isr-disable-acquire.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: _ISR_lock_ISR_disable_and_acquire
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-isr-disable.yml b/spec/score/isr/if/lock-isr-disable.yml
index 390a909..383dc13 100644
--- a/spec/score/isr/if/lock-isr-disable.yml
+++ b/spec/score/isr/if/lock-isr-disable.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: _ISR_lock_ISR_disable
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-member.yml b/spec/score/isr/if/lock-member.yml
index 01e6216..ea7d652 100644
--- a/spec/score/isr/if/lock-member.yml
+++ b/spec/score/isr/if/lock-member.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: ISR_LOCK_MEMBER
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-reference.yml b/spec/score/isr/if/lock-reference.yml
index 49c299b..592741e 100644
--- a/spec/score/isr/if/lock-reference.yml
+++ b/spec/score/isr/if/lock-reference.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: ISR_LOCK_REFERENCE
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/lock-release-isr-enable.yml b/spec/score/isr/if/lock-release-isr-enable.yml
index f1807f4..91122ce 100644
--- a/spec/score/isr/if/lock-release-isr-enable.yml
+++ b/spec/score/isr/if/lock-release-isr-enable.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-3
 name: _ISR_lock_Release_and_ISR_enable
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/stack-size.yml b/spec/score/isr/if/stack-size.yml
index f4694fa..c71cbfa 100644
--- a/spec/score/isr/if/stack-size.yml
+++ b/spec/score/isr/if/stack-size.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _ISR_Stack_size
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/isr/if/vector-number.yml b/spec/score/isr/if/vector-number.yml
index 89af1df..eb4eccf 100644
--- a/spec/score/isr/if/vector-number.yml
+++ b/spec/score/isr/if/vector-number.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: ISR_Vector_number
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/memory/if/zero-before-use.yml b/spec/score/memory/if/zero-before-use.yml
index 4dde8c3..9310908 100644
--- a/spec/score/memory/if/zero-before-use.yml
+++ b/spec/score/memory/if/zero-before-use.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Memory_Zero_before_use
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/configuration-type.yml b/spec/score/mpci/if/configuration-type.yml
index 26bdba1..99e797a 100644
--- a/spec/score/mpci/if/configuration-type.yml
+++ b/spec/score/mpci/if/configuration-type.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: MPCI_Configuration
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/configuration.yml b/spec/score/mpci/if/configuration.yml
index 5640bee..7e16846 100644
--- a/spec/score/mpci/if/configuration.yml
+++ b/spec/score/mpci/if/configuration.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _MPCI_Configuration
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/control.yml b/spec/score/mpci/if/control.yml
index 6a177f9..78fb019 100644
--- a/spec/score/mpci/if/control.yml
+++ b/spec/score/mpci/if/control.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: MPCI_Control
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/entry.yml b/spec/score/mpci/if/entry.yml
index 6689e83..d7a1e51 100644
--- a/spec/score/mpci/if/entry.yml
+++ b/spec/score/mpci/if/entry.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: MPCI_Entry
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/get-packet-entry.yml b/spec/score/mpci/if/get-packet-entry.yml
index 7e10960..d9396ca 100644
--- a/spec/score/mpci/if/get-packet-entry.yml
+++ b/spec/score/mpci/if/get-packet-entry.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: MPCI_get_packet_entry
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/initialization-entry.yml b/spec/score/mpci/if/initialization-entry.yml
index 143197b..f78d10e 100644
--- a/spec/score/mpci/if/initialization-entry.yml
+++ b/spec/score/mpci/if/initialization-entry.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: MPCI_initialization_entry
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/packet-classes.yml b/spec/score/mpci/if/packet-classes.yml
index d276d67..74d78d0 100644
--- a/spec/score/mpci/if/packet-classes.yml
+++ b/spec/score/mpci/if/packet-classes.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-2
 name: MP_packet_Classes
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/packet-minimum-hetero-conversion.yml b/spec/score/mpci/if/packet-minimum-hetero-conversion.yml
index 4d5a968..b52f066 100644
--- a/spec/score/mpci/if/packet-minimum-hetero-conversion.yml
+++ b/spec/score/mpci/if/packet-minimum-hetero-conversion.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: MP_PACKET_MINIMUN_HETERO_CONVERSION
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/packet-minimum-size.yml b/spec/score/mpci/if/packet-minimum-size.yml
index 8af113b..7bd4771 100644
--- a/spec/score/mpci/if/packet-minimum-size.yml
+++ b/spec/score/mpci/if/packet-minimum-size.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: MP_PACKET_MINIMUM_PACKET_SIZE
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/packet-prefix.yml b/spec/score/mpci/if/packet-prefix.yml
index cbdb33e..a33921b 100644
--- a/spec/score/mpci/if/packet-prefix.yml
+++ b/spec/score/mpci/if/packet-prefix.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-2
 name: MP_packet_Prefix
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/receive-entry.yml b/spec/score/mpci/if/receive-entry.yml
index a65c640..37871f7 100644
--- a/spec/score/mpci/if/receive-entry.yml
+++ b/spec/score/mpci/if/receive-entry.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: MPCI_receive_entry
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/return-packet-entry.yml b/spec/score/mpci/if/return-packet-entry.yml
index 7284597..9965e93 100644
--- a/spec/score/mpci/if/return-packet-entry.yml
+++ b/spec/score/mpci/if/return-packet-entry.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: MPCI_return_packet_entry
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/mpci/if/send-entry.yml b/spec/score/mpci/if/send-entry.yml
index 8d6d845..afe3fe0 100644
--- a/spec/score/mpci/if/send-entry.yml
+++ b/spec/score/mpci/if/send-entry.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: MPCI_send_entry
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/msgq/if/buffer.yml b/spec/score/msgq/if/buffer.yml
index cca64c7..0f0fe22 100644
--- a/spec/score/msgq/if/buffer.yml
+++ b/spec/score/msgq/if/buffer.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-2
 name: CORE_message_queue_Buffer
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/apis-last.yml b/spec/score/object/if/apis-last.yml
index bf089fe..4aefc74 100644
--- a/spec/score/object/if/apis-last.yml
+++ b/spec/score/object/if/apis-last.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_APIS_LAST
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/build-id.yml b/spec/score/object/if/build-id.yml
index 20c36e4..99f5604 100644
--- a/spec/score/object/if/build-id.yml
+++ b/spec/score/object/if/build-id.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Objects_Build_id
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/build-name.yml b/spec/score/object/if/build-name.yml
index 0ba8638..f5f3962 100644
--- a/spec/score/object/if/build-name.yml
+++ b/spec/score/object/if/build-name.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Objects_Build_name
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/get-api.yml b/spec/score/object/if/get-api.yml
index 3453dba..d73cdac 100644
--- a/spec/score/object/if/get-api.yml
+++ b/spec/score/object/if/get-api.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Objects_Get_API
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/get-class.yml b/spec/score/object/if/get-class.yml
index 17a7bb5..036bb34 100644
--- a/spec/score/object/if/get-class.yml
+++ b/spec/score/object/if/get-class.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Objects_Get_class
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/get-index.yml b/spec/score/object/if/get-index.yml
index 47a03c2..93a2b58 100644
--- a/spec/score/object/if/get-index.yml
+++ b/spec/score/object/if/get-index.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Objects_Get_index
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/get-node.yml b/spec/score/object/if/get-node.yml
index d65967f..9359748 100644
--- a/spec/score/object/if/get-node.yml
+++ b/spec/score/object/if/get-node.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Objects_Get_node
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/id-final-index.yml b/spec/score/object/if/id-final-index.yml
index 94c7e27..d7a3a4e 100644
--- a/spec/score/object/if/id-final-index.yml
+++ b/spec/score/object/if/id-final-index.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_ID_FINAL_INDEX
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/id-final.yml b/spec/score/object/if/id-final.yml
index 81496bc..8192809 100644
--- a/spec/score/object/if/id-final.yml
+++ b/spec/score/object/if/id-final.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_ID_FINAL
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/id-initial-index.yml b/spec/score/object/if/id-initial-index.yml
index 090ebd5..32df429 100644
--- a/spec/score/object/if/id-initial-index.yml
+++ b/spec/score/object/if/id-initial-index.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_ID_INITIAL_INDEX
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/id-initial.yml b/spec/score/object/if/id-initial.yml
index e0c7c48..8c429cc 100644
--- a/spec/score/object/if/id-initial.yml
+++ b/spec/score/object/if/id-initial.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_ID_INITIAL
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/id-none.yml b/spec/score/object/if/id-none.yml
index e6099b3..dd46348 100644
--- a/spec/score/object/if/id-none.yml
+++ b/spec/score/object/if/id-none.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_ID_NONE
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/id-of-self.yml b/spec/score/object/if/id-of-self.yml
index 8ac7e88..6376bfb 100644
--- a/spec/score/object/if/id-of-self.yml
+++ b/spec/score/object/if/id-of-self.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_ID_OF_SELF
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/id.yml b/spec/score/object/if/id.yml
index 11b8fc6..554e69e 100644
--- a/spec/score/object/if/id.yml
+++ b/spec/score/object/if/id.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: Objects_Id
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/internal-api.yml b/spec/score/object/if/internal-api.yml
index 1281bcd..aaddd3b 100644
--- a/spec/score/object/if/internal-api.yml
+++ b/spec/score/object/if/internal-api.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_INTERNAL_API
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/is-unlimited.yml b/spec/score/object/if/is-unlimited.yml
index a4b9e2e..b0a8a0d 100644
--- a/spec/score/object/if/is-unlimited.yml
+++ b/spec/score/object/if/is-unlimited.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Objects_Is_unlimited
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/local-node.yml b/spec/score/object/if/local-node.yml
index 56beaf1..ebdb255 100644
--- a/spec/score/object/if/local-node.yml
+++ b/spec/score/object/if/local-node.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Objects_Local_node
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/maximum-per-allocation.yml b/spec/score/object/if/maximum-per-allocation.yml
index 8a7ab7f..6c1eda9 100644
--- a/spec/score/object/if/maximum-per-allocation.yml
+++ b/spec/score/object/if/maximum-per-allocation.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Objects_Maximum_per_allocation
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/search-all-nodes.yml b/spec/score/object/if/search-all-nodes.yml
index 33f70da..6336109 100644
--- a/spec/score/object/if/search-all-nodes.yml
+++ b/spec/score/object/if/search-all-nodes.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_SEARCH_ALL_NODES
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/search-local-nodes.yml b/spec/score/object/if/search-local-nodes.yml
index 1b3be72..cabecee 100644
--- a/spec/score/object/if/search-local-nodes.yml
+++ b/spec/score/object/if/search-local-nodes.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_SEARCH_LOCAL_NODE
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/search-other-nodes.yml b/spec/score/object/if/search-other-nodes.yml
index a135846..150a4f7 100644
--- a/spec/score/object/if/search-other-nodes.yml
+++ b/spec/score/object/if/search-other-nodes.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_SEARCH_OTHER_NODES
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/unlimited-objects.yml b/spec/score/object/if/unlimited-objects.yml
index d588b1f..71c5b48 100644
--- a/spec/score/object/if/unlimited-objects.yml
+++ b/spec/score/object/if/unlimited-objects.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_UNLIMITED_OBJECTS
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/object/if/who-am-i.yml b/spec/score/object/if/who-am-i.yml
index 737945e..2a24d63 100644
--- a/spec/score/object/if/who-am-i.yml
+++ b/spec/score/object/if/who-am-i.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: OBJECTS_WHO_AM_I
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/smp/if/get-current-processor.yml b/spec/score/smp/if/get-current-processor.yml
index 11a3150..b8af8fd 100644
--- a/spec/score/smp/if/get-current-processor.yml
+++ b/spec/score/smp/if/get-current-processor.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _SMP_Get_current_processor
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/smp/if/get-processor-maximum.yml b/spec/score/smp/if/get-processor-maximum.yml
index 82669bd..7c76f12 100644
--- a/spec/score/smp/if/get-processor-maximum.yml
+++ b/spec/score/smp/if/get-processor-maximum.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _SMP_Get_processor_maximum
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/smp/if/lock-acquire.yml b/spec/score/smp/if/lock-acquire.yml
index f8623cb..846c53e 100644
--- a/spec/score/smp/if/lock-acquire.yml
+++ b/spec/score/smp/if/lock-acquire.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-2
 name: _SMP_lock_Acquire
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/smp/if/lock-release.yml b/spec/score/smp/if/lock-release.yml
index d485bc2..cae205f 100644
--- a/spec/score/smp/if/lock-release.yml
+++ b/spec/score/smp/if/lock-release.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header-2
 name: _SMP_lock_Release
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/smp/if/processor-configured-maximum.yml b/spec/score/smp/if/processor-configured-maximum.yml
index 91eac33..830c4db 100644
--- a/spec/score/smp/if/processor-configured-maximum.yml
+++ b/spec/score/smp/if/processor-configured-maximum.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _SMP_Processor_configured_maximum
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/stack/if/allocator-allocate-type.yml b/spec/score/stack/if/allocator-allocate-type.yml
index 83c6320..ee80899 100644
--- a/spec/score/stack/if/allocator-allocate-type.yml
+++ b/spec/score/stack/if/allocator-allocate-type.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: Stack_Allocator_allocate
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/stack/if/allocator-allocate.yml b/spec/score/stack/if/allocator-allocate.yml
index cb179cc..0ee28e6 100644
--- a/spec/score/stack/if/allocator-allocate.yml
+++ b/spec/score/stack/if/allocator-allocate.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Stack_Allocator_allocate
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/stack/if/allocator-avoids-workspace.yml b/spec/score/stack/if/allocator-avoids-workspace.yml
index 81c7040..0db2ea1 100644
--- a/spec/score/stack/if/allocator-avoids-workspace.yml
+++ b/spec/score/stack/if/allocator-avoids-workspace.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Stack_Allocator_avoids_workspace
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/stack/if/allocator-free-type.yml b/spec/score/stack/if/allocator-free-type.yml
index 51c1d9a..f0d025c 100644
--- a/spec/score/stack/if/allocator-free-type.yml
+++ b/spec/score/stack/if/allocator-free-type.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: Stack_Allocator_free
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/stack/if/allocator-free.yml b/spec/score/stack/if/allocator-free.yml
index 4a1b787..deb2257 100644
--- a/spec/score/stack/if/allocator-free.yml
+++ b/spec/score/stack/if/allocator-free.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Stack_Allocator_free
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/stack/if/allocator-initialize-type.yml b/spec/score/stack/if/allocator-initialize-type.yml
index 6dc7d23..1abd773 100644
--- a/spec/score/stack/if/allocator-initialize-type.yml
+++ b/spec/score/stack/if/allocator-initialize-type.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: Stack_Allocator_initialize
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/stack/if/allocator-initialize.yml b/spec/score/stack/if/allocator-initialize.yml
index 998dd64..2381030 100644
--- a/spec/score/stack/if/allocator-initialize.yml
+++ b/spec/score/stack/if/allocator-initialize.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Stack_Allocator_initialize
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/stack/if/minimum-size.yml b/spec/score/stack/if/minimum-size.yml
index 9f0027b..b70b0b4 100644
--- a/spec/score/stack/if/minimum-size.yml
+++ b/spec/score/stack/if/minimum-size.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: STACK_MINIMUM_SIZE
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/status/if/deadlock.yml b/spec/score/status/if/deadlock.yml
index 93f7eac..d6612c5 100644
--- a/spec/score/status/if/deadlock.yml
+++ b/spec/score/status/if/deadlock.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: STATUS_DEADLOCK
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/status/if/successful.yml b/spec/score/status/if/successful.yml
index 62322a1..2b5142c 100644
--- a/spec/score/status/if/successful.yml
+++ b/spec/score/status/if/successful.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: STATUS_SUCCESSFUL
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/status/if/unsatisfied.yml b/spec/score/status/if/unsatisfied.yml
index 50ad478..bf1e4b7 100644
--- a/spec/score/status/if/unsatisfied.yml
+++ b/spec/score/status/if/unsatisfied.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: STATUS_UNSATISFIED
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/thread/if/idle-body.yml b/spec/score/thread/if/idle-body.yml
index 61238a6..56c636a 100644
--- a/spec/score/thread/if/idle-body.yml
+++ b/spec/score/thread/if/idle-body.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Thread_Idle_body
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/thread/if/idle-stack-size.yml b/spec/score/thread/if/idle-stack-size.yml
index 76143cc..43790fd 100644
--- a/spec/score/thread/if/idle-stack-size.yml
+++ b/spec/score/thread/if/idle-stack-size.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Thread_Idle_stack_size
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/fatal.yml b/spec/score/userext/if/fatal.yml
index ed461c3..993e638 100644
--- a/spec/score/userext/if/fatal.yml
+++ b/spec/score/userext/if/fatal.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: User_extensions_fatal_extension
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/initial-count.yml b/spec/score/userext/if/initial-count.yml
index 6e4c782..7c3bc4c 100644
--- a/spec/score/userext/if/initial-count.yml
+++ b/spec/score/userext/if/initial-count.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _User_extensions_Initial_count
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/initial-extensions.yml b/spec/score/userext/if/initial-extensions.yml
index 182762e..4af4fff 100644
--- a/spec/score/userext/if/initial-extensions.yml
+++ b/spec/score/userext/if/initial-extensions.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _User_extensions_Initial_extensions
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/table.yml b/spec/score/userext/if/table.yml
index 1af1698..2f7311d 100644
--- a/spec/score/userext/if/table.yml
+++ b/spec/score/userext/if/table.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: User_extensions_Table
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/thread-begin.yml b/spec/score/userext/if/thread-begin.yml
index 2ac9c6d..9f505cf 100644
--- a/spec/score/userext/if/thread-begin.yml
+++ b/spec/score/userext/if/thread-begin.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: User_extensions_thread_begin_extension
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/thread-create.yml b/spec/score/userext/if/thread-create.yml
index a014c4d..779280f 100644
--- a/spec/score/userext/if/thread-create.yml
+++ b/spec/score/userext/if/thread-create.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: User_extensions_thread_create_extension
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/thread-delete.yml b/spec/score/userext/if/thread-delete.yml
index 8109ae4..dd25534 100644
--- a/spec/score/userext/if/thread-delete.yml
+++ b/spec/score/userext/if/thread-delete.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: User_extensions_thread_delete_extension
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/thread-exitted.yml b/spec/score/userext/if/thread-exitted.yml
index eff1b52..a2f9211 100644
--- a/spec/score/userext/if/thread-exitted.yml
+++ b/spec/score/userext/if/thread-exitted.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: User_extensions_thread_exitted_extension
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/thread-restart.yml b/spec/score/userext/if/thread-restart.yml
index 92888e9..0a3fb73 100644
--- a/spec/score/userext/if/thread-restart.yml
+++ b/spec/score/userext/if/thread-restart.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: User_extensions_thread_restart_extension
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/thread-start.yml b/spec/score/userext/if/thread-start.yml
index 6310cbf..c00d213 100644
--- a/spec/score/userext/if/thread-start.yml
+++ b/spec/score/userext/if/thread-start.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: User_extensions_thread_start_extension
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/thread-switch.yml b/spec/score/userext/if/thread-switch.yml
index cbdee0c..3fd794a 100644
--- a/spec/score/userext/if/thread-switch.yml
+++ b/spec/score/userext/if/thread-switch.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: User_extensions_thread_switch_extension
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/userext/if/thread-terminate.yml b/spec/score/userext/if/thread-terminate.yml
index 5bdbbec..9489e86 100644
--- a/spec/score/userext/if/thread-terminate.yml
+++ b/spec/score/userext/if/thread-terminate.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: User_extensions_thread_terminate_extension
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/watchdog/if/interval.yml b/spec/score/watchdog/if/interval.yml
index 2578749..9155600 100644
--- a/spec/score/watchdog/if/interval.yml
+++ b/spec/score/watchdog/if/interval.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: Watchdog_Interval
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/watchdog/if/microseconds-per-tick.yml b/spec/score/watchdog/if/microseconds-per-tick.yml
index bf724fb..d54b08d 100644
--- a/spec/score/watchdog/if/microseconds-per-tick.yml
+++ b/spec/score/watchdog/if/microseconds-per-tick.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Watchdog_Microseconds_per_tick
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/watchdog/if/nanoseconds-per-tick.yml b/spec/score/watchdog/if/nanoseconds-per-tick.yml
index a72c9fe..6c90a98 100644
--- a/spec/score/watchdog/if/nanoseconds-per-tick.yml
+++ b/spec/score/watchdog/if/nanoseconds-per-tick.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Watchdog_Nanoseconds_per_tick
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/watchdog/if/no-timeout.yml b/spec/score/watchdog/if/no-timeout.yml
index 8d19faa..6355783 100644
--- a/spec/score/watchdog/if/no-timeout.yml
+++ b/spec/score/watchdog/if/no-timeout.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: WATCHDOG_NO_TIMEOUT
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/watchdog/if/ticks-per-second.yml b/spec/score/watchdog/if/ticks-per-second.yml
index 1a15904..7ccbc5a 100644
--- a/spec/score/watchdog/if/ticks-per-second.yml
+++ b/spec/score/watchdog/if/ticks-per-second.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Watchdog_Ticks_per_second
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/watchdog/if/ticks-per-timeslice.yml b/spec/score/watchdog/if/ticks-per-timeslice.yml
index 53b917f..ca0ecd2 100644
--- a/spec/score/watchdog/if/ticks-per-timeslice.yml
+++ b/spec/score/watchdog/if/ticks-per-timeslice.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Watchdog_Ticks_per_timeslice
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/watchdog/if/ticks-since-boot.yml b/spec/score/watchdog/if/ticks-since-boot.yml
index b30f333..4917f79 100644
--- a/spec/score/watchdog/if/ticks-since-boot.yml
+++ b/spec/score/watchdog/if/ticks-since-boot.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Watchdog_Ticks_since_boot
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/wkspace/if/is-unified.yml b/spec/score/wkspace/if/is-unified.yml
index bec0dc6..cce007f 100644
--- a/spec/score/wkspace/if/is-unified.yml
+++ b/spec/score/wkspace/if/is-unified.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Workspace_Is_unified
-reference: null
+references: {}
 type: interface
diff --git a/spec/score/wkspace/if/size.yml b/spec/score/wkspace/if/size.yml
index a2108e8..1c47b28 100644
--- a/spec/score/wkspace/if/size.yml
+++ b/spec/score/wkspace/if/size.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: header
 name: _Workspace_Size
-reference: null
+references: {}
 type: interface
diff --git a/spec/spec/interface-references.yml b/spec/spec/interface-references.yml
new file mode 100644
index 0000000..c3e5a69
--- /dev/null
+++ b/spec/spec/interface-references.yml
@@ -0,0 +1,25 @@
+SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
+copyrights:
+- Copyright (C) 2021 embedded brains GmbH (http://www.embedded-brains.de)
+enabled-by: true
+links:
+- role: spec-member
+  uid: root
+spec-description: null
+spec-example: null
+spec-info:
+  dict:
+    attributes: {}
+    description: |
+      This set of attributes defines references for the interface.
+    generic-attributes:
+      description: |
+        The key defines the reference kind.  The value shall be a kind-specific
+        reference target.
+      key-spec-type: name
+      value-spec-type: str
+    mandatory-attributes: none
+spec-name: Interface References Set
+spec-type: interface-references
+type: spec
+
diff --git a/spec/spec/interface-unspecified.yml b/spec/spec/interface-unspecified.yml
index 3782f5c..c192644 100644
--- a/spec/spec/interface-unspecified.yml
+++ b/spec/spec/interface-unspecified.yml
@@ -1,6 +1,6 @@
 SPDX-License-Identifier: CC-BY-SA-4.0 OR BSD-2-Clause
 copyrights:
-- Copyright (C) 2020 embedded brains GmbH (http://www.embedded-brains.de)
+- Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
 enabled-by: true
 links:
 - role: spec-member
@@ -30,11 +30,9 @@ spec-info:
         description: |
           It shall be the name of the unspecified interface.
         spec-type: str
-      reference:
-        description: |
-          If the value is present, then it shall be an URL to the standard or
-          specification of the interface.
-        spec-type: optional-str
+      references:
+        description: null
+        spec-type: interface-references
     description: |
       This set of attributes specifies an unspecified interface.
     mandatory-attributes: all
diff --git a/spec/user/if/asm.yml b/spec/user/if/asm.yml
index af3c14f..5696e61 100644
--- a/spec/user/if/asm.yml
+++ b/spec/user/if/asm.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: ASM
-reference: null
+references: {}
 type: interface
diff --git a/spec/user/if/false.yml b/spec/user/if/false.yml
index 8485c98..82e5736 100644
--- a/spec/user/if/false.yml
+++ b/spec/user/if/false.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: 'FALSE'
-reference: null
+references: {}
 type: interface
diff --git a/spec/user/if/true.yml b/spec/user/if/true.yml
index be21643..0d30154 100644
--- a/spec/user/if/true.yml
+++ b/spec/user/if/true.yml
@@ -8,5 +8,5 @@ links:
 - role: interface-placement
   uid: container
 name: 'TRUE'
-reference: null
+references: {}
 type: interface



More information about the vc mailing list