Both the architecture spec and language reference use the terms
"runtime" and "build time" (also found one occurrence of "build-time" in
the language reference).
However, these terms do not appear to be defined anywhere and it's not
entirely clear what they mean, at least not in all cases.
This is important because the processing and behaviors of some elements
are defined in terms of "runtime" or "build time" behavior, for example
the navref element, which is "resolved a runtime". Since runtime and
build time could be different for different types of outputs, there is
significant potential ambiguity in what the implications are for a given
element in a given output or processing context.
I think the intent is to distinguish the processing of DITA source into
some rendered form (build time) and the access or delivery of that
rendered form (and, of course, the direct access and delivery of
unmodified DITA content), but it's not always clear what that other
processing is and is it being applied to DITA files or to some rendition
of the DITA files.
For example, if I transform DITA files into a package of Windows help,
is that run time or build time? I think the intent is that it is build
time, but then there is no (DITA-specifiable) runtime behavior because
the result of the build process is not DITA. That is, the DITA spec can
only directly define the processing applied to DITA data, not to data
generated from DITA content. What we can do is define the *intended*
behavior (not processing) of the rendered result, without specifying
when or how that behavior is achieved (which is what talking about
things like "runtime" and "build time" is doing).
In the case of navref, which is where I started to notice this issue,
the text says:
"The