You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2021/02/07 14:53:24 UTC

[isis] branch ISIS-2444 updated (5302b59 -> c39415b)

This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a change to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git.


 discard 5302b59  ISIS-2526: wip, reworking the ref guide services to use generated index.
 discard 740f806  ISIS-2526: reworks annotations half way into using hooks.
 discard 3f39964  ISIS-2526: reorganises UnitFormatter hierarchy
 discard 83c1b4c  ISIS-2526: moves J2adocConverter out of J2AdocContext so can pass in different implementations.
 discard d23286f  ISIS-2526: refactoring is all
 discard 99f040a  ISIS-2526: refactoring is all
 discard eec6932  ISIS-2526: suppresses title
 discard 364ef99  ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'
 discard 7615f18  ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'
 discard 63503d6  ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'
 discard 3dc967b  ISIS-2444: further doc improvements
 discard 45c529a  ISIS-2444: updating docs to use generated index
     add 2738f01  ISIS-2502: working on Exception Recognizer tests for JDO and JPA
     add 41b629a  ISIS-2502: fully implement ExceptionRecognizerTranslate (for integ.testing)
     add 1d4124a  ISIS-2502: programmatic exception translation ... getting closer to a proof of concept:
     add 1aae917  ISIS-2502: proof of concept:
     add b76c773  ISIS-2502: housekeeping
     add 355637c  ISIS-2502: plug the vendor specific 'Datanucleus to JDO standard' Exception translation logic into a new JdoDialect namely DnJdoDialect
     add ff203d0  ISIS-2502: does wire up JDO specific PersistenceExceptionTranslator for Spring
     add d67319d  ISIS-2502: tx service: translate exceptions also during commit or rollback
     add 67a8438  ISIS-2502: ex.transl. support for tx service nextTransaction()
     add 106875a  ISIS-2502: adds test for transaction translation when using @Transactional
     add c01153a  ISIS-2502: commons .. Result<T>: replace ambiguous extraction semantics
     add a43d096  ISIS-2502: additional tests for Result<T>
     add 52da4a5  ISIS-2502: additional tests for Result<T> (2)
     add 6707675  ISIS-2502: additional tests for Result<T> (3)
     add e95acd9  ISIS-2502: cleanup and prepare for merge
     add 3a9bce3  Merge pull request #367 from apache/ISIS-2502-ex.recog
     new 77ae5f7  ISIS-2444: updating docs to use generated index
     new ce649d5  ISIS-2444: further doc improvements
     new 6a006ba  ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'
     new 39c0cef  ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'
     new 74b3cf6  ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'
     new 10601ed  ISIS-2526: suppresses title
     new 9334707  ISIS-2526: refactoring is all
     new 3f0071a  ISIS-2526: refactoring is all
     new e2823cd  ISIS-2526: moves J2adocConverter out of J2AdocContext so can pass in different implementations.
     new 6f8b11e  ISIS-2526: reorganises UnitFormatter hierarchy
     new 7bd4508  ISIS-2526: reworks annotations half way into using hooks.
     new c39415b  ISIS-2526: wip, reworking the ref guide services to use generated index.

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (5302b59)
            \
             N -- N -- N   refs/heads/ISIS-2444 (c39415b)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 12 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../hooks/usage_notes.adoc                         |  13 --
 .../CommandExecutorService/hooks/usage_notes.adoc  |   4 -
 .../pages/CommandSubscriber/hooks/usage_notes.adoc |   4 -
 .../pages/ConfigurationMenu/hooks/usage_notes.adoc |   4 -
 .../hooks/usage_notes.adoc                         |   4 -
 .../ContentMappingService/hooks/usage_notes.adoc   |   4 -
 .../pages/DeepLinkService/hooks/usage_notes.adoc   |   4 -
 .../hooks/usage_notes.adoc                         |   4 -
 .../pages/EmailService/hooks/usage_notes.adoc      |   4 -
 .../ErrorReportingService/hooks/usage_notes.adoc   |   4 -
 .../pages/EventBusService/hooks/usage_notes.adoc   |   4 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/ExceptionRecognizer/hooks/see_also.adoc  |   4 -
 .../ExceptionRecognizer/hooks/usage_notes.adoc     |   4 -
 .../pages/ExceptionRecognizer/implementation.adoc  |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../ExceptionRecognizerService/hooks/see_also.adoc |   4 -
 .../hooks/usage_notes.adoc                         |   4 -
 .../ExceptionRecognizerService/implementation.adoc |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/ExecutionSubscriber/hooks/see_also.adoc  |   4 -
 .../ExecutionSubscriber/hooks/usage_notes.adoc     |   4 -
 .../pages/ExecutionSubscriber/implementation.adoc  |   5 -
 .../FactoryService/hooks/introductory_notes.adoc   |   3 -
 .../pages/FactoryService/hooks/see_also.adoc       |   4 -
 .../pages/FactoryService/hooks/usage_notes.adoc    |   4 -
 .../pages/FactoryService/implementation.adoc       |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/GridLoaderService/hooks/see_also.adoc    |   4 -
 .../pages/GridLoaderService/hooks/usage_notes.adoc |   4 -
 .../pages/GridLoaderService/implementation.adoc    |   5 -
 .../GridService/hooks/introductory_notes.adoc      |   3 -
 .../pages/GridService/hooks/see_also.adoc          |   4 -
 .../pages/GridService/hooks/usage_notes.adoc       |   4 -
 .../pages/GridService/implementation.adoc          |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/GridSystemService/hooks/see_also.adoc    |   4 -
 .../pages/GridSystemService/hooks/usage_notes.adoc |   4 -
 .../pages/GridSystemService/implementation.adoc    |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/HealthCheckService/hooks/see_also.adoc   |   4 -
 .../HealthCheckService/hooks/usage_notes.adoc      |   4 -
 .../pages/HealthCheckService/implementation.adoc   |   5 -
 .../pages/HintStore/hooks/introductory_notes.adoc  |   3 -
 .../applib-svc/pages/HintStore/hooks/see_also.adoc |   4 -
 .../pages/HintStore/hooks/usage_notes.adoc         |   4 -
 .../applib-svc/pages/HintStore/implementation.adoc |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../HomePageResolverService/hooks/see_also.adoc    |   4 -
 .../HomePageResolverService/hooks/usage_notes.adoc |   4 -
 .../HomePageResolverService/implementation.adoc    |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/InteractionContext/hooks/see_also.adoc   |   4 -
 .../InteractionContext/hooks/usage_notes.adoc      |   4 -
 .../pages/InteractionContext/implementation.adoc   |   5 -
 .../JaxbService/hooks/introductory_notes.adoc      |   3 -
 .../pages/JaxbService/hooks/see_also.adoc          |   4 -
 .../pages/JaxbService/hooks/usage_notes.adoc       |   4 -
 .../pages/JaxbService/implementation.adoc          |   5 -
 .../LayoutService/hooks/introductory_notes.adoc    |   3 -
 .../pages/LayoutService/hooks/see_also.adoc        |   4 -
 .../pages/LayoutService/hooks/usage_notes.adoc     |   4 -
 .../pages/LayoutService/implementation.adoc        |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/LayoutServiceMenu/hooks/see_also.adoc    |   4 -
 .../pages/LayoutServiceMenu/hooks/usage_notes.adoc |   4 -
 .../pages/LayoutServiceMenu/implementation.adoc    |   5 -
 .../LocaleProvider/hooks/introductory_notes.adoc   |   3 -
 .../pages/LocaleProvider/hooks/see_also.adoc       |   4 -
 .../pages/LocaleProvider/hooks/usage_notes.adoc    |   4 -
 .../pages/LocaleProvider/implementation.adoc       |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../MenuBarsLoaderService/hooks/see_also.adoc      |   4 -
 .../MenuBarsLoaderService/hooks/usage_notes.adoc   |   4 -
 .../MenuBarsLoaderService/implementation.adoc      |   5 -
 .../MenuBarsService/hooks/introductory_notes.adoc  |   3 -
 .../pages/MenuBarsService/hooks/see_also.adoc      |   4 -
 .../pages/MenuBarsService/hooks/usage_notes.adoc   |   4 -
 .../pages/MenuBarsService/implementation.adoc      |   5 -
 .../MessageService/hooks/introductory_notes.adoc   |   3 -
 .../pages/MessageService/hooks/see_also.adoc       |   4 -
 .../pages/MessageService/hooks/usage_notes.adoc    |   4 -
 .../pages/MessageService/implementation.adoc       |   5 -
 .../MetaModelService/hooks/introductory_notes.adoc |   3 -
 .../pages/MetaModelService/hooks/see_also.adoc     |   4 -
 .../pages/MetaModelService/hooks/usage_notes.adoc  |   4 -
 .../pages/MetaModelService/implementation.adoc     |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/MetaModelServiceMenu/hooks/see_also.adoc |   4 -
 .../MetaModelServiceMenu/hooks/usage_notes.adoc    |   4 -
 .../pages/MetaModelServiceMenu/implementation.adoc |   5 -
 .../MetricsService/hooks/introductory_notes.adoc   |   3 -
 .../pages/MetricsService/hooks/see_also.adoc       |   4 -
 .../pages/MetricsService/hooks/usage_notes.adoc    |   4 -
 .../pages/MetricsService/implementation.adoc       |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/QueryResultsCache/hooks/see_also.adoc    |   4 -
 .../pages/QueryResultsCache/hooks/usage_notes.adoc |   4 -
 .../pages/QueryResultsCache/implementation.adoc    |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../QueryResultsCacheControl/hooks/see_also.adoc   |   4 -
 .../hooks/usage_notes.adoc                         |   4 -
 .../QueryResultsCacheControl/implementation.adoc   |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/RepositoryService/hooks/see_also.adoc    |   4 -
 .../pages/RepositoryService/hooks/usage_notes.adoc |   4 -
 .../pages/RepositoryService/implementation.adoc    |   5 -
 .../RoutingService/hooks/introductory_notes.adoc   |   3 -
 .../pages/RoutingService/hooks/see_also.adoc       |   4 -
 .../pages/RoutingService/hooks/usage_notes.adoc    |   4 -
 .../pages/RoutingService/implementation.adoc       |   5 -
 .../pages/Scratchpad/hooks/introductory_notes.adoc |   3 -
 .../pages/Scratchpad/hooks/see_also.adoc           |   4 -
 .../pages/Scratchpad/hooks/usage_notes.adoc        |   4 -
 .../pages/Scratchpad/implementation.adoc           |   5 -
 .../ServiceInjector/hooks/introductory_notes.adoc  |   3 -
 .../pages/ServiceInjector/hooks/see_also.adoc      |   4 -
 .../pages/ServiceInjector/hooks/usage_notes.adoc   |   4 -
 .../pages/ServiceInjector/implementation.adoc      |   5 -
 .../ServiceRegistry/hooks/introductory_notes.adoc  |   3 -
 .../pages/ServiceRegistry/hooks/see_also.adoc      |   4 -
 .../pages/ServiceRegistry/hooks/usage_notes.adoc   |   4 -
 .../pages/ServiceRegistry/implementation.adoc      |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../SessionLoggingService/hooks/see_also.adoc      |   4 -
 .../SessionLoggingService/hooks/usage_notes.adoc   |   4 -
 .../SessionLoggingService/implementation.adoc      |   5 -
 .../SudoService/hooks/introductory_notes.adoc      |   3 -
 .../pages/SudoService/hooks/see_also.adoc          |   4 -
 .../pages/SudoService/hooks/usage_notes.adoc       |   4 -
 .../pages/SudoService/implementation.adoc          |   5 -
 .../SwaggerService/hooks/introductory_notes.adoc   |   3 -
 .../pages/SwaggerService/hooks/see_also.adoc       |   4 -
 .../pages/SwaggerService/hooks/usage_notes.adoc    |   4 -
 .../pages/SwaggerService/implementation.adoc       |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../TableColumnOrderService/hooks/see_also.adoc    |   4 -
 .../TableColumnOrderService/hooks/usage_notes.adoc |   4 -
 .../TableColumnOrderService/implementation.adoc    |   5 -
 .../TitleService/hooks/introductory_notes.adoc     |   3 -
 .../pages/TitleService/hooks/see_also.adoc         |   4 -
 .../pages/TitleService/hooks/usage_notes.adoc      |   4 -
 .../pages/TitleService/implementation.adoc         |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/TransactionService/hooks/see_also.adoc   |   4 -
 .../TransactionService/hooks/usage_notes.adoc      |   4 -
 .../pages/TransactionService/implementation.adoc   |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/TranslationService/hooks/see_also.adoc   |   4 -
 .../TranslationService/hooks/usage_notes.adoc      |   4 -
 .../pages/TranslationService/implementation.adoc   |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/TranslationsResolver/hooks/see_also.adoc |   4 -
 .../TranslationsResolver/hooks/usage_notes.adoc    |   4 -
 .../pages/TranslationsResolver/implementation.adoc |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/UrlEncodingService/hooks/see_also.adoc   |   4 -
 .../UrlEncodingService/hooks/usage_notes.adoc      |   4 -
 .../pages/UrlEncodingService/implementation.adoc   |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/UserProfileService/hooks/see_also.adoc   |   4 -
 .../UserProfileService/hooks/usage_notes.adoc      |   4 -
 .../pages/UserProfileService/implementation.adoc   |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../UserRegistrationService/hooks/see_also.adoc    |   4 -
 .../UserRegistrationService/hooks/usage_notes.adoc |   4 -
 .../UserRegistrationService/implementation.adoc    |   5 -
 .../UserService/hooks/introductory_notes.adoc      |   3 -
 .../pages/UserService/hooks/see_also.adoc          |   4 -
 .../pages/UserService/hooks/usage_notes.adoc       |   4 -
 .../pages/UserService/implementation.adoc          |   5 -
 .../WrapperFactory/hooks/introductory_notes.adoc   |   3 -
 .../pages/WrapperFactory/hooks/see_also.adoc       |   4 -
 .../pages/WrapperFactory/hooks/usage_notes.adoc    |   4 -
 .../pages/WrapperFactory/implementation.adoc       |   5 -
 .../pages/XmlService/hooks/introductory_notes.adoc |   3 -
 .../pages/XmlService/hooks/see_also.adoc           |   4 -
 .../pages/XmlService/hooks/usage_notes.adoc        |   4 -
 .../pages/XmlService/implementation.adoc           |   5 -
 .../hooks/introductory_notes.adoc                  |   3 -
 .../pages/XmlSnapshotService/hooks/see_also.adoc   |   4 -
 .../XmlSnapshotService/hooks/usage_notes.adoc      |   4 -
 .../pages/XmlSnapshotService/implementation.adoc   |   5 -
 .../pages/about/hooks/introductory_notes.adoc      |   3 -
 .../applib-svc/pages/about/hooks/see_also.adoc     |   4 -
 .../applib-svc/pages/about/hooks/usage_notes.adoc  |   4 -
 .../applib-svc/pages/about/implementation.adoc     |   5 -
 .../isis/applib/services/command/Command.java      |   4 +-
 .../util/schema/MemberExecutionDtoUtils.java       |   4 +-
 .../isis/applib/services/jaxb/JaxbServiceTest.java |   2 +-
 .../org/apache/isis/commons/functional/Result.java |  80 ++++-----
 .../isis/commons/internal/reflection/_Reflect.java |   2 +-
 .../apache/isis/commons/functions/ResultTest.java  | 196 +++++++++++++++++++++
 .../internal/resources/JsonYamlReaderTest.java     |   4 +-
 .../metamodel/commons/CanonicalParameterUtil.java  |   5 +-
 ...ctionInvocationFacetForDomainEventAbstract.java |   3 +-
 .../autocomplete/AutoCompleteFacetAbstract.java    |   2 +-
 .../facets/object/mixin/MixinFacetAbstract.java    |   2 +-
 ...tySetterOrClearFacetForDomainEventAbstract.java |   3 +-
 .../command/CommandExecutorServiceDefault.java     |   2 +-
 .../transaction/TransactionServiceSpring.java      | 113 +++++++++---
 .../commandlog/impl/CommandSubscriberForJdo.java   |   4 +-
 .../extensions/commandlog/impl/jdo/CommandJdo.java |   4 +-
 .../jobcallables/IsTickingClockInitialized.java    |   3 +-
 .../jobcallables/ReplicateAndRunCommands.java      |   9 +-
 .../jdo/datanucleus/IsisModuleJdoDatanucleus.java  |  19 +-
 .../jdo/datanucleus/dialect/DnJdoDialect.java      |  61 +++++++
 .../metamodel/facets/entity/JdoEntityFacet.java    |  11 +-
 .../jpa/applib/services/JpaSupportService.java     |   2 +-
 .../jpa/eclipselink/IsisModuleJpaEclipselink.java  |   9 +-
 .../JdoEntityPropertyChangePublishingTest2.java    |   2 +-
 .../applayer/ApplicationLayerTestFactory.java      |   2 +-
 .../isis/testdomain/jdo/entities/JdoBook.java      |   5 +-
 .../isis/testdomain/jpa/entities/JpaBook.java      |   4 +-
 .../jdo/JdoExceptionTranslationTest.java           | 139 +++++++++++++++
 ...xceptionTranslationTest_usingTransactional.java | 185 +++++++++++++++++++
 .../testdomain/persistence/jdo/JdoQueryTest.java   |  80 ++-------
 .../testdomain/persistence/jdo/_TestFixtures.java  |  84 +++++++++
 .../persistence/jpa/JpaBootstrappingTest.java      |  25 ++-
 .../jpa/JpaExceptionTranslationTest.java           | 140 +++++++++++++++
 ...xceptionTranslationTest_usingTransactional.java | 175 ++++++++++++++++++
 .../testdomain/persistence/jpa/JpaQueryTest.java   |  80 ++-------
 .../testdomain/persistence/jpa/_TestFixtures.java  |  83 +++++++++
 .../shiro/authorization/AuthorizorShiro.java       |   2 +-
 .../applib/fixturescripts/FixtureScripts.java      |   3 +-
 .../applib/ExceptionRecognizerTranslate.java       |  33 ++--
 .../applib/IsisIntegrationTestAbstract.java        |   4 +-
 .../applib/IsisInteractionHandler.java             |  15 +-
 .../integtestsupport/applib/ThrowableMatchers.java |  12 +-
 .../{IsisInteractionHandler.java => _Helper.java}  |  52 ++----
 .../org/apache/isis/tooling/cli/CliConfig.java     |   2 +-
 .../isis/tooling/cli/test/CliConfigTest.java       |   2 +-
 .../serialization/SerializationStrategy.java       |   4 +-
 .../IsisRestfulObjectsInteractionFilter.java       |   3 +-
 234 files changed, 1358 insertions(+), 1079 deletions(-)
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/UserService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/implementation.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/introductory_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/see_also.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/usage_notes.adoc
 delete mode 100644 api/applib/src/main/adoc/modules/applib-svc/pages/about/implementation.adoc
 create mode 100644 commons/src/test/java/org/apache/isis/commons/functions/ResultTest.java
 create mode 100644 persistence/jdo/datanucleus/src/main/java/org/apache/isis/persistence/jdo/datanucleus/dialect/DnJdoDialect.java
 create mode 100644 regressiontests/stable/src/test/java/org/apache/isis/testdomain/persistence/jdo/JdoExceptionTranslationTest.java
 create mode 100644 regressiontests/stable/src/test/java/org/apache/isis/testdomain/persistence/jdo/JdoExceptionTranslationTest_usingTransactional.java
 create mode 100644 regressiontests/stable/src/test/java/org/apache/isis/testdomain/persistence/jdo/_TestFixtures.java
 create mode 100644 regressiontests/stable/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaExceptionTranslationTest.java
 create mode 100644 regressiontests/stable/src/test/java/org/apache/isis/testdomain/persistence/jpa/JpaExceptionTranslationTest_usingTransactional.java
 create mode 100644 regressiontests/stable/src/test/java/org/apache/isis/testdomain/persistence/jpa/_TestFixtures.java
 copy testing/integtestsupport/applib/src/main/java/org/apache/isis/testing/integtestsupport/applib/{IsisInteractionHandler.java => _Helper.java} (54%)


[isis] 11/12: ISIS-2526: reworks annotations half way into using hooks.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 7bd4508124b83abac14f64ac5400c6427868dcdc
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Feb 7 13:57:31 2021 +0000

    ISIS-2526: reworks annotations half way into using hooks.
---
 .../generated/pages/index/applib/Identifier.adoc   |  23 +-
 .../index/applib/RecreatableDomainObject.adoc      |  24 +-
 .../generated/pages/index/applib/ViewModel.adoc    |  24 +-
 .../index/applib/adapters/DefaultsProvider.adoc    |   9 +-
 .../index/applib/adapters/EncoderDecoder.adoc      |  22 +-
 .../pages/index/applib/adapters/Parser.adoc        |  54 +++-
 .../applib/adapters/ValueSemanticsProvider.adoc    |  25 +-
 .../pages/index/applib/annotation/Action.adoc      | 147 ++++++++---
 .../index/applib/annotation/ActionLayout.adoc      |  84 ++++--
 .../index/applib/annotation/BookmarkPolicy.adoc    |  30 ++-
 .../pages/index/applib/annotation/Collection.adoc  |  50 +++-
 .../index/applib/annotation/CollectionLayout.adoc  |  74 ++++--
 .../pages/index/applib/annotation/Defaulted.adoc   |  24 +-
 .../index/applib/annotation/DomainObject.adoc      | 203 +++++++++++----
 .../applib/annotation/DomainObjectLayout.adoc      | 112 ++++++--
 .../index/applib/annotation/DomainService.adoc     |  18 +-
 .../applib/annotation/DomainServiceLayout.adoc     |  16 +-
 .../pages/index/applib/annotation/Editing.adoc     |  34 ++-
 .../pages/index/applib/annotation/Facets.adoc      |  22 +-
 .../index/applib/annotation/LabelPosition.adoc     |  16 +-
 .../pages/index/applib/annotation/MemberOrder.adoc |  26 +-
 .../pages/index/applib/annotation/Nature.adoc      |  53 +++-
 .../index/applib/annotation/NatureOfService.adoc   |  30 ++-
 .../pages/index/applib/annotation/Optionality.adoc |  44 +++-
 .../index/applib/annotation/OrderPrecedence.adoc   |  37 ++-
 .../pages/index/applib/annotation/Parameter.adoc   |  71 +++--
 .../index/applib/annotation/ParameterLayout.adoc   |  70 ++++-
 .../pages/index/applib/annotation/Projecting.adoc  |  16 +-
 .../pages/index/applib/annotation/PromptStyle.adoc |  66 +++--
 .../pages/index/applib/annotation/Property.adoc    | 178 +++++++++----
 .../index/applib/annotation/PropertyLayout.adoc    | 108 ++++++--
 .../pages/index/applib/annotation/Publishing.adoc  |  34 ++-
 .../pages/index/applib/annotation/Redirect.adoc    |  27 +-
 .../pages/index/applib/annotation/RenderDay.adoc   |  16 +-
 .../pages/index/applib/annotation/Repainting.adoc  |  16 +-
 .../pages/index/applib/annotation/SemanticsOf.adoc | 133 +++++++---
 .../pages/index/applib/annotation/Snapshot.adoc    |  23 +-
 .../pages/index/applib/annotation/Title.adoc       |  30 ++-
 .../pages/index/applib/annotation/Value.adoc       |  24 +-
 .../pages/index/applib/annotation/Where.adoc       | 117 ++++++---
 .../client/RepresentationTypeSimplifiedV2.adoc     |  44 +++-
 .../pages/index/applib/client/SuppressionType.adoc |  44 +++-
 .../pages/index/applib/clock/VirtualClock.adoc     |  93 ++++++-
 .../pages/index/applib/events/EventObjectBase.adoc |  23 +-
 .../applib/events/domain/AbstractDomainEvent.adoc  | 102 ++++++--
 .../applib/events/domain/ActionDomainEvent.adoc    |  48 +++-
 .../events/domain/CollectionDomainEvent.adoc       |  27 +-
 .../applib/events/domain/PropertyDomainEvent.adoc  |  11 +-
 .../index/applib/events/ui/AbstractUiEvent.adoc    |  23 +-
 .../index/applib/events/ui/CssClassUiEvent.adoc    |  16 +-
 .../pages/index/applib/events/ui/IconUiEvent.adoc  |  27 +-
 .../index/applib/events/ui/LayoutUiEvent.adoc      |  20 +-
 .../pages/index/applib/events/ui/TitleUiEvent.adoc |  27 +-
 .../applib/exceptions/TranslatableException.adoc   |  22 +-
 .../pages/index/applib/graph/tree/TreeAdapter.adoc |  17 +-
 .../pages/index/applib/graph/tree/TreeNode.adoc    |  33 ++-
 .../pages/index/applib/graph/tree/TreePath.adoc    |  12 +-
 .../applib/layout/component/ActionLayoutData.adoc  |  40 ++-
 .../layout/component/CollectionLayoutData.adoc     |  45 +++-
 .../layout/component/DomainObjectLayoutData.adoc   |  29 ++-
 .../index/applib/layout/component/FieldSet.adoc    |  56 +++-
 .../applib/layout/component/MemberRegion.adoc      |   2 +-
 .../layout/component/PropertyLayoutData.adoc       |  36 ++-
 .../layout/component/ServiceActionLayoutData.adoc  |  40 ++-
 .../applib/layout/grid/bootstrap3/BS3Col.adoc      |  45 +++-
 .../applib/layout/grid/bootstrap3/BS3Element.adoc  |   9 +-
 .../layout/grid/bootstrap3/BS3ElementAbstract.adoc |   9 +-
 .../applib/layout/grid/bootstrap3/BS3Grid.adoc     |   9 +-
 .../applib/layout/grid/bootstrap3/BS3Row.adoc      |  25 +-
 .../layout/grid/bootstrap3/BS3RowContent.adoc      |  18 +-
 .../applib/layout/grid/bootstrap3/BS3Tab.adoc      |  11 +-
 .../applib/layout/grid/bootstrap3/BS3TabGroup.adoc |  38 ++-
 .../applib/layout/grid/bootstrap3/HasCssId.adoc    |   9 +-
 .../applib/layout/menubars/bootstrap3/BS3Menu.adoc |  11 +-
 .../layout/menubars/bootstrap3/BS3MenuBars.adoc    |   9 +-
 .../generated/pages/index/applib/query/Query.adoc  |  23 +-
 .../pages/index/applib/query/QueryRange.adoc       |  44 +++-
 .../index/applib/services/DomainChangeRecord.adoc  |  75 +++++-
 .../services/acceptheader/AcceptHeaderService.adoc |  11 +-
 .../index/applib/services/bookmark/Bookmark.adoc   |  18 +-
 .../applib/services/bookmark/BookmarkService.adoc  |  46 +++-
 .../services/bookmarkui/BookmarkUiService.adoc     |   9 +-
 .../index/applib/services/command/Command.adoc     |  45 +++-
 .../services/command/CommandExecutorService.adoc   |   9 +-
 .../ContentMappingServiceForCommandsDto.adoc       |   9 +-
 .../commanddto/processor/CommandDtoProcessor.adoc  |  13 +-
 .../processor/spi/CommandDtoProcessorService.adoc  |   7 +-
 .../confview/ConfigurationViewService.adoc         |   9 +-
 .../services/conmap/ContentMappingService.adoc     |   9 +-
 .../index/applib/services/email/EmailService.adoc  |   9 +-
 .../index/applib/services/error/SimpleTicket.adoc  |  11 +-
 .../pages/index/applib/services/error/Ticket.adoc  |  53 +++-
 .../services/exceprecog/ExceptionRecognizer.adoc   |   9 +-
 .../exceprecog/ExceptionRecognizerService.adoc     |  21 +-
 .../applib/services/factory/FactoryService.adoc    |  85 +++++-
 .../applib/services/grid/GridLoaderService.adoc    |  43 ++-
 .../index/applib/services/grid/GridService.adoc    |  83 ++++--
 .../applib/services/grid/GridSystemService.adoc    |  16 +-
 .../applib/services/i18n/TranslatableString.adoc   |  57 +++-
 .../applib/services/i18n/TranslationService.adoc   |  33 ++-
 .../applib/services/iactn/ExecutionContext.adoc    |   9 +-
 .../index/applib/services/iactn/Interaction.adoc   |  23 +-
 .../applib/services/iactn/InteractionContext.adoc  |   9 +-
 .../index/applib/services/jaxb/JaxbService.adoc    |  16 +-
 .../applib/services/layout/LayoutService.adoc      |  23 +-
 .../applib/services/linking/DeepLinkService.adoc   |   9 +-
 .../services/menu/MenuBarsLoaderService.adoc       |  16 +-
 .../applib/services/menu/MenuBarsService.adoc      |   9 +-
 .../applib/services/message/MessageService.adoc    |  77 ++++--
 .../index/applib/services/metamodel/BeanSort.adoc  |  75 ++++--
 .../services/metamodel/MetaModelService.adoc       |  29 ++-
 .../applib/services/metrics/MetricsService.adoc    |  28 +-
 .../services/publishing/spi/CommandSubscriber.adoc |  11 +-
 .../publishing/spi/EntityChangesSubscriber.adoc    |   9 +-
 .../spi/EntityPropertyChangeSubscriber.adoc        |   9 +-
 .../publishing/spi/ExecutionSubscriber.adoc        |  11 +-
 .../queryresultscache/QueryResultsCache.adoc       |   9 +-
 .../applib/services/registry/ServiceRegistry.adoc  |  53 +++-
 .../services/repository/RepositoryService.adoc     | 246 +++++++++++++----
 .../applib/services/scratchpad/Scratchpad.adoc     |  16 +-
 .../index/applib/services/sudo/SudoService.adoc    |  23 +-
 .../index/applib/services/title/TitleService.adoc  |  16 +-
 .../index/applib/services/user/RoleMemento.adoc    |  16 +-
 .../index/applib/services/user/UserMemento.adoc    |  52 +++-
 .../index/applib/services/user/UserService.adoc    |  37 ++-
 .../services/userprof/UserProfileService.adoc      |  11 +-
 .../services/userreg/EmailNotificationService.adoc |  11 +-
 .../services/userreg/UserRegistrationService.adoc  |   2 +-
 .../applib/services/wrapper/WrapperFactory.adoc    | 113 ++++++--
 .../applib/services/wrapper/WrappingObject.adoc    |  35 ++-
 .../services/wrapper/control/ControlAbstract.adoc  |   9 +-
 .../services/wrapper/control/ExceptionHandler.adoc |   9 +-
 .../services/wrapper/control/ExecutionMode.adoc    |  18 +-
 .../services/wrapper/control/SyncControl.adoc      |   9 +-
 .../wrapper/events/ActionArgumentEvent.adoc        |   9 +-
 .../wrapper/events/ActionInvocationEvent.adoc      |   9 +-
 .../wrapper/events/CollectionAddToEvent.adoc       |   9 +-
 .../wrapper/events/CollectionMethodEvent.adoc      |  41 ++-
 .../services/wrapper/events/InteractionEvent.adoc  | 107 ++++++--
 .../services/wrapper/events/ParseValueEvent.adoc   |   9 +-
 .../wrapper/events/PropertyModifyEvent.adoc        |   9 +-
 .../wrapper/listeners/InteractionListener.adoc     | 150 ++++++++---
 .../applib/services/xactn/TransactionService.adoc  |  38 ++-
 .../applib/services/xactn/TransactionState.adoc    |  69 ++++-
 .../services/xactn/TransactionalProcessor.adoc     |  56 +++-
 .../index/applib/services/xml/XmlService.adoc      |  30 ++-
 .../services/xmlsnapshot/XmlSnapshotService.adoc   |  23 +-
 .../xmlsnapshot/XmlSnapshotService~Snapshot.adoc   |  16 +-
 .../XmlSnapshotService~Snapshot~Builder.adoc       |  23 +-
 .../snapshot/SnapshottableWithInclusions.adoc      |   9 +-
 .../index/applib/spec/AbstractSpecification.adoc   |   9 +-
 .../index/applib/spec/AbstractSpecification2.adoc  |   9 +-
 .../pages/index/applib/spec/Specification.adoc     |   9 +-
 .../pages/index/applib/spec/Specification2.adoc    |   9 +-
 .../pages/index/applib/util/ReasonBuffer.adoc      |  27 +-
 .../pages/index/applib/util/ReasonBuffer2.adoc     |  46 +++-
 .../pages/index/applib/util/TitleBuffer.adoc       | 196 +++++++++++---
 .../applib/util/schema/InteractionDtoUtils.adoc    |  21 +-
 .../generated/pages/index/applib/value/Blob.adoc   |  29 ++-
 .../generated/pages/index/applib/value/Clob.adoc   |  11 +-
 .../generated/pages/index/applib/value/Markup.adoc |   9 +-
 .../pages/index/commons/collections/Can.adoc       | 220 +++++++++++++---
 .../index/commons/collections/Cardinality.adoc     |  23 +-
 .../pages/index/commons/having/HasUniqueId.adoc    |   9 +-
 .../pages/index/commons/having/HasUsername.adoc    |   9 +-
 .../transaction/TransactionServiceSpring.adoc      |  23 +-
 .../changetracking/EntityChangeTrackerDefault.adoc |   9 +-
 .../events/TransactionAfterCompletionEvent.adoc    |  23 +-
 .../impl/IsisModuleExtCommandLogImpl.adoc          |   9 +-
 .../impl/mixins/HasUniqueId_command.adoc           |   9 +-
 .../primary/restapi/CommandRetrievalService.adoc   |  11 +-
 .../primary/ui/CommandReplayOnPrimaryService.adoc  |  29 ++-
 .../secondary/analyser/CommandReplayAnalyser.adoc  |   7 +-
 .../analysis/CommandReplayAnalysisService.adoc     |   9 +-
 .../secondary/clock/TickingClockService.adoc       |  22 +-
 .../secondary/fetch/CommandFetcher.adoc            |   9 +-
 .../jobcallables/ReplicateAndRunCommands.adoc      |   2 +-
 .../spi/ReplayCommandExecutionController.adoc      |   9 +-
 .../fullcalendar/applib/CalendarEventable.adoc     |  13 +-
 .../fullcalendar/applib/Calendarable.adoc          |  24 +-
 .../quartz/context/JobExecutionData.adoc           |  16 +-
 .../extensions/restclient/ResponseDigest.adoc      |  58 ++++-
 .../extensions/secman/api/SecmanConfiguration.adoc |  18 +-
 .../api/permission/ApplicationPermission.adoc      |   9 +-
 .../api/permission/ApplicationPermissionMode.adoc  |  24 +-
 .../ApplicationPermissionRepository.adoc           |   7 +-
 .../api/permission/ApplicationPermissionRule.adoc  |  22 +-
 .../permission/PermissionsEvaluationService.adoc   |   7 +-
 .../secman/api/role/ApplicationRole.adoc           |   9 +-
 .../secman/api/role/ApplicationRoleRepository.adoc |  14 +-
 .../api/tenancy/ApplicationTenancyEvaluator.adoc   |  11 +-
 .../api/tenancy/ApplicationTenancyRepository.adoc  |  14 +-
 .../extensions/secman/api/tenancy/HasAtPath.adoc   |   4 +-
 .../secman/api/user/ApplicationUser.adoc           |   9 +-
 .../secman/api/user/ApplicationUserRepository.adoc |  14 +-
 .../shiro/IsisModuleExtSecmanShiroRealm.adoc       |   9 +-
 .../shirorealmldap/realm/impl/IsisLdapRealm.adoc   |  23 +-
 .../jdo/applib/integration/JdoSupportService.adoc  |  87 +++++--
 .../changetracking/JdoLifecycleListener.adoc       |  16 +-
 .../jpa/applib/services/JpaSupportService.adoc     |  16 +-
 .../shiro/authorization/AuthorizorShiro.adoc       |  16 +-
 .../index/subdomains/base/applib/Chained.adoc      |  22 +-
 .../applib/services/calendar/CalendarService.adoc  |  14 +-
 .../subdomains/base/applib/utils/TitleBuilder.adoc |  14 +-
 .../base/applib/valuetypes/AbstractInterval.adoc   |  44 +++-
 .../base/applib/valuetypes/LocalDateInterval.adoc  |  16 +-
 .../subdomains/base/applib/valuetypes/VT.adoc      |   7 +-
 .../subdomains/base/applib/with/WithInterval.adoc  |  22 +-
 .../base/applib/with/WithIntervalContiguous.adoc   |  37 ++-
 .../subdomains/excel/applib/dom/ExcelService.adoc  |  22 +-
 .../subdomains/excel/applib/dom/WorksheetSpec.adoc |   7 +-
 .../excel/applib/dom/util/ExcelServiceImpl.adoc    |  92 +++++--
 .../subdomains/excel/applib/dom/util/Mode.adoc     |  16 +-
 .../excel/applib/dom/util/SheetPivoter.adoc        |  11 +-
 .../subdomains/excel/testing/ExcelFixture2.adoc    |   9 +-
 .../testing/fakedata/applib/services/Booleans.adoc |  16 +-
 .../fakedata/applib/services/Collections.adoc      |  26 +-
 .../fakedata/applib/services/FakeDataService.adoc  |   9 +-
 .../integtestsupport/applib/ThrowableMatchers.adoc |   9 +-
 .../applib/validate/DomainModelValidator.adoc      |  23 +-
 .../core/comparable/ComparableContractTester.adoc  |  16 +-
 .../unittestsupport/applib/core/files/Files.adoc   |   7 +-
 .../applib/core/jaxb/JaxbMatchers.adoc             |   9 +-
 .../applib/core/jmocking/Imposterisers.adoc        |   7 +-
 .../core/jmocking/InjectIntoJMockAction.adoc       |   9 +-
 .../applib/core/jmocking/JUnitRuleMockery2.adoc    |  44 +++-
 .../core/soap/SoapEndpointPublishingRule.adoc      |   9 +-
 .../applib/core/soap/SoapEndpointSpec.adoc         |   9 +-
 .../applib/core/utils/IndentPrinter.adoc           |  65 ++++-
 .../markdown/applib/value/Converter.adoc           |  11 +-
 .../restfulobjects/applib/JsonRepresentation.adoc  | 290 +++++++++++++++++----
 .../restfulobjects/applib/LinkRepresentation.adoc  |  11 +-
 .../index/viewer/restfulobjects/applib/Rel.adoc    |   9 +-
 .../restfulobjects/applib/RelDefinition.adoc       |  23 +-
 .../restfulobjects/applib/RepresentationType.adoc  |  35 ++-
 .../restfulobjects/applib/RestfulResponse.adoc     |  11 +-
 .../DomainObjectMemberRepresentation.adoc          |  27 +-
 .../domainobjects/DomainObjectRepresentation.adoc  |  37 ++-
 .../domainobjects/DomainServiceResource.adoc       |  11 +-
 .../applib/homepage/HomePageResource.adoc          |   9 +-
 .../applib/menubars/MenuBarsResource.adoc          |  30 ++-
 .../restfulobjects/applib/user/UserResource.adoc   |   9 +-
 .../restfulobjects/applib/util/JsonMapper.adoc     |   9 +-
 .../restfulobjects/applib/util/JsonNodeUtils.adoc  |  11 +-
 .../restfulobjects/applib/util/MediaTypes.adoc     |  11 +-
 .../RepresentationServiceContentNegotiator.adoc    |  11 +-
 ...entNegotiationServiceForRestfulObjectsV1_0.adoc |  23 +-
 .../ContentNegotiationServiceOrgApacheIsisV2.adoc  |  50 +++-
 .../ContentNegotiationServiceXRoDomainType.adoc    |  26 +-
 .../Action/_summary.adoc}                          |  46 +---
 .../ActionLayout/_summary.adoc                     |  20 ++
 .../Collection/_summary.adoc                       |  13 +
 .../CollectionLayout/_summary.adoc                 |  34 +++
 .../DomainObject/_summary.adoc                     |   6 +
 .../DomainObjectLayout/_summary.adoc               |   0
 .../DomainService/_summary.adoc                    |  11 +
 .../DomainServiceLayout/_summary.adoc              |  14 +
 .../MemberOrder/_summary.adoc                      |  10 +
 .../Parameter/_summary.adoc                        |  32 +++
 .../ParameterLayout/_summary.adoc                  |  45 ++++
 .../Property/_summary.adoc}                        |  64 +----
 .../PropertyLayout/_summary.adoc                   |  60 +++++
 .../main/adoc/modules/applib-ant/pages/Action.adoc |  79 +-----
 .../pages/Action/hooks/examples-and-usage.adoc     |  23 ++
 .../modules/applib-ant/pages/ActionLayout.adoc     |  64 +----
 .../ActionLayout/hooks/examples-and-usage.adoc     |  29 +++
 .../adoc/modules/applib-ant/pages/Collection.adoc  |  54 +---
 .../pages/Collection/hooks/examples-and-usage.adoc |  34 +++
 .../modules/applib-ant/pages/CollectionLayout.adoc |  73 +-----
 .../CollectionLayout/hooks/examples-and-usage.adoc |  29 +++
 .../pages/Column/hooks/examples-and-usage.adoc     |   0
 .../modules/applib-ant/pages/DomainObject.adoc     | 203 +--------------
 .../hooks/examples-and-usage.adoc}                 |  35 +--
 .../applib-ant/pages/DomainObjectLayout.adoc       | 111 +-------
 .../hooks/examples-and-usage.adoc}                 |  76 ++----
 .../modules/applib-ant/pages/DomainService.adoc    |  16 --
 .../DomainService/hooks/examples-and-usage.adoc    |   0
 .../applib-ant/pages/DomainServiceLayout.adoc      |  18 --
 .../hooks/examples-and-usage.adoc                  |   0
 .../main/adoc/modules/applib-ant/pages/Facets.adoc |   2 +-
 .../pages/Facets/hooks/examples-and-usage.adoc     |   3 +
 .../adoc/modules/applib-ant/pages/HomePage.adoc    |  26 +-
 .../pages/HomePage/hooks/examples-and-usage.adoc   |  27 ++
 .../modules/applib-ant/pages/InteractionScope.adoc |  22 +-
 .../InteractionScope/hooks/examples-and-usage.adoc |  20 ++
 .../adoc/modules/applib-ant/pages/MemberOrder.adoc |  27 +-
 .../MemberOrder/hooks/examples-and-usage.adoc      |  10 +
 .../pages/MinLength/hooks/examples-and-usage.adoc  |   0
 .../adoc/modules/applib-ant/pages/Parameter.adoc   |  68 +----
 .../pages/Parameter/hooks/examples-and-usage.adoc  |  30 +++
 .../modules/applib-ant/pages/ParameterLayout.adoc  |  87 +------
 .../ParameterLayout/hooks/examples-and-usage.adoc  |  30 +++
 .../modules/applib-ant/pages/Programmatic.adoc     |  18 +-
 .../Programmatic/hooks/examples-and-usage.adoc     |  20 ++
 .../adoc/modules/applib-ant/pages/Property.adoc    | 126 +--------
 .../pages/Property/hooks/examples-and-usage.adoc   |  37 +++
 .../modules/applib-ant/pages/PropertyLayout.adoc   | 116 +--------
 .../PropertyLayout/hooks/examples-and-usage.adoc   |  37 +++
 .../main/adoc/modules/applib-ant/pages/Title.adoc  |  49 +---
 .../hooks/examples-and-usage.adoc}                 |  10 +-
 .../applib-ant/pages/about/hooks/examples.adoc     |   0
 .../pages/ApplicationFeatureRepository.adoc        |   2 +-
 .../org/apache/isis/applib/annotation/Action.java  |   7 +-
 isis-tooling.yml                                   |   2 +-
 .../org/apache/isis/tooling/cli/CliConfig.java     |   1 -
 .../isis/tooling/cli/projdoc/ProjectDocModel.java  |  16 +-
 .../apache/isis/tooling/j2adoc/J2AdocContext.java  |   3 -
 .../tooling/j2adoc/convert/J2AdocConverter.java    |   7 +-
 .../j2adoc/convert/J2AdocConverterDefault.java     |  46 +++-
 .../tooling/j2adoc/format/MemberFormatter.java     |  79 ++++++
 .../isis/tooling/j2adoc/format/UnitFormatter.java  |  38 +--
 .../j2adoc/format/UnitFormatterAbstract.java       |  39 +--
 .../j2adoc/format/UnitFormatterCompact.java        |  12 +-
 .../format/UnitFormatterWithSourceAndCallouts.java |  11 +-
 .../format/UnitFormatterWithSourceAndSections.java | 145 ++++++++++-
 315 files changed, 7427 insertions(+), 2999 deletions(-)

diff --git a/antora/components/system/modules/generated/pages/index/applib/Identifier.adoc b/antora/components/system/modules/generated/pages/index/applib/Identifier.adoc
index bca9905..2513c56 100644
--- a/antora/components/system/modules/generated/pages/index/applib/Identifier.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/Identifier.adoc
@@ -47,19 +47,36 @@ class Identifier {
 }
 ----
 
-<.> `[teal]#*isPropertyOrCollection*#()` : `boolean`
+<.> xref:#isPropertyOrCollection[isPropertyOrCollection]
 +
 --
 Convenience method.
 --
-<.> `[teal]#*equals*#(Object obj)` : `boolean`
+<.> xref:#equals[equals]
 +
 --
 REVIEW: why not just compare the _#toString()_ representations?
 --
-<.> `[teal]#*_fromIdentityString_*#(String asString)` : `xref:system:generated:index/applib/Identifier.adoc[Identifier]`
+<.> xref:#fromIdentityString[fromIdentityString]
 +
 --
 Factory method.
 --
 
+== Members
+
+[#isPropertyOrCollection]
+=== isPropertyOrCollection
+
+Convenience method.
+
+[#equals]
+=== equals
+
+REVIEW: why not just compare the _#toString()_ representations?
+
+[#fromIdentityString]
+=== fromIdentityString
+
+Factory method.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/RecreatableDomainObject.adoc b/antora/components/system/modules/generated/pages/index/applib/RecreatableDomainObject.adoc
index 71fcb8c..6e32458 100644
--- a/antora/components/system/modules/generated/pages/index/applib/RecreatableDomainObject.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/RecreatableDomainObject.adoc
@@ -15,18 +15,30 @@ interface RecreatableDomainObject {
 }
 ----
 
-<.> `[teal]#*__isis_memento*#()` : `String`
+<.> xref:#__isis_memento[__isis_memento]
 +
 --
 Obtain a memento of the recreatable object.
-
-Typically this will be the identifier of a backing domain entity, but it could also be an arbitrary string, for example a bunch of JSON.
-
-This method is called by the framework in order that the view model may be recreated subsequently through _#__isis_recreate(String)_ .
 --
-<.> `[teal]#*__isis_recreate*#(String memento)` : `void`
+<.> xref:#__isis_recreate[__isis_recreate]
 +
 --
 Used to recreate a recreatable object with a memento obtained from _#__isis_recreate(String)_ .
 --
 
+== Members
+
+[#__isis_memento]
+=== __isis_memento
+
+Obtain a memento of the recreatable object.
+
+Typically this will be the identifier of a backing domain entity, but it could also be an arbitrary string, for example a bunch of JSON.
+
+This method is called by the framework in order that the view model may be recreated subsequently through _#__isis_recreate(String)_ .
+
+[#__isis_recreate]
+=== __isis_recreate
+
+Used to recreate a recreatable object with a memento obtained from _#__isis_recreate(String)_ .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/ViewModel.adoc b/antora/components/system/modules/generated/pages/index/applib/ViewModel.adoc
index 53f5654..deed29b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/ViewModel.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/ViewModel.adoc
@@ -15,18 +15,30 @@ interface ViewModel {
 }
 ----
 
-<.> `[teal]#*viewModelMemento*#()` : `String`
+<.> xref:#viewModelMemento[viewModelMemento]
 +
 --
 Obtain a memento of the view model.
-
-Typically this will be the identifier of a backing domain entity, but it could also be an arbitrary string, for example a bunch of JSON.
-
-This method is called by the framework in order that the view model may be recreated subsequently through _#viewModelInit(String)_ .
 --
-<.> `[teal]#*viewModelInit*#(String memento)` : `void`
+<.> xref:#viewModelInit[viewModelInit]
 +
 --
 Used to re-initialize a view model with a memento obtained from _#viewModelMemento()_ .
 --
 
+== Members
+
+[#viewModelMemento]
+=== viewModelMemento
+
+Obtain a memento of the view model.
+
+Typically this will be the identifier of a backing domain entity, but it could also be an arbitrary string, for example a bunch of JSON.
+
+This method is called by the framework in order that the view model may be recreated subsequently through _#viewModelInit(String)_ .
+
+[#viewModelInit]
+=== viewModelInit
+
+Used to re-initialize a view model with a memento obtained from _#viewModelMemento()_ .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/adapters/DefaultsProvider.adoc b/antora/components/system/modules/generated/pages/index/applib/adapters/DefaultsProvider.adoc
index c5b41d6..c698fd3 100644
--- a/antora/components/system/modules/generated/pages/index/applib/adapters/DefaultsProvider.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/adapters/DefaultsProvider.adoc
@@ -18,9 +18,16 @@ interface DefaultsProvider {
 }
 ----
 
-<.> `[teal]#*getDefaultValue*#()` : `T`
+<.> xref:#getDefaultValue[getDefaultValue]
 +
 --
 The default, if any (as a pojo).
 --
 
+== Members
+
+[#getDefaultValue]
+=== getDefaultValue
+
+The default, if any (as a pojo).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/adapters/EncoderDecoder.adoc b/antora/components/system/modules/generated/pages/index/applib/adapters/EncoderDecoder.adoc
index eff229d..24d192f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/adapters/EncoderDecoder.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/adapters/EncoderDecoder.adoc
@@ -19,18 +19,30 @@ interface EncoderDecoder {
 }
 ----
 
-<.> `[teal]#*toEncodedString*#(T toEncode)` : `String`
+<.> xref:#toEncodedString[toEncodedString]
 +
 --
 Returns the provided object as an encoded string.
-
-Even if the class is self-encodeable, note that this method is always called on a new instance of the object created via the no-arg constructor. That is, the object shouldn't encode itself, it should encode the object provided to it.
 --
-<.> `[teal]#*fromEncodedString*#(String encodedString)` : `T`
+<.> xref:#fromEncodedString[fromEncodedString]
 +
 --
 Converts an encoded string to an instance of the object.
+--
+
+== Members
+
+[#toEncodedString]
+=== toEncodedString
+
+Returns the provided object as an encoded string.
+
+Even if the class is self-encodeable, note that this method is always called on a new instance of the object created via the no-arg constructor. That is, the object shouldn't encode itself, it should encode the object provided to it.
+
+[#fromEncodedString]
+=== fromEncodedString
+
+Converts an encoded string to an instance of the object.
 
 Note that here the implementing class is acting as a factory for itself.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/adapters/Parser.adoc b/antora/components/system/modules/generated/pages/index/applib/adapters/Parser.adoc
index 792427d..b497ae0 100644
--- a/antora/components/system/modules/generated/pages/index/applib/adapters/Parser.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/adapters/Parser.adoc
@@ -33,38 +33,70 @@ interface Parser {
 }
 ----
 
-<.> `[teal]#*parseTextEntry*#(Object contextPojo, String entry)` : `T`
+<.> xref:#parseTextEntry[parseTextEntry]
 +
 --
 Parses a string to an instance of the object.
-
-Note that here the implementing class is acting as a factory for itself.
 --
-<.> `[teal]#*typicalLength*#()` : `int`
+<.> xref:#typicalLength[typicalLength]
 +
 --
 The typical length of objects that can be parsed.
 --
-<.> `[teal]#*displayTitleOf*#(T object)` : `String`
+<.> xref:#displayTitleOf[displayTitleOf]
 +
 --
 The title of the object.
 --
-<.> `[teal]#*displayTitleOf*#(T object, String usingMask)` : `String`
+<.> xref:#displayTitleOf[displayTitleOf]
 +
 --
 The title of the object using a mask.
 --
-<.> `[teal]#*parseableTitleOf*#(T existing)` : `String`
+<.> xref:#parseableTitleOf[parseableTitleOf]
 +
 --
-A title for the object that is valid but which may be easier to edit than the title provided by a `TitleFacet.
-
-The idea here is that the viewer can display a parseable title for an existing object when, for example, the user initially clicks in the field. So, a date might be rendered via a `TitleFacetas `May 2, 2007` , but its editable form might be `20070502` .
+A title for the object that is valid but which may be easier to edit than the title provided by a `TitleFacet` .
 --
-<.> `[teal]#*maxLength*#()` : `int`
+<.> xref:#maxLength[maxLength]
 +
 --
 The max length of objects that can be parsed (if any). A return type of -1 corresponds to unlimited.
 --
 
+== Members
+
+[#parseTextEntry]
+=== parseTextEntry
+
+Parses a string to an instance of the object.
+
+Note that here the implementing class is acting as a factory for itself.
+
+[#typicalLength]
+=== typicalLength
+
+The typical length of objects that can be parsed.
+
+[#displayTitleOf]
+=== displayTitleOf
+
+The title of the object.
+
+[#displayTitleOf]
+=== displayTitleOf
+
+The title of the object using a mask.
+
+[#parseableTitleOf]
+=== parseableTitleOf
+
+A title for the object that is valid but which may be easier to edit than the title provided by a `TitleFacet` .
+
+The idea here is that the viewer can display a parseable title for an existing object when, for example, the user initially clicks in the field. So, a date might be rendered via a `TitleFacet` as `May 2, 2007` , but its editable form might be `20070502` .
+
+[#maxLength]
+=== maxLength
+
+The max length of objects that can be parsed (if any). A return type of -1 corresponds to unlimited.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/adapters/ValueSemanticsProvider.adoc b/antora/components/system/modules/generated/pages/index/applib/adapters/ValueSemanticsProvider.adoc
index 6ed1b8a..e603929 100644
--- a/antora/components/system/modules/generated/pages/index/applib/adapters/ValueSemanticsProvider.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/adapters/ValueSemanticsProvider.adoc
@@ -18,21 +18,38 @@ interface ValueSemanticsProvider {
 }
 ----
 
-<.> `[teal]#*getParser*#()` : `xref:system:generated:index/applib/adapters/Parser.adoc[Parser]<T>`
+<.> xref:#getParser[getParser]
 +
 --
 The xref:system:generated:index/applib/adapters/Parser.adoc[Parser] , if any.
 --
-<.> `[teal]#*getEncoderDecoder*#()` : `xref:system:generated:index/applib/adapters/EncoderDecoder.adoc[EncoderDecoder]<T>`
+<.> xref:#getEncoderDecoder[getEncoderDecoder]
 +
 --
 The xref:system:generated:index/applib/adapters/EncoderDecoder.adoc[EncoderDecoder] , if any.
 --
-<.> `[teal]#*getDefaultsProvider*#()` : `xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsProvider]<T>`
+<.> xref:#getDefaultsProvider[getDefaultsProvider]
 +
 --
 The xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsProvider] , if any.
+--
+
+== Members
+
+[#getParser]
+=== getParser
+
+The xref:system:generated:index/applib/adapters/Parser.adoc[Parser] , if any.
+
+[#getEncoderDecoder]
+=== getEncoderDecoder
+
+The xref:system:generated:index/applib/adapters/EncoderDecoder.adoc[EncoderDecoder] , if any.
+
+[#getDefaultsProvider]
+=== getDefaultsProvider
+
+The xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsProvider] , if any.
 
 If not `null` , implies that the value has (or may have) a default.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Action.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Action.adoc
index adae62d..c1a04b8 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Action.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Action.adoc
@@ -22,42 +22,104 @@ Groups together all domain-specific metadata for an invokable action on a domain
 }
 ----
 
-<.> `[teal]#*_associateWith_*#` : `String`
+<.> xref:#associateWith[associateWith]
 +
 --
 Associates this action with a property or collection, specifying its id.
-
-This is an alternative to using _MemberOrder#name()_ . To specify the order (equivalent to _MemberOrder#sequence()_ }), use _#associateWithSequence()_ .
-
-For example `@Action(associateWith="items", associateWithSequence="2.1")
-
-If an action is associated with a collection, then any matching parameters will have their choices automatically inferred from the collection (if not otherwise specified) and any collection parameter defaults can be specified using checkboxes (in the Wicket UI, at least).
 --
-<.> `[teal]#*_associateWithSequence_*#` : `String`
+<.> xref:#associateWithSequence[associateWithSequence]
 +
 --
 Specifies the sequence/order in the UI for an action that's been associated with a property or collection.
-
-This is an alternative to using _MemberOrder#sequence()_ , but is ignored if _Action#associateWith()_ isn't also specified.
-
-For example `@Action(associateWith="items", associateWithSequence="2.1")
 --
-<.> `[teal]#*_commandDtoProcessor_*#` : `Class<? extends CommandDtoProcessor>`
+<.> xref:#commandDtoProcessor[commandDtoProcessor]
 +
 --
 The xref:system:generated:index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor] to process this command's DTO.
-
-The processor itself is used by xref:system:generated:index/applib/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc[ContentMappingServiceForCommandDto] and xref:system:generated:index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc[ContentMappingServiceForCommandsDto] to dynamically transform the DTOs.
 --
-<.> `[teal]#*_commandPublishing_*#` : `xref:system:generated:index/applib/annotation/Publishing.adoc[Publishing]`
+<.> xref:#commandPublishing[commandPublishing]
 +
 --
 Whether action invocations, captured as xref:system:generated:index/applib/services/command/Command.adoc[Command] s, should be published to xref:system:generated:index/applib/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber] s.
 --
-<.> `[teal]#*_domainEvent_*#` : `Class<? extends ActionDomainEvent<?>>`
+<.> xref:#domainEvent[domainEvent]
++
+--
+Indicates that an invocation of the action should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService_ using a custom (subclass of) xref:system:generated:index/applib/events/domain/ActionDomainEvent.adoc[ActionDomainEvent] .
+--
+<.> xref:#executionPublishing[executionPublishing]
++
+--
+Whether _Execution_ s (triggered by action invocations), should be published to xref:system:generated:index/applib/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber] s.
+--
+<.> xref:#hidden[hidden]
++
+--
+Indicates where (in the UI) the action is not visible to the user.
+--
+<.> xref:#restrictTo[restrictTo]
++
+--
+Whether the action is restricted to prototyping.
+--
+<.> xref:#semantics[semantics]
++
+--
+The action semantics, either _SemanticsOf#SAFE_AND_REQUEST_CACHEABLE cached_ , _SemanticsOf#SAFE safe_ (query-only), _SemanticsOf#IDEMPOTENT idempotent_ or _SemanticsOf#NON_IDEMPOTENT non-idempotent_ .
+--
+<.> xref:#typeOf[typeOf]
++
+--
+The type-of the elements returned by the action.
+--
+<.> xref:#fileAccept[fileAccept]
 +
 --
-Indicates that an invocation of the action should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/domain/ActionDomainEvent.adoc[ActionDomainEvent] .
+For downloading xref:system:generated:index/applib/value/Blob.adoc[Blob] or xref:system:generated:index/applib/value/Clob.adoc[Clob] , optionally restrict the files accepted (eg `.xslx` ).
+--
+
+== Members
+
+[#associateWith]
+=== associateWith
+
+Associates this action with a property or collection, specifying its id.
+
+This is an alternative to using _MemberOrder#name()_ . To specify the order (equivalent to _MemberOrder#sequence()_ }), use _#associateWithSequence()_ .
+
+For example `@Action(associateWith="items", associateWithSequence="2.1")` 
+
+If an action is associated with a collection, then any matching parameters will have their choices automatically inferred from the collection (if not otherwise specified) and any collection parameter defaults can be specified using checkboxes (in the Wicket UI, at least).
+
+[#associateWithSequence]
+=== associateWithSequence
+
+Specifies the sequence/order in the UI for an action that's been associated with a property or collection.
+
+This is an alternative to using _MemberOrder#sequence()_ , but is ignored if _Action#associateWith()_ isn't also specified.
+
+For example:
+
+----
+
+----
+
+[#commandDtoProcessor]
+=== commandDtoProcessor
+
+The xref:system:generated:index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor] to process this command's DTO.
+
+The processor itself is used by xref:system:generated:index/applib/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc[ContentMappingServiceForCommandDto] and xref:system:generated:index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc[ContentMappingServiceForCommandsDto] to dynamically transform the DTOs.
+
+[#commandPublishing]
+=== commandPublishing
+
+Whether action invocations, captured as xref:system:generated:index/applib/services/command/Command.adoc[Command] s, should be published to xref:system:generated:index/applib/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber] s.
+
+[#domainEvent]
+=== domainEvent
+
+Indicates that an invocation of the action should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService_ using a custom (subclass of) xref:system:generated:index/applib/events/domain/ActionDomainEvent.adoc[ActionDomainEvent] .
 
 For example:
 
@@ -73,43 +135,42 @@ public class SomeObject{
 ----
 
 This subclass must provide a no-arg constructor; the fields are set reflectively.
---
-<.> `[teal]#*_executionPublishing_*#` : `xref:system:generated:index/applib/annotation/Publishing.adoc[Publishing]`
-+
---
+
+[#executionPublishing]
+=== executionPublishing
+
 Whether _Execution_ s (triggered by action invocations), should be published to xref:system:generated:index/applib/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber] s.
---
-<.> `[teal]#*_hidden_*#` : `xref:system:generated:index/applib/annotation/Where.adoc[Where]`
-+
---
+
+[#hidden]
+=== hidden
+
 Indicates where (in the UI) the action is not visible to the user.
 
 It is also possible to suppress an action's visibility using _ActionLayout#hidden()_ .
 
 For xref:system:generated:index/applib/annotation/DomainService.adoc[DomainService] actions, the action's visibility is dependent upon its _DomainService#nature() nature_ .
---
-<.> `[teal]#*_restrictTo_*#` : `xref:system:generated:index/applib/annotation/RestrictTo.adoc[RestrictTo]`
-+
---
+
+[#restrictTo]
+=== restrictTo
+
 Whether the action is restricted to prototyping.
 
 By default there are no restrictions, with the action being available in all environments.
---
-<.> `[teal]#*_semantics_*#` : `xref:system:generated:index/applib/annotation/SemanticsOf.adoc[SemanticsOf]`
-+
---
+
+[#semantics]
+=== semantics
+
 The action semantics, either _SemanticsOf#SAFE_AND_REQUEST_CACHEABLE cached_ , _SemanticsOf#SAFE safe_ (query-only), _SemanticsOf#IDEMPOTENT idempotent_ or _SemanticsOf#NON_IDEMPOTENT non-idempotent_ .
---
-<.> `[teal]#*_typeOf_*#` : `Class<?>`
-+
---
+
+[#typeOf]
+=== typeOf
+
 The type-of the elements returned by the action.
---
-<.> `[teal]#*_fileAccept_*#` : `String`
-+
---
+
+[#fileAccept]
+=== fileAccept
+
 For downloading xref:system:generated:index/applib/value/Blob.adoc[Blob] or xref:system:generated:index/applib/value/Clob.adoc[Clob] , optionally restrict the files accepted (eg `.xslx` ).
 
 The value should be of the form "file_extension|audio/*|video/*|image/*|media_type".
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/ActionLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/ActionLayout.adoc
index 2442d86..f4ab0c6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/ActionLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/ActionLayout.adoc
@@ -21,60 +21,112 @@ Layout hints for actions.
 }
 ----
 
-<.> `[teal]#*_bookmarking_*#` : `xref:system:generated:index/applib/annotation/BookmarkPolicy.adoc[BookmarkPolicy]`
+<.> xref:#bookmarking[bookmarking]
 +
 --
 Whether (and how) this action can be bookmarked in the UI.
-
-For bookmarkable actions, either _org.apache.isis.applib.annotation.BookmarkPolicy#AS_ROOT_ and _org.apache.isis.applib.annotation.BookmarkPolicy#AS_CHILD_ can be used (they are treated identically).
 --
-<.> `[teal]#*_cssClass_*#` : `String`
+<.> xref:#cssClass[cssClass]
 +
 --
 Indicates the css class that an action should have.
-
-For the Wicket viewer, this can be a bootstrap class such as `btn-info.
 --
-<.> `[teal]#*_cssClassFa_*#` : `String`
+<.> xref:#cssClassFa[cssClassFa]
 +
 --
 Indicates theFont AwesomeCSS class to decorate an action (button or menu item).
 --
-<.> `[teal]#*_cssClassFaPosition_*#` : `xref:system:generated:index/applib/layout/component/CssClassFaPosition.adoc[CssClassFaPosition]`
+<.> xref:#cssClassFaPosition[cssClassFaPosition]
 +
 --
 Indicates the position of theFont Awesomeicon. The icon could be rendered on the left or the right of the action button
 --
-<.> `[teal]#*_describedAs_*#` : `String`
+<.> xref:#describedAs[describedAs]
 +
 --
 Description of this action, eg to be rendered in a tooltip.
 --
-<.> `[teal]#*_hidden_*#` : `xref:system:generated:index/applib/annotation/Where.adoc[Where]`
+<.> xref:#hidden[hidden]
 +
 --
 Indicates where in the UI the action should _not_ not be visible.
 --
-<.> `[teal]#*_named_*#` : `String`
+<.> xref:#named[named]
 +
 --
 Name of this action (overriding the name derived from its name in code).
 --
-<.> `[teal]#*_position_*#` : `Position`
+<.> xref:#position[position]
 +
 --
 For actions that are associated with a property, indicates the positioning of the action's button relative to the property.
-
-Ignored if the action has not been associated with a property.
 --
-<.> `[teal]#*_promptStyle_*#` : `xref:system:generated:index/applib/annotation/PromptStyle.adoc[PromptStyle]`
+<.> xref:#promptStyle[promptStyle]
 +
 --
 How this parameters for this action are prompted, either _PromptStyle#DIALOG dialog_ or _PromptStyle#INLINE inline_ .
 --
-<.> `[teal]#*_redirectPolicy_*#` : `xref:system:generated:index/applib/annotation/Redirect.adoc[Redirect]`
+<.> xref:#redirectPolicy[redirectPolicy]
 +
 --
 If the action returns its target, then determines whether to update the page or instead to redirect (forcing a re-rendering of a new page).
 --
 
+== Members
+
+[#bookmarking]
+=== bookmarking
+
+Whether (and how) this action can be bookmarked in the UI.
+
+For bookmarkable actions, either _org.apache.isis.applib.annotation.BookmarkPolicy#AS_ROOT_ and _org.apache.isis.applib.annotation.BookmarkPolicy#AS_CHILD_ can be used (they are treated identically).
+
+[#cssClass]
+=== cssClass
+
+Indicates the css class that an action should have.
+
+For the Wicket viewer, this can be a bootstrap class such as `btn-info` .
+
+[#cssClassFa]
+=== cssClassFa
+
+Indicates theFont AwesomeCSS class to decorate an action (button or menu item).
+
+[#cssClassFaPosition]
+=== cssClassFaPosition
+
+Indicates the position of theFont Awesomeicon. The icon could be rendered on the left or the right of the action button
+
+[#describedAs]
+=== describedAs
+
+Description of this action, eg to be rendered in a tooltip.
+
+[#hidden]
+=== hidden
+
+Indicates where in the UI the action should _not_ not be visible.
+
+[#named]
+=== named
+
+Name of this action (overriding the name derived from its name in code).
+
+[#position]
+=== position
+
+For actions that are associated with a property, indicates the positioning of the action's button relative to the property.
+
+Ignored if the action has not been associated with a property.
+
+[#promptStyle]
+=== promptStyle
+
+How this parameters for this action are prompted, either _PromptStyle#DIALOG dialog_ or _PromptStyle#INLINE inline_ .
+
+[#redirectPolicy]
+=== redirectPolicy
+
+If the action returns its target, then determines whether to update the page or instead to redirect (forcing a re-rendering of a new page).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/BookmarkPolicy.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/BookmarkPolicy.adoc
index 9f9db31..4bedcdd 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/BookmarkPolicy.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/BookmarkPolicy.adoc
@@ -13,24 +13,46 @@ enum BookmarkPolicy {
 }
 ----
 
-<.> `[teal]#*_AS_ROOT_*#`
+<.> xref:#AS_ROOT[AS_ROOT]
 +
 --
 Can be bookmarked, and is a top-level 'root' (or parent) bookmark.
 --
-<.> `[teal]#*_AS_CHILD_*#`
+<.> xref:#AS_CHILD[AS_CHILD]
 +
 --
 Can be bookmarked, but only as a child or some other parent/root bookmark
 --
-<.> `[teal]#*_NEVER_*#`
+<.> xref:#NEVER[NEVER]
 +
 --
 An unimportant entity that should never be bookmarked.
 --
-<.> `[teal]#*_NOT_SPECIFIED_*#`
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
 --
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
 --
 
+== Members
+
+[#AS_ROOT]
+=== AS_ROOT
+
+Can be bookmarked, and is a top-level 'root' (or parent) bookmark.
+
+[#AS_CHILD]
+=== AS_CHILD
+
+Can be bookmarked, but only as a child or some other parent/root bookmark
+
+[#NEVER]
+=== NEVER
+
+An unimportant entity that should never be bookmarked.
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
+Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Collection.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Collection.adoc
index a06be86..7bd0540 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Collection.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Collection.adoc
@@ -15,10 +15,33 @@ Domain semantics for domain object collection.
 }
 ----
 
-<.> `[teal]#*_domainEvent_*#` : `Class<? extends CollectionDomainEvent<?,?>>`
+<.> xref:#domainEvent[domainEvent]
 +
 --
 Indicates that changes to the collection that should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/domain/CollectionDomainEvent.adoc[CollectionDomainEvent] .
+--
+<.> xref:#editing[editing]
++
+--
+Whether the properties of this domain object can be edited, or collections of this object be added to/removed from.
+--
+<.> xref:#hidden[hidden]
++
+--
+Indicates when the collection is not visible to the user.
+--
+<.> xref:#typeOf[typeOf]
++
+--
+The type-of the elements held within the collection.
+--
+
+== Members
+
+[#domainEvent]
+=== domainEvent
+
+Indicates that changes to the collection that should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/domain/CollectionDomainEvent.adoc[CollectionDomainEvent] .
 
 For example:
 
@@ -33,22 +56,21 @@ public class Order {
 ----
 
 This subclass must provide a no-arg constructor; the fields are set reflectively.
---
-<.> `[teal]#*_editing_*#` : `xref:system:generated:index/applib/annotation/Editing.adoc[Editing]`
-+
---
+
+[#editing]
+=== editing
+
 Whether the properties of this domain object can be edited, or collections of this object be added to/removed from.
 
 Note that non-editable objects can nevertheless have actions invoked upon them.
---
-<.> `[teal]#*_hidden_*#` : `xref:system:generated:index/applib/annotation/Where.adoc[Where]`
-+
---
+
+[#hidden]
+=== hidden
+
 Indicates when the collection is not visible to the user.
---
-<.> `[teal]#*_typeOf_*#` : `Class<?>`
-+
---
+
+[#typeOf]
+=== typeOf
+
 The type-of the elements held within the collection.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/CollectionLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/CollectionLayout.adoc
index 9368b53..1255a62 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/CollectionLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/CollectionLayout.adoc
@@ -20,52 +20,95 @@ Class sortedBy() default Comparator.class;     // <.>
 }
 ----
 
-<.> `[teal]#*_cssClass_*#` : `String`
+<.> xref:#cssClass[cssClass]
 +
 --
 Indicates the css class that a collection should have.
 --
-<.> `[teal]#*_defaultView_*#` : `String`
+<.> xref:#defaultView[defaultView]
 +
 --
 Indicates which view is used by default to render the collection.
-
-The only view available within the core framework is "table". However, other views can be added as extensions. Examples are those provided by the (non-ASF)Isis addons, eg "excel", "calendar" and "map".
 --
-<.> `[teal]#*_describedAs_*#` : `String`
+<.> xref:#describedAs[describedAs]
 +
 --
 Description of this collection, eg to be rendered in a tooltip.
 --
-<.> `[teal]#*_hidden_*#` : `xref:system:generated:index/applib/annotation/Where.adoc[Where]`
+<.> xref:#hidden[hidden]
 +
 --
 Indicates where in the UI the collection should _not_ not be visible.
-
-Only _Where#NOWHERE NOWHERE_ or _Where#EVERYWHERE EVERYWHERE_ / _Where#ANYWHERE ANYWHERE_ apply for collections.
 --
-<.> `[teal]#*_named_*#` : `String`
+<.> xref:#named[named]
 +
 --
 Name of this collection (overriding the name derived from its name in code).
 --
-<.> `[teal]#*_namedEscaped_*#` : `boolean`
+<.> xref:#namedEscaped[namedEscaped]
 +
 --
 A flag indicating whether the value of _#named()_ should be HTML escaped or not.
 --
-<.> `[teal]#*_paged_*#` : `int`
+<.> xref:#paged[paged]
 +
 --
 The page size for instances of this class when rendered within a table.
+--
+<.> xref:#sortedBy[sortedBy]
++
+--
+Indicates that the elements in a ( _java.util.SortedSet_ ) collection should be sorted according to a different order than the natural sort order, as defined by the specified _java.util.Comparator_ .
+--
+
+== Members
+
+[#cssClass]
+=== cssClass
+
+Indicates the css class that a collection should have.
+
+[#defaultView]
+=== defaultView
+
+Indicates which view is used by default to render the collection.
+
+The only view available within the core framework is "table". However, other views can be added as extensions. Examples are those provided by the (non-ASF)Isis addons, eg "excel", "calendar" and "map".
+
+[#describedAs]
+=== describedAs
+
+Description of this collection, eg to be rendered in a tooltip.
+
+[#hidden]
+=== hidden
+
+Indicates where in the UI the collection should _not_ not be visible.
+
+Only _Where#NOWHERE NOWHERE_ or _Where#EVERYWHERE EVERYWHERE_ / _Where#ANYWHERE ANYWHERE_ apply for collections.
+
+[#named]
+=== named
+
+Name of this collection (overriding the name derived from its name in code).
+
+[#namedEscaped]
+=== namedEscaped
+
+A flag indicating whether the value of _#named()_ should be HTML escaped or not.
+
+[#paged]
+=== paged
+
+The page size for instances of this class when rendered within a table.
 
 If annotated on a collection, then the page size refers to parented collections (eg `Order#lineItems` ).
 
 If annotated on a type, then the page size refers to standalone collections (eg as returned from a repository query).
---
-<.> `[teal]#*_sortedBy_*#` : `Class`
-+
---
+
+[#sortedBy]
+=== sortedBy
+
 Indicates that the elements in a ( _java.util.SortedSet_ ) collection should be sorted according to a different order than the natural sort order, as defined by the specified _java.util.Comparator_ .
 
 Whenever there is a collection of type _java.util.SortedSet_ , the domain entity referenced is expected to implement _Comparable_ , ie to have a natural ordering. In effect tis means that all domain entities should provide a natural ordering.
@@ -73,5 +116,4 @@ Whenever there is a collection of type _java.util.SortedSet_ , the domain entity
 However, in some circumstances the ordering of collection may be different to the entity's natural ordering. For example, the entity may represent an interval of time sorted by its _startDate_ ascending, but the collection may wish to sort by _startDate_ .
 
 The purpose of this annotation is to provide a _java.util.Comparator_ such that the collection may be sorted in an order more suitable to the context.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Defaulted.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Defaulted.adoc
index 76e2772..fac868b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Defaulted.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Defaulted.adoc
@@ -15,20 +15,32 @@ This possibly seems a little tortuous. The more obvious means to provide a defau
 }
 ----
 
-<.> `[teal]#*_defaultsProviderName_*#` : `String`
+<.> xref:#defaultsProviderName[defaultsProviderName]
 +
 --
 The fully qualified name of a class that implements the xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsProvider] interface.
+--
+<.> xref:#defaultsProviderClass[defaultsProviderClass]
++
+--
+As per _#defaultsProviderName()_ , but specifying a class literal rather than a fully qualified class name.
+--
+
+== Members
+
+[#defaultsProviderName]
+=== defaultsProviderName
+
+The fully qualified name of a class that implements the xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsProvider] interface.
 
 This is optional because some implementations may pick up the defaults provider via a configuration file, or via the equivalent _#defaultsProviderClass()_ .
 
 Implementation note: the default value provided here is simply an empty string because `null` is not a valid default.
---
-<.> `[teal]#*_defaultsProviderClass_*#` : `Class<?>`
-+
---
+
+[#defaultsProviderClass]
+=== defaultsProviderClass
+
 As per _#defaultsProviderName()_ , but specifying a class literal rather than a fully qualified class name.
 
 Implementation note: the default value provided here is simply the xref:system:generated:index/applib/annotation/Defaulted.adoc[Defaulted] 's own class, because `null` is not a valid default.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObject.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObject.adoc
index 7e77608..669eef8 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObject.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObject.adoc
@@ -30,116 +30,214 @@ Domain semantics for domain objects (entities and view models; for services see
 }
 ----
 
-<.> `[teal]#*_autoCompleteRepository_*#` : `Class<?>`
+<.> xref:#autoCompleteRepository[autoCompleteRepository]
 +
 --
-The class of the domain service that provides an `autoComplete(String)method.
-
-It is sufficient to specify an interface rather than a concrete type.
+The class of the domain service that provides an `autoComplete(String)` method.
 --
-<.> `[teal]#*_autoCompleteAction_*#` : `String`
+<.> xref:#autoCompleteAction[autoCompleteAction]
 +
 --
 The method (despite its name, not necessarily an action) to use in order to perform the auto-complete search (defaults to "autoComplete").
-
-The method is required to accept a single string parameter, and must return a list of the domain type.
 --
-<.> `[teal]#*_bounding_*#` : `xref:system:generated:index/applib/annotation/Bounding.adoc[Bounding]`
+<.> xref:#bounding[bounding]
 +
 --
 Indicates that the class has a bounded, or finite, set of instances.
-
-Takes precedence over auto-complete.
-
-Note: this replaces bounded=true|false prior to v2.x
 --
-<.> `[teal]#*_editing_*#` : `xref:system:generated:index/applib/annotation/Editing.adoc[Editing]`
+<.> xref:#editing[editing]
 +
 --
 Whether the properties of this domain object can be edited, or collections of this object be added to/removed from.
-
-Note that non-editable objects can nevertheless have actions invoked upon them.
 --
-<.> `[teal]#*_editingDisabledReason_*#` : `String`
+<.> xref:#editingDisabledReason[editingDisabledReason]
 +
 --
 If _#editing()_ is set to _Editing#DISABLED_ , then the reason to provide to the user as to why the object's properties cannot be edited/collections modified.
 --
-<.> `[teal]#*_entityChangePublishing_*#` : `xref:system:generated:index/applib/annotation/Publishing.adoc[Publishing]`
+<.> xref:#entityChangePublishing[entityChangePublishing]
 +
 --
 Whether entity changes should be published to _org.apache.isis.applib.services.publishing.spi.EntityPropertyChangeSubscriber_ s and whether entity changes, captured as _org.apache.isis.applib.services.publishing.spi.EntityChanges_ , should be dispatched to _org.apache.isis.applib.services.publishing.spi.EntityChangesSubscriber_ s.
 --
-<.> `[teal]#*_mixinMethod_*#` : `String`
+<.> xref:#mixinMethod[mixinMethod]
 +
 --
 Applicable only if _#nature()_ is _Nature#MIXIN_ .
 --
-<.> `[teal]#*_nature_*#` : `xref:system:generated:index/applib/annotation/Nature.adoc[Nature]`
+<.> xref:#nature[nature]
 +
 --
 The nature of this domain object.
 --
-<.> `[teal]#*_objectType_*#` : `String`
+<.> xref:#objectType[objectType]
 +
 --
 Provides a unique abbreviation for the object type, eg "customer.Customer" for Customer.
-
-This value, if specified, is used in the serialized form of the object's OID. An OID is used by the framework to unique identify an object over time (same concept as a URN).
 --
-<.> `[teal]#*_createdLifecycleEvent_*#` : `Class<? extends ObjectCreatedEvent<?>>`
+<.> xref:#createdLifecycleEvent[createdLifecycleEvent]
 +
 --
 Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectCreatedEvent.adoc[ObjectCreatedEvent] .
-
-This subclass must provide a no-arg constructor; the fields are set reflectively.
 --
-<.> `[teal]#*_persistingLifecycleEvent_*#` : `Class<? extends ObjectPersistingEvent<?>>`
+<.> xref:#persistingLifecycleEvent[persistingLifecycleEvent]
 +
 --
 Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectPersistingEvent.adoc[ObjectPersistingEvent] .
-
-This subclass must provide a no-arg constructor; the fields are set reflectively.
 --
-<.> `[teal]#*_persistedLifecycleEvent_*#` : `Class<? extends ObjectPersistedEvent<?>>`
+<.> xref:#persistedLifecycleEvent[persistedLifecycleEvent]
 +
 --
 Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectPersistedEvent.adoc[ObjectPersistedEvent] .
-
-This subclass must provide a no-arg constructor; the fields are set reflectively.
 --
-<.> `[teal]#*_loadedLifecycleEvent_*#` : `Class<? extends ObjectLoadedEvent<?>>`
+<.> xref:#loadedLifecycleEvent[loadedLifecycleEvent]
 +
 --
 Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectLoadedEvent.adoc[ObjectLoadedEvent] .
-
-This subclass must provide a no-arg constructor; the fields are set reflectively.
 --
-<.> `[teal]#*_updatingLifecycleEvent_*#` : `Class<? extends ObjectUpdatingEvent<?>>`
+<.> xref:#updatingLifecycleEvent[updatingLifecycleEvent]
 +
 --
 Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectUpdatingEvent.adoc[ObjectUpdatingEvent] .
-
-This subclass must provide a no-arg constructor; the fields are set reflectively.
 --
-<.> `[teal]#*_updatedLifecycleEvent_*#` : `Class<? extends ObjectUpdatedEvent<?>>`
+<.> xref:#updatedLifecycleEvent[updatedLifecycleEvent]
 +
 --
 Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectUpdatedEvent.adoc[ObjectUpdatedEvent] .
-
-This subclass must provide a no-arg constructor; the fields are set reflectively.
 --
-<.> `[teal]#*_removingLifecycleEvent_*#` : `Class<? extends ObjectRemovingEvent<?>>`
+<.> xref:#removingLifecycleEvent[removingLifecycleEvent]
 +
 --
 Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectRemovingEvent.adoc[ObjectRemovingEvent] .
-
-This subclass must provide a no-arg constructor; the fields are set reflectively.
 --
-<.> `[teal]#*_actionDomainEvent_*#` : `Class<? extends ActionDomainEvent<?>>`
+<.> xref:#actionDomainEvent[actionDomainEvent]
 +
 --
 Indicates that an invocation of _any_ action of the domain object (that do not themselves specify their own `@Action(domainEvent=...)` should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using the specified custom (subclass of) xref:system:generated:index/applib/events/domain/ActionDomainEvent.adoc[ActionDomainEvent] .
+--
+<.> xref:#propertyDomainEvent[propertyDomainEvent]
++
+--
+Indicates that changes to _any_ property of the domain object (that do not themselves specify their own `@Property(domainEvent=...)` should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using the specified custom (subclass of) xref:system:generated:index/applib/events/domain/PropertyDomainEvent.adoc[PropertyDomainEvent] .
+--
+<.> xref:#collectionDomainEvent[collectionDomainEvent]
++
+--
+Indicates that changes to _any_ collection of the domain object (that do not themselves specify their own `@Collection(domainEvent=...)` should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/domain/CollectionDomainEvent.adoc[CollectionDomainEvent] .
+--
+
+== Members
+
+[#autoCompleteRepository]
+=== autoCompleteRepository
+
+The class of the domain service that provides an `autoComplete(String)` method.
+
+It is sufficient to specify an interface rather than a concrete type.
+
+[#autoCompleteAction]
+=== autoCompleteAction
+
+The method (despite its name, not necessarily an action) to use in order to perform the auto-complete search (defaults to "autoComplete").
+
+The method is required to accept a single string parameter, and must return a list of the domain type.
+
+[#bounding]
+=== bounding
+
+Indicates that the class has a bounded, or finite, set of instances.
+
+Takes precedence over auto-complete.
+
+Note: this replaces bounded=true|false prior to v2.x
+
+[#editing]
+=== editing
+
+Whether the properties of this domain object can be edited, or collections of this object be added to/removed from.
+
+Note that non-editable objects can nevertheless have actions invoked upon them.
+
+[#editingDisabledReason]
+=== editingDisabledReason
+
+If _#editing()_ is set to _Editing#DISABLED_ , then the reason to provide to the user as to why the object's properties cannot be edited/collections modified.
+
+[#entityChangePublishing]
+=== entityChangePublishing
+
+Whether entity changes should be published to _org.apache.isis.applib.services.publishing.spi.EntityPropertyChangeSubscriber_ s and whether entity changes, captured as _org.apache.isis.applib.services.publishing.spi.EntityChanges_ , should be dispatched to _org.apache.isis.applib.services.publishing.spi.EntityChangesSubscriber_ s.
+
+[#mixinMethod]
+=== mixinMethod
+
+Applicable only if _#nature()_ is _Nature#MIXIN_ .
+
+[#nature]
+=== nature
+
+The nature of this domain object.
+
+[#objectType]
+=== objectType
+
+Provides a unique abbreviation for the object type, eg "customer.Customer" for Customer.
+
+This value, if specified, is used in the serialized form of the object's OID. An OID is used by the framework to unique identify an object over time (same concept as a URN).
+
+[#createdLifecycleEvent]
+=== createdLifecycleEvent
+
+Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectCreatedEvent.adoc[ObjectCreatedEvent] .
+
+This subclass must provide a no-arg constructor; the fields are set reflectively.
+
+[#persistingLifecycleEvent]
+=== persistingLifecycleEvent
+
+Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectPersistingEvent.adoc[ObjectPersistingEvent] .
+
+This subclass must provide a no-arg constructor; the fields are set reflectively.
+
+[#persistedLifecycleEvent]
+=== persistedLifecycleEvent
+
+Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectPersistedEvent.adoc[ObjectPersistedEvent] .
+
+This subclass must provide a no-arg constructor; the fields are set reflectively.
+
+[#loadedLifecycleEvent]
+=== loadedLifecycleEvent
+
+Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectLoadedEvent.adoc[ObjectLoadedEvent] .
+
+This subclass must provide a no-arg constructor; the fields are set reflectively.
+
+[#updatingLifecycleEvent]
+=== updatingLifecycleEvent
+
+Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectUpdatingEvent.adoc[ObjectUpdatingEvent] .
+
+This subclass must provide a no-arg constructor; the fields are set reflectively.
+
+[#updatedLifecycleEvent]
+=== updatedLifecycleEvent
+
+Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectUpdatedEvent.adoc[ObjectUpdatedEvent] .
+
+This subclass must provide a no-arg constructor; the fields are set reflectively.
+
+[#removingLifecycleEvent]
+=== removingLifecycleEvent
+
+Indicates that the loading of the domain object should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/lifecycle/ObjectRemovingEvent.adoc[ObjectRemovingEvent] .
+
+This subclass must provide a no-arg constructor; the fields are set reflectively.
+
+[#actionDomainEvent]
+=== actionDomainEvent
+
+Indicates that an invocation of _any_ action of the domain object (that do not themselves specify their own `@Action(domainEvent=...)` should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using the specified custom (subclass of) xref:system:generated:index/applib/events/domain/ActionDomainEvent.adoc[ActionDomainEvent] .
 
 For example:
 
@@ -157,10 +255,10 @@ public class SomeObject{
 This will result in all actions as a more specific type to use) to emit this event.
 
 This subclass must provide a no-arg constructor; the fields are set reflectively. It must also use `Object` as its generic type. This is to allow mixins to also emit the same event.
---
-<.> `[teal]#*_propertyDomainEvent_*#` : `Class<? extends PropertyDomainEvent<?,?>>`
-+
---
+
+[#propertyDomainEvent]
+=== propertyDomainEvent
+
 Indicates that changes to _any_ property of the domain object (that do not themselves specify their own `@Property(domainEvent=...)` should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using the specified custom (subclass of) xref:system:generated:index/applib/events/domain/PropertyDomainEvent.adoc[PropertyDomainEvent] .
 
 For example:
@@ -175,10 +273,10 @@ public class SomeObject{
 ----
 
 This subclass must provide a no-arg constructor; the fields are set reflectively. It must also use `Object` as its generic type. This is to allow mixins to also emit the same event.
---
-<.> `[teal]#*_collectionDomainEvent_*#` : `Class<? extends CollectionDomainEvent<?,?>>`
-+
---
+
+[#collectionDomainEvent]
+=== collectionDomainEvent
+
 Indicates that changes to _any_ collection of the domain object (that do not themselves specify their own `@Collection(domainEvent=...)` should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/domain/CollectionDomainEvent.adoc[CollectionDomainEvent] .
 
 For example:
@@ -193,5 +291,4 @@ public class Order {
 ----
 
 This subclass must provide a no-arg constructor; the fields are set reflectively. It must also use `Object` as its generic type. This is to allow mixins to also emit the same event.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObjectLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObjectLayout.adoc
index 14a48ba..ee9f553 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObjectLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObjectLayout.adoc
@@ -23,78 +23,140 @@ Layout hints for domain objects.
 }
 ----
 
-<.> `[teal]#*_bookmarking_*#` : `xref:system:generated:index/applib/annotation/BookmarkPolicy.adoc[BookmarkPolicy]`
+<.> xref:#bookmarking[bookmarking]
 +
 --
 Whether (and how) this domain object can be bookmarked in the UI.
 --
-<.> `[teal]#*_cssClass_*#` : `String`
+<.> xref:#cssClass[cssClass]
 +
 --
 Indicates the css class that a domain class (type) should have.
 --
-<.> `[teal]#*_cssClassFa_*#` : `String`
+<.> xref:#cssClassFa[cssClassFa]
 +
 --
 Indicates theFont AwesomeCSS class to decorate an domain object.
 --
-<.> `[teal]#*_cssClassFaPosition_*#` : `xref:system:generated:index/applib/layout/component/CssClassFaPosition.adoc[CssClassFaPosition]`
+<.> xref:#cssClassFaPosition[cssClassFaPosition]
 +
 --
 Indicates the position of theFont Awesomeicon. The icon could be rendered on the left or the right of the object's title.
-
-This attribute is currently ignored by Isis viewers.
 --
-<.> `[teal]#*_describedAs_*#` : `String`
+<.> xref:#describedAs[describedAs]
 +
 --
 Description of this class, eg to be rendered in a tooltip.
 --
-<.> `[teal]#*_named_*#` : `String`
+<.> xref:#named[named]
 +
 --
 Name of this class (overriding the name derived from its name in code).
 --
-<.> `[teal]#*_paged_*#` : `int`
+<.> xref:#paged[paged]
 +
 --
 The page size for instances of this class when rendered within a table.
-
-If annotated on a collection, then the page size refers to parented collections (eg `Order#lineItems` ).
-
-If annotated on a type, then the page size refers to standalone collections (eg as returned from a repository query).
 --
-<.> `[teal]#*_plural_*#` : `String`
+<.> xref:#plural[plural]
 +
 --
 The plural name of the class.
 --
-<.> `[teal]#*_cssClassUiEvent_*#` : `Class<? extends CssClassUiEvent<?>>`
+<.> xref:#cssClassUiEvent[cssClassUiEvent]
 +
 --
 Which subclass of xref:system:generated:index/applib/events/ui/CssClassUiEvent.adoc[CssClassUiEvent] should be used to obtain a CSS class.
-
-This subclass must provide a no-arg constructor; the fields are set reflectively.
 --
-<.> `[teal]#*_iconUiEvent_*#` : `Class<? extends IconUiEvent<?>>`
+<.> xref:#iconUiEvent[iconUiEvent]
 +
 --
 Which subclass of xref:system:generated:index/applib/events/ui/IconUiEvent.adoc[IconUiEvent] should be used to obtain an icon.
-
-This subclass must provide a no-arg constructor; the fields are set reflectively.
 --
-<.> `[teal]#*_layoutUiEvent_*#` : `Class<? extends LayoutUiEvent<?>>`
+<.> xref:#layoutUiEvent[layoutUiEvent]
 +
 --
 Which subclass of xref:system:generated:index/applib/events/ui/LayoutUiEvent.adoc[LayoutUiEvent] should be used to obtain a layout.
-
-This subclass must provide a no-arg constructor; the fields are set reflectively.
 --
-<.> `[teal]#*_titleUiEvent_*#` : `Class<? extends TitleUiEvent<?>>`
+<.> xref:#titleUiEvent[titleUiEvent]
 +
 --
 Which subclass of xref:system:generated:index/applib/events/ui/TitleUiEvent.adoc[TitleUiEvent] should be used to obtain a title.
+--
+
+== Members
+
+[#bookmarking]
+=== bookmarking
+
+Whether (and how) this domain object can be bookmarked in the UI.
+
+[#cssClass]
+=== cssClass
+
+Indicates the css class that a domain class (type) should have.
+
+[#cssClassFa]
+=== cssClassFa
+
+Indicates theFont AwesomeCSS class to decorate an domain object.
+
+[#cssClassFaPosition]
+=== cssClassFaPosition
+
+Indicates the position of theFont Awesomeicon. The icon could be rendered on the left or the right of the object's title.
+
+This attribute is currently ignored by Isis viewers.
+
+[#describedAs]
+=== describedAs
+
+Description of this class, eg to be rendered in a tooltip.
+
+[#named]
+=== named
+
+Name of this class (overriding the name derived from its name in code).
+
+[#paged]
+=== paged
+
+The page size for instances of this class when rendered within a table.
+
+If annotated on a collection, then the page size refers to parented collections (eg `Order#lineItems` ).
+
+If annotated on a type, then the page size refers to standalone collections (eg as returned from a repository query).
+
+[#plural]
+=== plural
+
+The plural name of the class.
+
+[#cssClassUiEvent]
+=== cssClassUiEvent
+
+Which subclass of xref:system:generated:index/applib/events/ui/CssClassUiEvent.adoc[CssClassUiEvent] should be used to obtain a CSS class.
+
+This subclass must provide a no-arg constructor; the fields are set reflectively.
+
+[#iconUiEvent]
+=== iconUiEvent
+
+Which subclass of xref:system:generated:index/applib/events/ui/IconUiEvent.adoc[IconUiEvent] should be used to obtain an icon.
+
+This subclass must provide a no-arg constructor; the fields are set reflectively.
+
+[#layoutUiEvent]
+=== layoutUiEvent
+
+Which subclass of xref:system:generated:index/applib/events/ui/LayoutUiEvent.adoc[LayoutUiEvent] should be used to obtain a layout.
+
+This subclass must provide a no-arg constructor; the fields are set reflectively.
+
+[#titleUiEvent]
+=== titleUiEvent
+
+Which subclass of xref:system:generated:index/applib/events/ui/TitleUiEvent.adoc[TitleUiEvent] should be used to obtain a title.
 
 This subclass must provide a no-arg constructor; the fields are set reflectively.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainService.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainService.adoc
index c80061f..537523b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainService.adoc
@@ -15,16 +15,28 @@ Also indicates whether the domain service acts as a repository for an entity, an
 }
 ----
 
-<.> `[teal]#*_nature_*#` : `xref:system:generated:index/applib/annotation/NatureOfService.adoc[NatureOfService]`
+<.> xref:#nature[nature]
 +
 --
 The nature of this service, eg for menus, contributed actions, repository.
 --
-<.> `[teal]#*_objectType_*#` : `String`
+<.> xref:#objectType[objectType]
 +
 --
 Provides the (first part of the) unique identifier (OID) for the service (the instanceId is always "1").
+--
+
+== Members
+
+[#nature]
+=== nature
+
+The nature of this service, eg for menus, contributed actions, repository.
+
+[#objectType]
+=== objectType
+
+Provides the (first part of the) unique identifier (OID) for the service (the instanceId is always "1").
 
 If not specified then either the optional "getId()" is used, otherwise the class' name.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainServiceLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainServiceLayout.adoc
index 5f6996b..8cfdea8 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainServiceLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainServiceLayout.adoc
@@ -15,14 +15,26 @@ Also indicates the name, and menu ordering UI hints.
 }
 ----
 
-<.> `[teal]#*_menuBar_*#` : `MenuBar`
+<.> xref:#menuBar[menuBar]
 +
 --
 The menubar in which the menu that holds this service's actions should reside.
 --
-<.> `[teal]#*_named_*#` : `String`
+<.> xref:#named[named]
 +
 --
 Name of this class (overriding the name derived from its name in code).
 --
 
+== Members
+
+[#menuBar]
+=== menuBar
+
+The menubar in which the menu that holds this service's actions should reside.
+
+[#named]
+=== named
+
+Name of this class (overriding the name derived from its name in code).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Editing.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Editing.adoc
index edfa001..02c3f6c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Editing.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Editing.adoc
@@ -15,26 +15,48 @@ enum Editing {
 }
 ----
 
-<.> `[teal]#*_AS_CONFIGURED_*#`
+<.> xref:#AS_CONFIGURED[AS_CONFIGURED]
 +
 --
 The editing of the object should be as per the default editing policy configured in `application.properties` .
-
-If no editing policy is configured, then the editing is enabled.
 --
-<.> `[teal]#*_ENABLED_*#`
+<.> xref:#ENABLED[ENABLED]
 +
 --
 Audit changes to this object.
 --
-<.> `[teal]#*_DISABLED_*#`
+<.> xref:#DISABLED[DISABLED]
 +
 --
 Do not allow the properties to be edited, or the collections to be added to/removed from.
 --
-<.> `[teal]#*_NOT_SPECIFIED_*#`
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
 --
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
 --
 
+== Members
+
+[#AS_CONFIGURED]
+=== AS_CONFIGURED
+
+The editing of the object should be as per the default editing policy configured in `application.properties` .
+
+If no editing policy is configured, then the editing is enabled.
+
+[#ENABLED]
+=== ENABLED
+
+Audit changes to this object.
+
+[#DISABLED]
+=== DISABLED
+
+Do not allow the properties to be edited, or the collections to be added to/removed from.
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
+Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Facets.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Facets.adoc
index 9f1019e..efe6f5e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Facets.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Facets.adoc
@@ -15,18 +15,30 @@ At least one named factory (as per _#facetFactoryNames()_ ) or one class factory
 }
 ----
 
-<.> `[teal]#*_facetFactoryNames_*#` : `String[]`
+<.> xref:#facetFactoryNames[facetFactoryNames]
 +
 --
 Array of fully qualified names of classes each implementing `org.apache.isis.core.metamodel.facets.FacetFactory` .
-
-Either the array provided by this method or by _#facetFactoryClasses()_ should be non-empty.
 --
-<.> `[teal]#*_facetFactoryClasses_*#` : `Class<?>[]`
+<.> xref:#facetFactoryClasses[facetFactoryClasses]
 +
 --
 Array of _Class_ s, each indicating a class implementing `org.apache.isis.core.metamodel.facets.FacetFactory` .
+--
+
+== Members
+
+[#facetFactoryNames]
+=== facetFactoryNames
+
+Array of fully qualified names of classes each implementing `org.apache.isis.core.metamodel.facets.FacetFactory` .
+
+Either the array provided by this method or by _#facetFactoryClasses()_ should be non-empty.
+
+[#facetFactoryClasses]
+=== facetFactoryClasses
+
+Array of _Class_ s, each indicating a class implementing `org.apache.isis.core.metamodel.facets.FacetFactory` .
 
 Either the array provided by this method or by _#facetFactoryNames()_ should be non-empty.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/LabelPosition.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/LabelPosition.adoc
index 17c23ad..e97213c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/LabelPosition.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/LabelPosition.adoc
@@ -17,14 +17,26 @@ enum LabelPosition {
 }
 ----
 
-<.> `[teal]#*_RIGHT_*#`
+<.> xref:#RIGHT[RIGHT]
 +
 --
 Right position of the label for Boolean properties.Not supportedfor now for other types.
 --
-<.> `[teal]#*_NOT_SPECIFIED_*#`
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
 --
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
 --
 
+== Members
+
+[#RIGHT]
+=== RIGHT
+
+Right position of the label for Boolean properties.Not supportedfor now for other types.
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
+Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/MemberOrder.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/MemberOrder.adoc
index fc09a0c..2b8ba88 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/MemberOrder.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/MemberOrder.adoc
@@ -2,7 +2,7 @@
 
 Indicates the position a method should be placed in.
 
-An alternative is to use the `Xxx.layout.xmlfile, where `Xxxis the domain object name.
+An alternative is to use the `Xxx.layout.xml` file, where `Xxx` is the domain object name.
 
 == API
 
@@ -15,18 +15,30 @@ An alternative is to use the `Xxx.layout.xmlfile, where `Xxxis the domain object
 }
 ----
 
-<.> `[teal]#*_name_*#` : `String`
+<.> xref:#name[name]
 +
 --
 Groups or associate members with each other.
-
-* For actions, indicates the property or collection to associate.
-* For properties, indicates the property group
-* For collections, currently has no meaning
 --
-<.> `[teal]#*_sequence_*#` : `String`
+<.> xref:#sequence[sequence]
 +
 --
 The order of this member relative to other members in the same group, in Dewey-decimal notation. For collections this is relative to each other (collections aren't grouped).
 --
 
+== Members
+
+[#name]
+=== name
+
+Groups or associate members with each other.
+
+* For actions, indicates the property or collection to associate.
+* For properties, indicates the property group
+* For collections, currently has no meaning
+
+[#sequence]
+=== sequence
+
+The order of this member relative to other members in the same group, in Dewey-decimal notation. For collections this is relative to each other (collections aren't grouped).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Nature.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Nature.adoc
index be9aae1..2345401 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Nature.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Nature.adoc
@@ -17,37 +17,64 @@ enum Nature {
 }
 ----
 
-<.> `[teal]#*_NOT_SPECIFIED_*#`
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
 --
 The default; allows the programmer to combine `@DomainObject` annotation with the xref:system:generated:index/applib/ViewModel.adoc[ViewModel] annotation, or the _XmlRootElement_ annotation, or by implementing the xref:system:generated:index/applib/ViewModel.adoc[ViewModel] interface.
 --
-<.> `[teal]#*_ENTITY_*#`
+<.> xref:#ENTITY[ENTITY]
 +
 --
 A domain entity whose persistence is managed internally by Isis, using JPA or JDO as the persistence implementation.
-
-Domain entities are considered to be part of the domain model layer.
-
-Currently implies no additional semantics other than documentation.
 --
-<.> `[teal]#*_VIEW_MODEL_*#`
+<.> xref:#VIEW_MODEL[VIEW_MODEL]
 +
 --
 An object that is conceptually part of the application layer, and which surfaces behavior and/or state that is aggregate of one or more domain entity.
-
-The identity of a view model is determined solely by the state of object's properties. Using this nature should be considered exactly equivalent to annotating with xref:system:generated:index/applib/ViewModel.adoc[ViewModel] .
-
-Note that collections are ignored; if their state is required to fully identify the view model, define the view model using the JAXB _XmlRootElement_ annotation instead (where the object's state is serialized to an arbitrarily deep graph of data, with references to persistent entities transparently resolved to `<oid-dto>elements).
 --
-<.> `[teal]#*_MIXIN_*#`
+<.> xref:#MIXIN[MIXIN]
 +
 --
 An object that acts as a mix-in to some other object, contributing behavior and/or derived state based on the domain object.
 --
-<.> `[teal]#*_BEAN_*#`
+<.> xref:#BEAN[BEAN]
 +
 --
 An object that is entirely managed by the underlying IoC container.
 --
 
+== Members
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
+The default; allows the programmer to combine `@DomainObject` annotation with the xref:system:generated:index/applib/ViewModel.adoc[ViewModel] annotation, or the _XmlRootElement_ annotation, or by implementing the xref:system:generated:index/applib/ViewModel.adoc[ViewModel] interface.
+
+[#ENTITY]
+=== ENTITY
+
+A domain entity whose persistence is managed internally by Isis, using JPA or JDO as the persistence implementation.
+
+Domain entities are considered to be part of the domain model layer.
+
+Currently implies no additional semantics other than documentation.
+
+[#VIEW_MODEL]
+=== VIEW_MODEL
+
+An object that is conceptually part of the application layer, and which surfaces behavior and/or state that is aggregate of one or more domain entity.
+
+The identity of a view model is determined solely by the state of object's properties. Using this nature should be considered exactly equivalent to annotating with xref:system:generated:index/applib/ViewModel.adoc[ViewModel] .
+
+Note that collections are ignored; if their state is required to fully identify the view model, define the view model using the JAXB _XmlRootElement_ annotation instead (where the object's state is serialized to an arbitrarily deep graph of data, with references to persistent entities transparently resolved to `<oid-dto>` elements).
+
+[#MIXIN]
+=== MIXIN
+
+An object that acts as a mix-in to some other object, contributing behavior and/or derived state based on the domain object.
+
+[#BEAN]
+=== BEAN
+
+An object that is entirely managed by the underlying IoC container.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/NatureOfService.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/NatureOfService.adoc
index 328708b..4024bd8 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/NatureOfService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/NatureOfService.adoc
@@ -15,24 +15,46 @@ enum NatureOfService {
 }
 ----
 
-<.> `[teal]#*_VIEW_*#`
+<.> xref:#VIEW[VIEW]
 +
 --
 The service's actions appear in the REST API and in 'viewers', eg. in the menu bar.
 --
-<.> `[teal]#*_REST_*#`
+<.> xref:#REST[REST]
 +
 --
 The service's actions should only be visible in the REST API exposed by the Restful Objects viewer.
 --
-<.> `[teal]#*isView*#()` : `boolean`
+<.> xref:#isView[isView]
 +
 --
 Whether a service contributes its actions to viewers and to the REST API.
 --
-<.> `[teal]#*isRestOnly*#()` : `boolean`
+<.> xref:#isRestOnly[isRestOnly]
 +
 --
 Whether a service contributes its actions exclusively to the REST API.
 --
 
+== Members
+
+[#VIEW]
+=== VIEW
+
+The service's actions appear in the REST API and in 'viewers', eg. in the menu bar.
+
+[#REST]
+=== REST
+
+The service's actions should only be visible in the REST API exposed by the Restful Objects viewer.
+
+[#isView]
+=== isView
+
+Whether a service contributes its actions to viewers and to the REST API.
+
+[#isRestOnly]
+=== isRestOnly
+
+Whether a service contributes its actions exclusively to the REST API.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Optionality.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Optionality.adoc
index 4b719cf..d79908b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Optionality.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Optionality.adoc
@@ -15,30 +15,52 @@ enum Optionality {
 }
 ----
 
-<.> `[teal]#*_DEFAULT_*#`
+<.> xref:#DEFAULT[DEFAULT]
 +
 --
 Default, usually meaning mandatory for properties and always meaning mandatory for parameters.
-
-For properties, will be false unless JDO `javax.jdo.annotations.Columnhas also specified with `javax.jdo.annotations.Column#allowsNull()set to `true.
 --
-<.> `[teal]#*_OPTIONAL_*#`
+<.> xref:#OPTIONAL[OPTIONAL]
 +
 --
 Indicates that the property or parameter is not required.
 --
-<.> `[teal]#*_MANDATORY_*#`
+<.> xref:#MANDATORY[MANDATORY]
 +
 --
-Indicates that the property is required (even if the JDO `javax.jdo.annotations.Columnannotation says otherwise).
-
-When using the JDO/DataNucleus objectstore, it is sometimes necessary to annotate a property as optional (using `javax.jdo.annotations.Column#allowsNull()set to `true), even if the property is logically mandatory. For example, this can occur when the property is in a subtype class that has been "rolled up" to the superclass table using `javax.jdo.annotations.Inheritance> with the `javax.jdo.annotations.InheritanceStrategy#SUPERCLASS_TABLEsuperclass strategy.
-
-This annotation, therefore, is intended to override any objectstore-specific annotation, so that Isis can apply the constraint even though the objectstore is unable to do so.
+Indicates that the property is required (even if the JDO `javax.jdo.annotations.Column` annotation says otherwise).
 --
-<.> `[teal]#*_NOT_SPECIFIED_*#`
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
 --
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
 --
 
+== Members
+
+[#DEFAULT]
+=== DEFAULT
+
+Default, usually meaning mandatory for properties and always meaning mandatory for parameters.
+
+For properties, will be false unless JDO `javax.jdo.annotations.Column` has also specified with `javax.jdo.annotations.Column#allowsNull()` set to `true` .
+
+[#OPTIONAL]
+=== OPTIONAL
+
+Indicates that the property or parameter is not required.
+
+[#MANDATORY]
+=== MANDATORY
+
+Indicates that the property is required (even if the JDO `javax.jdo.annotations.Column` annotation says otherwise).
+
+When using the JDO/DataNucleus objectstore, it is sometimes necessary to annotate a property as optional (using `javax.jdo.annotations.Column#allowsNull()` set to `true` ), even if the property is logically mandatory. For example, this can occur when the property is in a subtype class that has been "rolled up" to the superclass table using `javax.jdo.annotations.Inheritance` > with the `javax.jdo.annotations.InheritanceStrategy#SUPERCLASS_TABLE` superclass strategy.
+
+This annotation, therefore, is intended to override any objectstore-specific annotation, so that Isis can apply the constraint even though the objectstore is unable to do so.
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
+Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/OrderPrecedence.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/OrderPrecedence.adoc
index 1d8b69f..00084c3 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/OrderPrecedence.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/OrderPrecedence.adoc
@@ -14,29 +14,56 @@ class OrderPrecedence {
 }
 ----
 
-<.> `[teal]#*_FIRST_*#` : `int`
+<.> xref:#FIRST[FIRST]
 +
 --
 For domain services with the highest precedence value. No framework services use this constant, but some very fundamental services (eg for security) that are not expected to be overridden use a value that is only a little after this first value.
 --
-<.> `[teal]#*_EARLY_*#` : `int`
+<.> xref:#EARLY[EARLY]
 +
 --
 For framework for services that are unlikely to be overridden by application code.
 --
-<.> `[teal]#*_MIDPOINT_*#` : `int`
+<.> xref:#MIDPOINT[MIDPOINT]
 +
 --
 For framework for services that could be overridden by application code (though not commonly).
 --
-<.> `[teal]#*_LATE_*#` : `int`
+<.> xref:#LATE[LATE]
 +
 --
 For framework services that are expected to be overridden by application code, or that act as a fallback.
 --
-<.> `[teal]#*_LAST_*#` : `int`
+<.> xref:#LAST[LAST]
 +
 --
 For domain services that act as a fallback, and which will typically be overridden.
 --
 
+== Members
+
+[#FIRST]
+=== FIRST
+
+For domain services with the highest precedence value. No framework services use this constant, but some very fundamental services (eg for security) that are not expected to be overridden use a value that is only a little after this first value.
+
+[#EARLY]
+=== EARLY
+
+For framework for services that are unlikely to be overridden by application code.
+
+[#MIDPOINT]
+=== MIDPOINT
+
+For framework for services that could be overridden by application code (though not commonly).
+
+[#LATE]
+=== LATE
+
+For framework services that are expected to be overridden by application code, or that act as a fallback.
+
+[#LAST]
+=== LAST
+
+For domain services that act as a fallback, and which will typically be overridden.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Parameter.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Parameter.adoc
index 3ac236a..7b0eaec 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Parameter.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Parameter.adoc
@@ -18,49 +18,86 @@ Collects together all domain semantics of an action parameter within a single an
 }
 ----
 
-<.> `[teal]#*_fileAccept_*#` : `String`
+<.> xref:#fileAccept[fileAccept]
 +
 --
 For uploading xref:system:generated:index/applib/value/Blob.adoc[Blob] or xref:system:generated:index/applib/value/Clob.adoc[Clob] , optionally restrict the files accepted (eg `.xslx` ).
-
-The value should be of the form "file_extension|audio/*|video/*|image/*|media_type".
 --
-<.> `[teal]#*_maxLength_*#` : `int`
+<.> xref:#maxLength[maxLength]
 +
 --
 The maximum entry length of a field.
-
-The default value ( `-1) indicates that no maxLength has been specified.
 --
-<.> `[teal]#*_mustSatisfy_*#` : `Class<? extends Specification>[]`
+<.> xref:#mustSatisfy[mustSatisfy]
 +
 --
 The xref:system:generated:index/applib/spec/Specification.adoc[Specification] (s) to be satisfied by this parameter.
-
-If more than one is provided, then all must be satisfied (in effect "AND"ed together).
 --
-<.> `[teal]#*_optionality_*#` : `xref:system:generated:index/applib/annotation/Optionality.adoc[Optionality]`
+<.> xref:#optionality[optionality]
 +
 --
 Whether this parameter is optional or is mandatory (ie required).
-
-For parameters the default value, _org.apache.isis.applib.annotation.Optionality#DEFAULT_ , is taken to mean that the parameter is required.
 --
-<.> `[teal]#*_regexPattern_*#` : `String`
+<.> xref:#regexPattern[regexPattern]
 +
 --
 Regular expression pattern that a value should conform to, and can be formatted as.
 --
-<.> `[teal]#*_regexPatternFlags_*#` : `int`
+<.> xref:#regexPatternFlags[regexPatternFlags]
 +
 --
 Pattern flags, as per _java.util.regex.Pattern#compile(String, int)_ .
-
-The default value, `0, means that no flags have been specified.
 --
-<.> `[teal]#*_regexPatternReplacement_*#` : `String`
+<.> xref:#regexPatternReplacement[regexPatternReplacement]
 +
 --
 Replacement text for the pattern in generated error message.
 --
 
+== Members
+
+[#fileAccept]
+=== fileAccept
+
+For uploading xref:system:generated:index/applib/value/Blob.adoc[Blob] or xref:system:generated:index/applib/value/Clob.adoc[Clob] , optionally restrict the files accepted (eg `.xslx` ).
+
+The value should be of the form "file_extension|audio/*|video/*|image/*|media_type".
+
+[#maxLength]
+=== maxLength
+
+The maximum entry length of a field.
+
+The default value ( `-1` ) indicates that no maxLength has been specified.
+
+[#mustSatisfy]
+=== mustSatisfy
+
+The xref:system:generated:index/applib/spec/Specification.adoc[Specification] (s) to be satisfied by this parameter.
+
+If more than one is provided, then all must be satisfied (in effect "AND"ed together).
+
+[#optionality]
+=== optionality
+
+Whether this parameter is optional or is mandatory (ie required).
+
+For parameters the default value, _org.apache.isis.applib.annotation.Optionality#DEFAULT_ , is taken to mean that the parameter is required.
+
+[#regexPattern]
+=== regexPattern
+
+Regular expression pattern that a value should conform to, and can be formatted as.
+
+[#regexPatternFlags]
+=== regexPatternFlags
+
+Pattern flags, as per _java.util.regex.Pattern#compile(String, int)_ .
+
+The default value, `0` , means that no flags have been specified.
+
+[#regexPatternReplacement]
+=== regexPatternReplacement
+
+Replacement text for the pattern in generated error message.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/ParameterLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/ParameterLayout.adoc
index 42d1b3b..37a0412 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/ParameterLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/ParameterLayout.adoc
@@ -19,42 +19,85 @@ Collects together all layout hints for action parameters in a single annotation.
 }
 ----
 
-<.> `[teal]#*_cssClass_*#` : `String`
+<.> xref:#cssClass[cssClass]
 +
 --
 Indicates the css class that a parameter should have.
 --
-<.> `[teal]#*_describedAs_*#` : `String`
+<.> xref:#describedAs[describedAs]
 +
 --
 Description of this property, eg to be rendered in a tooltip.
 --
-<.> `[teal]#*_labelPosition_*#` : `xref:system:generated:index/applib/annotation/LabelPosition.adoc[LabelPosition]`
+<.> xref:#labelPosition[labelPosition]
 +
 --
 In forms, positioning of the label (left, top or none) relative to the parameter value.
-
-If not specified, the default depends upon the parameter value's datatype.
 --
-<.> `[teal]#*_named_*#` : `String`
+<.> xref:#named[named]
 +
 --
 Name of this action parameter.
 --
-<.> `[teal]#*_namedEscaped_*#` : `boolean`
+<.> xref:#namedEscaped[namedEscaped]
 +
 --
 A flag indicating whether the value of _#named()_ should be HTML escaped or not.
 --
-<.> `[teal]#*_multiLine_*#` : `int`
+<.> xref:#multiLine[multiLine]
 +
 --
 For string parameters (and properties), whether to render as a text area over multiple lines.
 --
-<.> `[teal]#*_renderDay_*#` : `xref:system:generated:index/applib/annotation/RenderDay.adoc[RenderDay]`
+<.> xref:#renderDay[renderDay]
 +
 --
 For date parameters (and properties) only, instructs the viewer that the date should be rendered as one day prior to the actually stored date.
+--
+<.> xref:#typicalLength[typicalLength]
++
+--
+The typical entry length of a field, use to determine the optimum width for display
+--
+
+== Members
+
+[#cssClass]
+=== cssClass
+
+Indicates the css class that a parameter should have.
+
+[#describedAs]
+=== describedAs
+
+Description of this property, eg to be rendered in a tooltip.
+
+[#labelPosition]
+=== labelPosition
+
+In forms, positioning of the label (left, top or none) relative to the parameter value.
+
+If not specified, the default depends upon the parameter value's datatype.
+
+[#named]
+=== named
+
+Name of this action parameter.
+
+[#namedEscaped]
+=== namedEscaped
+
+A flag indicating whether the value of _#named()_ should be HTML escaped or not.
+
+[#multiLine]
+=== multiLine
+
+For string parameters (and properties), whether to render as a text area over multiple lines.
+
+[#renderDay]
+=== renderDay
+
+For date parameters (and properties) only, instructs the viewer that the date should be rendered as one day prior to the actually stored date.
 
 This is intended to be used so that an exclusive end date of an interval can be rendered as 1 day before the actual value stored.
 
@@ -68,10 +111,9 @@ public void updateDates(
 ----
 
 Here, the interval of the [1-may-2013,1-jun-2013) would be rendered as the dates 1-may-2013 for the start date but using 31-may-2013 (the day before) for the end date. What is stored In the domain object, itself, however, the value stored is 1-jun-2013.
---
-<.> `[teal]#*_typicalLength_*#` : `int`
-+
---
+
+[#typicalLength]
+=== typicalLength
+
 The typical entry length of a field, use to determine the optimum width for display
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Projecting.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Projecting.adoc
index 3de210a..cb4c8ff 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Projecting.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Projecting.adoc
@@ -11,14 +11,26 @@ enum Projecting {
 }
 ----
 
-<.> `[teal]#*_PROJECTED_*#`
+<.> xref:#PROJECTED[PROJECTED]
 +
 --
 The property holds the underlying domain object of which this (view model) object is a projection.
 --
-<.> `[teal]#*_NOT_SPECIFIED_*#`
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
 --
 The property
 --
 
+== Members
+
+[#PROJECTED]
+=== PROJECTED
+
+The property holds the underlying domain object of which this (view model) object is a projection.
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
+The property
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/PromptStyle.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/PromptStyle.adoc
index f1efe98..1b6e730 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/PromptStyle.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/PromptStyle.adoc
@@ -22,39 +22,77 @@ enum PromptStyle {
 }
 ----
 
-<.> `[teal]#*_AS_CONFIGURED_*#`
+<.> xref:#AS_CONFIGURED[AS_CONFIGURED]
 +
 --
 Prompt using the style configured by `isis.viewer.wicket.promptStyle` .
-
-If no style is configured, then _#INLINE_ is assumed.
 --
-<.> `[teal]#*_DIALOG_*#`
+<.> xref:#DIALOG[DIALOG]
 +
 --
 Use a dialog for the prompt.
-
-This will be either modal dialog (same as if _#DIALOG_MODAL_ was selected) or sidebar (same as if _#DIALOG_SIDEBAR_ was selected) depending on the value of the `isis.viweer.wicket.dialogModeconfiguration property.
 --
-<.> `[teal]#*_DIALOG_SIDEBAR_*#`
+<.> xref:#DIALOG_SIDEBAR[DIALOG_SIDEBAR]
 +
 --
 Use a dialog for the prompt, rendered in a sidebar.
 --
-<.> `[teal]#*_DIALOG_MODAL_*#`
+<.> xref:#DIALOG_MODAL[DIALOG_MODAL]
 +
 --
 Use a dialog for the prompt, rendered in a modal dialog.
 --
-<.> `[teal]#*_INLINE_*#`
+<.> xref:#INLINE[INLINE]
 +
 --
 Show the form inline, temporarily replacing the rendering of the property.
 --
-<.> `[teal]#*_INLINE_AS_IF_EDIT_*#`
+<.> xref:#INLINE_AS_IF_EDIT[INLINE_AS_IF_EDIT]
 +
 --
 Applies only to actions, show the form inline, invoked as if editing the property.
+--
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
++
+--
+Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
+--
+
+== Members
+
+[#AS_CONFIGURED]
+=== AS_CONFIGURED
+
+Prompt using the style configured by `isis.viewer.wicket.promptStyle` .
+
+If no style is configured, then _#INLINE_ is assumed.
+
+[#DIALOG]
+=== DIALOG
+
+Use a dialog for the prompt.
+
+This will be either modal dialog (same as if _#DIALOG_MODAL_ was selected) or sidebar (same as if _#DIALOG_SIDEBAR_ was selected) depending on the value of the `isis.viweer.wicket.dialogMode` configuration property.
+
+[#DIALOG_SIDEBAR]
+=== DIALOG_SIDEBAR
+
+Use a dialog for the prompt, rendered in a sidebar.
+
+[#DIALOG_MODAL]
+=== DIALOG_MODAL
+
+Use a dialog for the prompt, rendered in a modal dialog.
+
+[#INLINE]
+=== INLINE
+
+Show the form inline, temporarily replacing the rendering of the property.
+
+[#INLINE_AS_IF_EDIT]
+=== INLINE_AS_IF_EDIT
+
+Applies only to actions, show the form inline, invoked as if editing the property.
 
 Note that:
 
@@ -62,10 +100,8 @@ Note that:
 * If the property is editable, then this attribute is ignored (and the action is treated as having a prompt style of _#INLINE_ ).
 * If applied to a property, then is the property's prompt style is simply treated as _#INLINE_ .
 
---
-<.> `[teal]#*_NOT_SPECIFIED_*#`
-+
---
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Property.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Property.adoc
index 02e3d6a..b2fe206 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Property.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Property.adoc
@@ -27,116 +27,198 @@ Collects together all the domain semantics for the property of a domain object.
 }
 ----
 
-<.> `[teal]#*_commandDtoProcessor_*#` : `Class<? extends CommandDtoProcessor>`
+<.> xref:#commandDtoProcessor[commandDtoProcessor]
 +
 --
 The xref:system:generated:index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor] to process this command's DTO.
-
-The processor itself is used by xref:system:generated:index/applib/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc[ContentMappingServiceForCommandDto] and xref:system:generated:index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc[ContentMappingServiceForCommandsDto] to dynamically transform the DTOs.
 --
-<.> `[teal]#*_commandPublishing_*#` : `xref:system:generated:index/applib/annotation/Publishing.adoc[Publishing]`
+<.> xref:#commandPublishing[commandPublishing]
 +
 --
 Whether property edits, captured as xref:system:generated:index/applib/services/command/Command.adoc[Command] s, should be published to xref:system:generated:index/applib/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber] s.
 --
-<.> `[teal]#*_domainEvent_*#` : `Class<? extends PropertyDomainEvent<?,?>>`
+<.> xref:#domainEvent[domainEvent]
 +
 --
 Indicates that changes to the property that should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/domain/PropertyDomainEvent.adoc[PropertyDomainEvent] .
-
-For example:
-
-----
-
-public static class StartDateChanged extends PropertyDomainEvent { ... }
-
-@Property(domainEvent=StartDateChanged.class)
-public LocalDate getStartDate() { ...}
-----
-
-This subclass must provide a no-arg constructor; the fields are set reflectively.
 --
-<.> `[teal]#*_editing_*#` : `xref:system:generated:index/applib/annotation/Editing.adoc[Editing]`
+<.> xref:#editing[editing]
 +
 --
 Whether the properties of this domain object can be edited, or collections of this object be added to/removed from.
-
-Note that non-editable objects can nevertheless have actions invoked upon them.
 --
-<.> `[teal]#*_editingDisabledReason_*#` : `String`
+<.> xref:#editingDisabledReason[editingDisabledReason]
 +
 --
 If _#editing()_ is set to _Editing#DISABLED_ , then the reason to provide to the user as to why this property cannot be edited.
 --
-<.> `[teal]#*_executionPublishing_*#` : `xref:system:generated:index/applib/annotation/Publishing.adoc[Publishing]`
+<.> xref:#executionPublishing[executionPublishing]
 +
 --
 Whether _org.apache.isis.applib.services.iactn.Interaction.Execution_ s (triggered property edits), should be dispatched to xref:system:generated:index/applib/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber] s.
 --
-<.> `[teal]#*_fileAccept_*#` : `String`
+<.> xref:#fileAccept[fileAccept]
 +
 --
 For uploading xref:system:generated:index/applib/value/Blob.adoc[Blob] or xref:system:generated:index/applib/value/Clob.adoc[Clob] , optionally restrict the files accepted (eg `.xslx` ).
-
-The value should be of the form "file_extension|audio/*|video/*|image/*|media_type".
 --
-<.> `[teal]#*_hidden_*#` : `xref:system:generated:index/applib/annotation/Where.adoc[Where]`
+<.> xref:#hidden[hidden]
 +
 --
 Indicates where the property is not visible to the user.
 --
-<.> `[teal]#*_maxLength_*#` : `int`
+<.> xref:#maxLength[maxLength]
 +
 --
 The maximum entry length of a field.
-
-The default value ( `-1) indicates that no maxLength has been specified.
 --
-<.> `[teal]#*_snapshot_*#` : `xref:system:generated:index/applib/annotation/Snapshot.adoc[Snapshot]`
+<.> xref:#snapshot[snapshot]
 +
 --
 Indicates whether the property should be included or excluded from mementos.
-
-To ensure that the property is actually not persisted in the objectstore, also annotate with the JDO annotation `javax.jdo.annotations.NotPersistent
 --
-<.> `[teal]#*_mustSatisfy_*#` : `Class<? extends Specification>[]`
+<.> xref:#mustSatisfy[mustSatisfy]
 +
 --
 The xref:system:generated:index/applib/spec/Specification.adoc[Specification] (s) to be satisfied by this property.
-
-If more than one is provided, then all must be satisfied (in effect "AND"ed together).
 --
-<.> `[teal]#*_optionality_*#` : `xref:system:generated:index/applib/annotation/Optionality.adoc[Optionality]`
+<.> xref:#optionality[optionality]
 +
 --
 Whether this property is optional or is mandatory (ie required).
-
-For properties the default value, _org.apache.isis.applib.annotation.Optionality#DEFAULT_ , usually means that the property is required unless it has been overridden by `javax.jdo.annotations.Columnwith its `javax.jdo.annotations.Column#allowsNull()attribute set to true.
 --
-<.> `[teal]#*_projecting_*#` : `xref:system:generated:index/applib/annotation/Projecting.adoc[Projecting]`
+<.> xref:#projecting[projecting]
 +
 --
 If set to _Projecting#PROJECTED projected_ , then indicates that the owner of this property is a view model which is a projection of some other entity, and that the property holds a reference to that "underlying".
-
-This is used to automatically redirect any bookmarks to the view model (projection) to instead be directed at the underlying entity.
-
-Only one such property should be marked as being a projection with a view model.
 --
-<.> `[teal]#*_regexPattern_*#` : `String`
+<.> xref:#regexPattern[regexPattern]
 +
 --
 Regular expression pattern that a value should conform to, and can be formatted as.
 --
-<.> `[teal]#*_regexPatternFlags_*#` : `int`
+<.> xref:#regexPatternFlags[regexPatternFlags]
 +
 --
 Pattern flags, as per _java.util.regex.Pattern#compile(String, int)_ .
-
-The default value, `0, means that no flags have been specified.
 --
-<.> `[teal]#*_regexPatternReplacement_*#` : `String`
+<.> xref:#regexPatternReplacement[regexPatternReplacement]
 +
 --
 Replacement text for the pattern in generated error message.
 --
 
+== Members
+
+[#commandDtoProcessor]
+=== commandDtoProcessor
+
+The xref:system:generated:index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor] to process this command's DTO.
+
+The processor itself is used by xref:system:generated:index/applib/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc[ContentMappingServiceForCommandDto] and xref:system:generated:index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc[ContentMappingServiceForCommandsDto] to dynamically transform the DTOs.
+
+[#commandPublishing]
+=== commandPublishing
+
+Whether property edits, captured as xref:system:generated:index/applib/services/command/Command.adoc[Command] s, should be published to xref:system:generated:index/applib/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber] s.
+
+[#domainEvent]
+=== domainEvent
+
+Indicates that changes to the property that should be posted to the _org.apache.isis.applib.services.eventbus.EventBusService event bus_ using a custom (subclass of) xref:system:generated:index/applib/events/domain/PropertyDomainEvent.adoc[PropertyDomainEvent] .
+
+For example:
+
+----
+
+public static class StartDateChanged extends PropertyDomainEvent { ... }
+
+@Property(domainEvent=StartDateChanged.class)
+public LocalDate getStartDate() { ...}
+----
+
+This subclass must provide a no-arg constructor; the fields are set reflectively.
+
+[#editing]
+=== editing
+
+Whether the properties of this domain object can be edited, or collections of this object be added to/removed from.
+
+Note that non-editable objects can nevertheless have actions invoked upon them.
+
+[#editingDisabledReason]
+=== editingDisabledReason
+
+If _#editing()_ is set to _Editing#DISABLED_ , then the reason to provide to the user as to why this property cannot be edited.
+
+[#executionPublishing]
+=== executionPublishing
+
+Whether _org.apache.isis.applib.services.iactn.Interaction.Execution_ s (triggered property edits), should be dispatched to xref:system:generated:index/applib/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber] s.
+
+[#fileAccept]
+=== fileAccept
+
+For uploading xref:system:generated:index/applib/value/Blob.adoc[Blob] or xref:system:generated:index/applib/value/Clob.adoc[Clob] , optionally restrict the files accepted (eg `.xslx` ).
+
+The value should be of the form "file_extension|audio/*|video/*|image/*|media_type".
+
+[#hidden]
+=== hidden
+
+Indicates where the property is not visible to the user.
+
+[#maxLength]
+=== maxLength
+
+The maximum entry length of a field.
+
+The default value ( `-1` ) indicates that no maxLength has been specified.
+
+[#snapshot]
+=== snapshot
+
+Indicates whether the property should be included or excluded from mementos.
+
+To ensure that the property is actually not persisted in the objectstore, also annotate with the JDO annotation `javax.jdo.annotations.NotPersistent` 
+
+[#mustSatisfy]
+=== mustSatisfy
+
+The xref:system:generated:index/applib/spec/Specification.adoc[Specification] (s) to be satisfied by this property.
+
+If more than one is provided, then all must be satisfied (in effect "AND"ed together).
+
+[#optionality]
+=== optionality
+
+Whether this property is optional or is mandatory (ie required).
+
+For properties the default value, _org.apache.isis.applib.annotation.Optionality#DEFAULT_ , usually means that the property is required unless it has been overridden by `javax.jdo.annotations.Column` with its `javax.jdo.annotations.Column#allowsNull()` attribute set to true.
+
+[#projecting]
+=== projecting
+
+If set to _Projecting#PROJECTED projected_ , then indicates that the owner of this property is a view model which is a projection of some other entity, and that the property holds a reference to that "underlying".
+
+This is used to automatically redirect any bookmarks to the view model (projection) to instead be directed at the underlying entity.
+
+Only one such property should be marked as being a projection with a view model.
+
+[#regexPattern]
+=== regexPattern
+
+Regular expression pattern that a value should conform to, and can be formatted as.
+
+[#regexPatternFlags]
+=== regexPatternFlags
+
+Pattern flags, as per _java.util.regex.Pattern#compile(String, int)_ .
+
+The default value, `0` , means that no flags have been specified.
+
+[#regexPatternReplacement]
+=== regexPatternReplacement
+
+Replacement text for the pattern in generated error message.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/PropertyLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/PropertyLayout.adoc
index 149053d..17b3b9b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/PropertyLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/PropertyLayout.adoc
@@ -23,59 +23,122 @@ Collects together all layout hints for a property of a domain object.
 }
 ----
 
-<.> `[teal]#*_cssClass_*#` : `String`
+<.> xref:#cssClass[cssClass]
 +
 --
 Indicates the css class that a property should have.
 --
-<.> `[teal]#*_describedAs_*#` : `String`
+<.> xref:#describedAs[describedAs]
 +
 --
 Description of this property, eg to be rendered in a tooltip.
 --
-<.> `[teal]#*_hidden_*#` : `xref:system:generated:index/applib/annotation/Where.adoc[Where]`
+<.> xref:#hidden[hidden]
 +
 --
 Indicates where in the UI the property should _not_ not be visible.
 --
-<.> `[teal]#*_labelPosition_*#` : `xref:system:generated:index/applib/annotation/LabelPosition.adoc[LabelPosition]`
+<.> xref:#labelPosition[labelPosition]
 +
 --
 In forms, positioning of the label (left, top or none) relative to the property value.
-
-If not specified, the default depends upon the property value's datatype.
 --
-<.> `[teal]#*_multiLine_*#` : `int`
+<.> xref:#multiLine[multiLine]
 +
 --
 For string properties (and parameters), render as a text area over specified number of lines.
 --
-<.> `[teal]#*_named_*#` : `String`
+<.> xref:#named[named]
 +
 --
 Name of this property (overriding the name derived from its name in code).
 --
-<.> `[teal]#*_namedEscaped_*#` : `boolean`
+<.> xref:#namedEscaped[namedEscaped]
 +
 --
 A flag indicating whether the value of _#named()_ should be HTML escaped or not.
 --
-<.> `[teal]#*_navigable_*#` : `xref:system:generated:index/applib/annotation/Navigable.adoc[Navigable]`
+<.> xref:#navigable[navigable]
 +
 --
 Whether this property should be used to construct the navigable chain of breadcrumbs in the UI.
-
-Only one property can be annotated as such per domain class.
 --
-<.> `[teal]#*_promptStyle_*#` : `xref:system:generated:index/applib/annotation/PromptStyle.adoc[PromptStyle]`
+<.> xref:#promptStyle[promptStyle]
 +
 --
 How the properties of this domain object are be edited, either _PromptStyle#DIALOG dialog_ or _PromptStyle#INLINE inline_ .
 --
-<.> `[teal]#*_renderDay_*#` : `xref:system:generated:index/applib/annotation/RenderDay.adoc[RenderDay]`
+<.> xref:#renderDay[renderDay]
 +
 --
 For date properties (and parameters) only, instructs the viewer that the date should be rendered as one day prior to the actually stored date.
+--
+<.> xref:#repainting[repainting]
++
+--
+Indicates that the value held by the property never changes over time, even when other properties of the object do change.
+--
+<.> xref:#typicalLength[typicalLength]
++
+--
+The typical entry length of a field, use to determine the optimum width for display
+--
+
+== Members
+
+[#cssClass]
+=== cssClass
+
+Indicates the css class that a property should have.
+
+[#describedAs]
+=== describedAs
+
+Description of this property, eg to be rendered in a tooltip.
+
+[#hidden]
+=== hidden
+
+Indicates where in the UI the property should _not_ not be visible.
+
+[#labelPosition]
+=== labelPosition
+
+In forms, positioning of the label (left, top or none) relative to the property value.
+
+If not specified, the default depends upon the property value's datatype.
+
+[#multiLine]
+=== multiLine
+
+For string properties (and parameters), render as a text area over specified number of lines.
+
+[#named]
+=== named
+
+Name of this property (overriding the name derived from its name in code).
+
+[#namedEscaped]
+=== namedEscaped
+
+A flag indicating whether the value of _#named()_ should be HTML escaped or not.
+
+[#navigable]
+=== navigable
+
+Whether this property should be used to construct the navigable chain of breadcrumbs in the UI.
+
+Only one property can be annotated as such per domain class.
+
+[#promptStyle]
+=== promptStyle
+
+How the properties of this domain object are be edited, either _PromptStyle#DIALOG dialog_ or _PromptStyle#INLINE inline_ .
+
+[#renderDay]
+=== renderDay
+
+For date properties (and parameters) only, instructs the viewer that the date should be rendered as one day prior to the actually stored date.
 
 This is intended to be used so that an exclusive end date of an interval can be rendered as 1 day before the actual value stored.
 
@@ -90,10 +153,10 @@ public LocalDate getEndDate() { ... }
 ----
 
 Here, the interval of the [1-may-2013,1-jun-2013) would be rendered as the dates 1-may-2013 for the start date but using 31-may-2013 (the day before) for the end date. What is stored In the domain object, itself, however, the value stored is 1-jun-2013.
---
-<.> `[teal]#*_repainting_*#` : `xref:system:generated:index/applib/annotation/Repainting.adoc[Repainting]`
-+
---
+
+[#repainting]
+=== repainting
+
 Indicates that the value held by the property never changes over time, even when other properties of the object do change.
 
 Setting this attribute to `RepaintPolicy.NO_REPAINT` is used as a hint to the viewer to not repaint the property after an AJAX update of some other property/ies of the object have changed. This is primarily for performance, eg can improve the user experience when rendering PDFs/blobs.
@@ -101,10 +164,9 @@ Setting this attribute to `RepaintPolicy.NO_REPAINT` is used as a hint to the vi
 Note that for this to work, the viewer will also ensure that none of the property's parent component (such as a tab group panel) are re-rendered.
 
 Design note: we considered implementing this an "immutable" flag on the xref:system:generated:index/applib/annotation/Property.adoc[Property] annotation (because this flag is typically appropriate for immutable/unchanging properties of a domain object). However, we decided not to do that, on the basis that it might be interpreted as having a deeper impact within the framework than simply a hint for rendering.
---
-<.> `[teal]#*_typicalLength_*#` : `int`
-+
---
+
+[#typicalLength]
+=== typicalLength
+
 The typical entry length of a field, use to determine the optimum width for display
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Publishing.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Publishing.adoc
index 2c52069..0b02e23 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Publishing.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Publishing.adoc
@@ -28,26 +28,48 @@ enum Publishing {
 }
 ----
 
-<.> `[teal]#*_AS_CONFIGURED_*#`
+<.> xref:#AS_CONFIGURED[AS_CONFIGURED]
 +
 --
 Publishing of data triggered by interaction with this object should be handled as per the default publishing policy configured in `application.properties` .
-
-If no publishing policy is configured, then publishing is disabled.
 --
-<.> `[teal]#*_ENABLED_*#`
+<.> xref:#ENABLED[ENABLED]
 +
 --
 Do publish data triggered by interaction with this object.
 --
-<.> `[teal]#*_DISABLED_*#`
+<.> xref:#DISABLED[DISABLED]
 +
 --
 Do *not* publish data triggered by interaction with this object (even if otherwise configured to enable publishing).
 --
-<.> `[teal]#*_NOT_SPECIFIED_*#`
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
 --
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or super-classes/interfaces).
 --
 
+== Members
+
+[#AS_CONFIGURED]
+=== AS_CONFIGURED
+
+Publishing of data triggered by interaction with this object should be handled as per the default publishing policy configured in `application.properties` .
+
+If no publishing policy is configured, then publishing is disabled.
+
+[#ENABLED]
+=== ENABLED
+
+Do publish data triggered by interaction with this object.
+
+[#DISABLED]
+=== DISABLED
+
+Do *not* publish data triggered by interaction with this object (even if otherwise configured to enable publishing).
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
+Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or super-classes/interfaces).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Redirect.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Redirect.adoc
index 22ddeaa..d3f778a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Redirect.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Redirect.adoc
@@ -14,21 +14,38 @@ enum Redirect {
 }
 ----
 
-<.> `[teal]#*_AS_CONFIGURED_*#`
+<.> xref:#AS_CONFIGURED[AS_CONFIGURED]
 +
 --
-As defined by configuration property `isis.viewer.wicket.redirectEvenIfSameObject
+As defined by configuration property `isis.viewer.wicket.redirectEvenIfSameObject` 
 --
-<.> `[teal]#*_EVEN_IF_SAME_*#`
+<.> xref:#EVEN_IF_SAME[EVEN_IF_SAME]
 +
 --
 Redirect (meaning render a new page) even if the result of the action is the same as the target.
 --
-<.> `[teal]#*_ONLY_IF_DIFFERS_*#`
+<.> xref:#ONLY_IF_DIFFERS[ONLY_IF_DIFFERS]
 +
 --
 Don't redirect if the result is the same as the target, instead just update the existing page.
+--
+
+== Members
+
+[#AS_CONFIGURED]
+=== AS_CONFIGURED
+
+As defined by configuration property `isis.viewer.wicket.redirectEvenIfSameObject` 
+
+[#EVEN_IF_SAME]
+=== EVEN_IF_SAME
+
+Redirect (meaning render a new page) even if the result of the action is the same as the target.
+
+[#ONLY_IF_DIFFERS]
+=== ONLY_IF_DIFFERS
+
+Don't redirect if the result is the same as the target, instead just update the existing page.
 
 Of course, a redirect is still performed if the result of the action is different from the target.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/RenderDay.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/RenderDay.adoc
index f9867d4..8becac5 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/RenderDay.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/RenderDay.adoc
@@ -14,14 +14,26 @@ enum RenderDay {
 }
 ----
 
-<.> `[teal]#*_AS_DAY_BEFORE_*#`
+<.> xref:#AS_DAY_BEFORE[AS_DAY_BEFORE]
 +
 --
 Equivalent to `@PropertyLayout(renderAsDayBefore=true)` prior to Isis 2.x
 --
-<.> `[teal]#*_NOT_SPECIFIED_*#`
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
 --
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
 --
 
+== Members
+
+[#AS_DAY_BEFORE]
+=== AS_DAY_BEFORE
+
+Equivalent to `@PropertyLayout(renderAsDayBefore=true)` prior to Isis 2.x
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
+Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Repainting.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Repainting.adoc
index fbc6b5b..806727e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Repainting.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Repainting.adoc
@@ -14,14 +14,26 @@ enum Repainting {
 }
 ----
 
-<.> `[teal]#*_NO_REPAINT_*#`
+<.> xref:#NO_REPAINT[NO_REPAINT]
 +
 --
 Equivalent to `@PropertyLayout(unchanging=true)` prior to Isis 2.x
 --
-<.> `[teal]#*_NOT_SPECIFIED_*#`
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
 --
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
 --
 
+== Members
+
+[#NO_REPAINT]
+=== NO_REPAINT
+
+Equivalent to `@PropertyLayout(unchanging=true)` prior to Isis 2.x
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
+Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/SemanticsOf.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/SemanticsOf.adoc
index b963acd..5a4fbf8 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/SemanticsOf.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/SemanticsOf.adoc
@@ -23,46 +23,104 @@ enum SemanticsOf {
 }
 ----
 
-<.> `[teal]#*_SAFE_AND_REQUEST_CACHEABLE_*#`
+<.> xref:#SAFE_AND_REQUEST_CACHEABLE[SAFE_AND_REQUEST_CACHEABLE]
 +
 --
 Safe, with no side effects, and caching the returned value when invoked multiple times in the same request.
+--
+<.> xref:#SAFE[SAFE]
++
+--
+Safe, with no side-effects. In other words, a query-only action.
+--
+<.> xref:#IDEMPOTENT[IDEMPOTENT]
++
+--
+Post-conditions are always the same, irrespective as to how many times called.
+--
+<.> xref:#NON_IDEMPOTENT[NON_IDEMPOTENT]
++
+--
+Neither safe nor idempotent; every invocation is likely to change the state of the object.
+--
+<.> xref:#IDEMPOTENT_ARE_YOU_SURE[IDEMPOTENT_ARE_YOU_SURE]
++
+--
+Post-conditions are always the same, irrespective as to how many times called.
+--
+<.> xref:#NON_IDEMPOTENT_ARE_YOU_SURE[NON_IDEMPOTENT_ARE_YOU_SURE]
++
+--
+Neither safe nor idempotent; every invocation is likely to change the state of the object.
+--
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
++
+--
+Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
+--
+<.> xref:#isIdempotentInNature[isIdempotentInNature]
++
+--
+Any of _#SAFE_ , _#SAFE_AND_REQUEST_CACHEABLE_ or (obviously) _#IDEMPOTENT_ .
+--
+<.> xref:#isSafeInNature[isSafeInNature]
++
+--
+Either of _#SAFE_ or _#SAFE_AND_REQUEST_CACHEABLE_ .
+--
+<.> xref:#isSafe[isSafe]
++
+--
+[WARNING]
+====
+[red]#_deprecated:_#
+
+- use _#isSafeInNature()_ instead (avoid any ambiguity).
+====
+--
+
+== Members
+
+[#SAFE_AND_REQUEST_CACHEABLE]
+=== SAFE_AND_REQUEST_CACHEABLE
+
+Safe, with no side effects, and caching the returned value when invoked multiple times in the same request.
 
 * Changes state: *No*
 * HTTP verb: *GET*
 * Effect of multiple calls: Will *always return the same result* each time invoked (within a given request scope).
---
-<.> `[teal]#*_SAFE_*#`
-+
---
+
+[#SAFE]
+=== SAFE
+
 Safe, with no side-effects. In other words, a query-only action.
 
 * Changes state: *No*
 * HTTP verb: *GET*
 * Effect of multiple calls: Might result in *different results each invocation* (within a given request scope).
---
-<.> `[teal]#*_IDEMPOTENT_*#`
-+
---
+
+[#IDEMPOTENT]
+=== IDEMPOTENT
+
 Post-conditions are always the same, irrespective as to how many times called.
 
 * Changes state: *Yes*
 * HTTP verb: *PUT*
 * Effect of multiple calls: Will make *no further changes* if called multiple times (eg sets a property or adds of same item to a Set).
---
-<.> `[teal]#*_NON_IDEMPOTENT_*#`
-+
---
+
+[#NON_IDEMPOTENT]
+=== NON_IDEMPOTENT
+
 Neither safe nor idempotent; every invocation is likely to change the state of the object.
 
 * Changes state: *Yes*
 * HTTP verb: *POST*
 * Effect of multiple calls: Might *change the state* of the system each time called (eg increments a counter or adds to a List).
 * Example: Increasing the quantity of a line item in an Order by 1.
---
-<.> `[teal]#*_IDEMPOTENT_ARE_YOU_SURE_*#`
-+
---
+
+[#IDEMPOTENT_ARE_YOU_SURE]
+=== IDEMPOTENT_ARE_YOU_SURE
+
 Post-conditions are always the same, irrespective as to how many times called.
 
 If supported the UI viewer will show a confirmation dialog before executing the action.
@@ -70,10 +128,10 @@ If supported the UI viewer will show a confirmation dialog before executing the
 * Changes state: *Yes*
 * HTTP verb: *PUT*
 * Effect of multiple calls: Will make *no further changes* if called multiple times (eg sets a property or adds of same item to a Set).
---
-<.> `[teal]#*_NON_IDEMPOTENT_ARE_YOU_SURE_*#`
-+
---
+
+[#NON_IDEMPOTENT_ARE_YOU_SURE]
+=== NON_IDEMPOTENT_ARE_YOU_SURE
+
 Neither safe nor idempotent; every invocation is likely to change the state of the object.
 
 If supported the UI viewer will show a confirmation dialog before executing the action.
@@ -82,30 +140,29 @@ If supported the UI viewer will show a confirmation dialog before executing the
 * HTTP verb: *POST*
 * Effect of multiple calls: Might *change the state* of the system each time called (eg increments a counter or adds to a List).
 * Example: Increasing the quantity of a line item in an Order by 1.
---
-<.> `[teal]#*_NOT_SPECIFIED_*#`
-+
---
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
---
-<.> `[teal]#*isIdempotentInNature*#()` : `boolean`
-+
---
+
+[#isIdempotentInNature]
+=== isIdempotentInNature
+
 Any of _#SAFE_ , _#SAFE_AND_REQUEST_CACHEABLE_ or (obviously) _#IDEMPOTENT_ .
---
-<.> `[teal]#*isSafeInNature*#()` : `boolean`
-+
---
+
+[#isSafeInNature]
+=== isSafeInNature
+
 Either of _#SAFE_ or _#SAFE_AND_REQUEST_CACHEABLE_ .
---
-<.> `[line-through gray]#*isSafe*#()` : `boolean`
-+
---
+
+[#isSafe]
+=== isSafe
+
 [WARNING]
 ====
 [red]#_deprecated:_#
 
 - use _#isSafeInNature()_ instead (avoid any ambiguity).
 ====
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Snapshot.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Snapshot.adoc
index 4b6410b..29a273d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Snapshot.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Snapshot.adoc
@@ -14,19 +14,36 @@ enum Snapshot {
 }
 ----
 
-<.> `[teal]#*_INCLUDED_*#`
+<.> xref:#INCLUDED[INCLUDED]
 +
 --
 Property is included in any snapshots. This is the fallback/default if not explicitly excluded.
 --
-<.> `[teal]#*_EXCLUDED_*#`
+<.> xref:#EXCLUDED[EXCLUDED]
 +
 --
 Property is excluded from any snapshots.
 --
-<.> `[teal]#*_NOT_SPECIFIED_*#`
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
 --
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
 --
 
+== Members
+
+[#INCLUDED]
+=== INCLUDED
+
+Property is included in any snapshots. This is the fallback/default if not explicitly excluded.
+
+[#EXCLUDED]
+=== EXCLUDED
+
+Property is excluded from any snapshots.
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
+Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Title.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Title.adoc
index f476117..c11d005 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Title.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Title.adoc
@@ -17,24 +17,46 @@ If more than one property is used, the order can be specified (using the same De
 }
 ----
 
-<.> `[teal]#*_sequence_*#` : `String`
+<.> xref:#sequence[sequence]
 +
 --
 The order (in Dewey decimal notation) that the property annotated with xref:system:generated:index/applib/annotation/Title.adoc[Title] appears with respect to other properties also annotated with xref:system:generated:index/applib/annotation/Title.adoc[Title] .
 --
-<.> `[teal]#*_prepend_*#` : `String`
+<.> xref:#prepend[prepend]
 +
 --
 The string to use to separate this property from any preceding properties in the title.
 --
-<.> `[teal]#*_append_*#` : `String`
+<.> xref:#append[append]
 +
 --
 The string to append to this property if non-empty.
 --
-<.> `[teal]#*_abbreviatedTo_*#` : `int`
+<.> xref:#abbreviatedTo[abbreviatedTo]
 +
 --
 The length to abbreviate this title element to.
 --
 
+== Members
+
+[#sequence]
+=== sequence
+
+The order (in Dewey decimal notation) that the property annotated with xref:system:generated:index/applib/annotation/Title.adoc[Title] appears with respect to other properties also annotated with xref:system:generated:index/applib/annotation/Title.adoc[Title] .
+
+[#prepend]
+=== prepend
+
+The string to use to separate this property from any preceding properties in the title.
+
+[#append]
+=== append
+
+The string to append to this property if non-empty.
+
+[#abbreviatedTo]
+=== abbreviatedTo
+
+The length to abbreviate this title element to.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Value.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Value.adoc
index 8422b55..7fd6307 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Value.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Value.adoc
@@ -24,22 +24,34 @@ Note also that though a value is conceptually not shared, if it is also immutabl
 }
 ----
 
-<.> `[teal]#*_semanticsProviderName_*#` : `String`
+<.> xref:#semanticsProviderName[semanticsProviderName]
 +
 --
 The fully qualified name of a class that implements the xref:system:generated:index/applib/adapters/ValueSemanticsProvider.adoc[ValueSemanticsProvider] interface.
+--
+<.> xref:#semanticsProviderClass[semanticsProviderClass]
++
+--
+As per _#semanticsProviderName()_ , but specifying a class literal rather than a fully qualified class name.
+--
+
+== Members
+
+[#semanticsProviderName]
+=== semanticsProviderName
+
+The fully qualified name of a class that implements the xref:system:generated:index/applib/adapters/ValueSemanticsProvider.adoc[ValueSemanticsProvider] interface.
 
 This is optional because some implementations may pick up encodeability via a configuration file, or via the equivalent _#semanticsProviderClass()_ .
 
 It is possible for value classes to act as their own semantics providers, and may in particular implement the xref:system:generated:index/applib/adapters/EncoderDecoder.adoc[EncoderDecoder] interface. The framework requires that the nominated class provides a `public` no-arg constructor on the class, and will instantiates an instance of the class to interact with it. In the case of encoding, the framework uses the result of discards the instantiated object. What that means in particular  [...]
 
 Implementation note: the default value provided here is simply an empty string because `null` is not a valid default.
---
-<.> `[teal]#*_semanticsProviderClass_*#` : `Class<?>`
-+
---
+
+[#semanticsProviderClass]
+=== semanticsProviderClass
+
 As per _#semanticsProviderName()_ , but specifying a class literal rather than a fully qualified class name.
 
 Implementation note: the default value provided here is simply the xref:system:generated:index/applib/annotation/Value.adoc[Value] 's own class, because `null` is not a valid default.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Where.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Where.adoc
index c5e7ce7..f1611c6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Where.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Where.adoc
@@ -29,79 +29,136 @@ enum Where {
 }
 ----
 
-<.> `[teal]#*_EVERYWHERE_*#`
+<.> xref:#EVERYWHERE[EVERYWHERE]
 +
 --
 The member should be disabled/hidden everywhere.
-
-Synonym for _#ANYWHERE_ .
 --
-<.> `[teal]#*_ANYWHERE_*#`
+<.> xref:#ANYWHERE[ANYWHERE]
 +
 --
 The member should be disabled/hidden everywhere.
-
-Synonym for _#EVERYWHERE_ .
 --
-<.> `[teal]#*_OBJECT_FORMS_*#`
+<.> xref:#OBJECT_FORMS[OBJECT_FORMS]
 +
 --
 The member should be disabled/hidden when displayed within an object form.
-
-For most viewers, this applies to property and collection members, not actions.
 --
-<.> `[teal]#*_REFERENCES_PARENT_*#`
+<.> xref:#REFERENCES_PARENT[REFERENCES_PARENT]
 +
 --
 The member should be disabled/hidden when displayed as a column of a table within parent object's collection, and references that parent.
-
-For most (all?) viewers, this will have meaning only if applied to a property member.
 --
-<.> `[teal]#*_PARENTED_TABLES_*#`
+<.> xref:#PARENTED_TABLES[PARENTED_TABLES]
 +
 --
 The member should be disabled/hidden when displayed as a column of a table within a parent object's collection.
-
-For most (all?) viewers, this will have meaning only if applied to a property member.
 --
-<.> `[teal]#*_STANDALONE_TABLES_*#`
+<.> xref:#STANDALONE_TABLES[STANDALONE_TABLES]
 +
 --
 The member should be disabled/hidden when displayed as a column of a table showing a standalone list of objects, for example as returned by a repository query.
-
-For most (all?) viewers, this will have meaning only if applied to a property member.
 --
-<.> `[teal]#*_ALL_TABLES_*#`
+<.> xref:#ALL_TABLES[ALL_TABLES]
 +
 --
 The member should be disabled/hidden when displayed as a column of a table, either an object's collection or a standalone list.
-
-This combines _#PARENTED_TABLES_ and _#STANDALONE_TABLES_ .
 --
-<.> `[teal]#*_ALL_EXCEPT_STANDALONE_TABLES_*#`
+<.> xref:#ALL_EXCEPT_STANDALONE_TABLES[ALL_EXCEPT_STANDALONE_TABLES]
 +
 --
 The member should be disabled/hidden except when displayed as a column of a standalone table.
-
-This is the inverse of _#STANDALONE_TABLES_ .
 --
-<.> `[teal]#*_NOWHERE_*#`
+<.> xref:#NOWHERE[NOWHERE]
 +
 --
 To act as an override if a member would normally be hidden as a result of some other convention.
-
-For example, if a property is annotated with `@Title` , then normally this should be hidden from all tables. Additionally annotating with `@Hidden(where=Where.NOWHERE)` overrides this.
 --
-<.> `[teal]#*_NOT_SPECIFIED_*#`
+<.> xref:#NOT_SPECIFIED[NOT_SPECIFIED]
 +
 --
 Acts as the default no-op value for _PropertyLayout#hidden()_ , _CollectionLayout#hidden()_ and _ActionLayout#hidden()_ .
 --
-<.> `[teal]#*includes*#(xref:system:generated:index/applib/annotation/Where.adoc[Where] context)` : `boolean`
+<.> xref:#includes[includes]
 +
 --
 Whether this `Where` is a superset of the context `Where` provided.
+--
+
+== Members
+
+[#EVERYWHERE]
+=== EVERYWHERE
+
+The member should be disabled/hidden everywhere.
+
+Synonym for _#ANYWHERE_ .
+
+[#ANYWHERE]
+=== ANYWHERE
+
+The member should be disabled/hidden everywhere.
+
+Synonym for _#EVERYWHERE_ .
+
+[#OBJECT_FORMS]
+=== OBJECT_FORMS
+
+The member should be disabled/hidden when displayed within an object form.
+
+For most viewers, this applies to property and collection members, not actions.
+
+[#REFERENCES_PARENT]
+=== REFERENCES_PARENT
+
+The member should be disabled/hidden when displayed as a column of a table within parent object's collection, and references that parent.
+
+For most (all?) viewers, this will have meaning only if applied to a property member.
+
+[#PARENTED_TABLES]
+=== PARENTED_TABLES
+
+The member should be disabled/hidden when displayed as a column of a table within a parent object's collection.
+
+For most (all?) viewers, this will have meaning only if applied to a property member.
+
+[#STANDALONE_TABLES]
+=== STANDALONE_TABLES
+
+The member should be disabled/hidden when displayed as a column of a table showing a standalone list of objects, for example as returned by a repository query.
+
+For most (all?) viewers, this will have meaning only if applied to a property member.
+
+[#ALL_TABLES]
+=== ALL_TABLES
+
+The member should be disabled/hidden when displayed as a column of a table, either an object's collection or a standalone list.
+
+This combines _#PARENTED_TABLES_ and _#STANDALONE_TABLES_ .
+
+[#ALL_EXCEPT_STANDALONE_TABLES]
+=== ALL_EXCEPT_STANDALONE_TABLES
+
+The member should be disabled/hidden except when displayed as a column of a standalone table.
+
+This is the inverse of _#STANDALONE_TABLES_ .
+
+[#NOWHERE]
+=== NOWHERE
+
+To act as an override if a member would normally be hidden as a result of some other convention.
+
+For example, if a property is annotated with `@Title` , then normally this should be hidden from all tables. Additionally annotating with `@Hidden(where=Where.NOWHERE)` overrides this.
+
+[#NOT_SPECIFIED]
+=== NOT_SPECIFIED
+
+Acts as the default no-op value for _PropertyLayout#hidden()_ , _CollectionLayout#hidden()_ and _ActionLayout#hidden()_ .
+
+[#includes]
+=== includes
+
+Whether this `Where` is a superset of the context `Where` provided.
 
 For example, _#ALL_TABLES_ includes _#STANDALONE_TABLES_ ; _#ANYWHERE_ includes all others.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/client/RepresentationTypeSimplifiedV2.adoc b/antora/components/system/modules/generated/pages/index/applib/client/RepresentationTypeSimplifiedV2.adoc
index bfc2aa4..cf05e1b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/client/RepresentationTypeSimplifiedV2.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/client/RepresentationTypeSimplifiedV2.adoc
@@ -26,34 +26,66 @@ final String typeLiteral;
 }
 ----
 
-<.> `[teal]#*_OBJECT_*#`
+<.> xref:#OBJECT[OBJECT]
 +
 --
 The media type used as content-Type header when a domain object is rendered.
 --
-<.> `[teal]#*_OBJECT_COLLECTION_*#`
+<.> xref:#OBJECT_COLLECTION[OBJECT_COLLECTION]
 +
 --
 The media type used as content-Type header when a parented collection is rendered.
 --
-<.> `[teal]#*_LIST_*#`
+<.> xref:#LIST[LIST]
 +
 --
 The media type used as content-Type header when a standalone collection is rendered.
 --
-<.> `[teal]#*_VALUE_*#`
+<.> xref:#VALUE[VALUE]
 +
 --
 The media type used as content-Type header when a single (nullable) value is rendered.
 --
-<.> `[teal]#*_VALUES_*#`
+<.> xref:#VALUES[VALUES]
 +
 --
 The media type used as content-Type header when a list of values is rendered.
 --
-<.> `[teal]#*_VOID_*#`
+<.> xref:#VOID[VOID]
 +
 --
 The media type used as content-Type header when a void action result is rendered.
 --
 
+== Members
+
+[#OBJECT]
+=== OBJECT
+
+The media type used as content-Type header when a domain object is rendered.
+
+[#OBJECT_COLLECTION]
+=== OBJECT_COLLECTION
+
+The media type used as content-Type header when a parented collection is rendered.
+
+[#LIST]
+=== LIST
+
+The media type used as content-Type header when a standalone collection is rendered.
+
+[#VALUE]
+=== VALUE
+
+The media type used as content-Type header when a single (nullable) value is rendered.
+
+[#VALUES]
+=== VALUES
+
+The media type used as content-Type header when a list of values is rendered.
+
+[#VOID]
+=== VOID
+
+The media type used as content-Type header when a void action result is rendered.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/client/SuppressionType.adoc b/antora/components/system/modules/generated/pages/index/applib/client/SuppressionType.adoc
index f888629..c6bd167 100644
--- a/antora/components/system/modules/generated/pages/index/applib/client/SuppressionType.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/client/SuppressionType.adoc
@@ -16,34 +16,66 @@ enum SuppressionType {
 }
 ----
 
-<.> `[teal]#*_RO_*#`
+<.> xref:#RO[RO]
 +
 --
 suppress '$$RO', RO Spec representation
 --
-<.> `[teal]#*_HREF_*#`
+<.> xref:#HREF[HREF]
 +
 --
 suppress '$$href', hyperlink to the representation
 --
-<.> `[teal]#*_ID_*#`
+<.> xref:#ID[ID]
 +
 --
 suppress '$$instanceId', instance id of the domain object
 --
-<.> `[teal]#*_DOMAIN_TYPE_*#`
+<.> xref:#DOMAIN_TYPE[DOMAIN_TYPE]
 +
 --
 suppress '$$domainType', object spec of the domain object
 --
-<.> `[teal]#*_TITLE_*#`
+<.> xref:#TITLE[TITLE]
 +
 --
 suppress '$$title', title of the domain object
 --
-<.> `[teal]#*_ALL_*#`
+<.> xref:#ALL[ALL]
 +
 --
 suppress all '$$...' entries
 --
 
+== Members
+
+[#RO]
+=== RO
+
+suppress '$$RO', RO Spec representation
+
+[#HREF]
+=== HREF
+
+suppress '$$href', hyperlink to the representation
+
+[#ID]
+=== ID
+
+suppress '$$instanceId', instance id of the domain object
+
+[#DOMAIN_TYPE]
+=== DOMAIN_TYPE
+
+suppress '$$domainType', object spec of the domain object
+
+[#TITLE]
+=== TITLE
+
+suppress '$$title', title of the domain object
+
+[#ALL]
+=== ALL
+
+suppress all '$$...' entries
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/clock/VirtualClock.adoc b/antora/components/system/modules/generated/pages/index/applib/clock/VirtualClock.adoc
index 152ae2e..2518915 100644
--- a/antora/components/system/modules/generated/pages/index/applib/clock/VirtualClock.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/clock/VirtualClock.adoc
@@ -25,52 +25,52 @@ interface VirtualClock {
 }
 ----
 
-<.> `[teal]#*now*#()` : `Instant`
+<.> xref:#now[now]
 +
 --
 Returns the (virtual) time as an _Instant_ .
 --
-<.> `[teal]#*_system_*#()` : `xref:system:generated:index/applib/clock/VirtualClock.adoc[VirtualClock]`
+<.> xref:#system[system]
 +
 --
 Returns a the system's default ticking clock.
 --
-<.> `[teal]#*_nowAt_*#(Instant virtualNow)` : `xref:system:generated:index/applib/clock/VirtualClock.adoc[VirtualClock]`
+<.> xref:#nowAt[nowAt]
 +
 --
 Returns a ticking clock set to virtual time _Instant_ _virtualNow_
 --
-<.> `[teal]#*_frozenAt_*#(Instant frozenAt)` : `xref:system:generated:index/applib/clock/VirtualClock.adoc[VirtualClock]`
+<.> xref:#frozenAt[frozenAt]
 +
 --
 Always returns the time _Instant_ as given by _frozenAt_
 --
-<.> `[teal]#*_frozenTestClock_*#()` : `xref:system:generated:index/applib/clock/VirtualClock.adoc[VirtualClock]`
+<.> xref:#frozenTestClock[frozenTestClock]
 +
 --
 Always returns the time _Instant_ 2003/8/17 21:30:25 (UTC)
 --
-<.> `[teal]#*getEpochMillis*#()` : `long`
+<.> xref:#getEpochMillis[getEpochMillis]
 +
 --
 Returns the (virtual) time as the number of milliseconds since the epoch start.
 --
-<.> `[teal]#*localDate*#(ZoneId zoneId)` : `LocalDate`
+<.> xref:#localDate[localDate]
 +
 --
 Returns the (virtual) time as _LocalDate_ , using the _ZoneId_ timezone.
 --
-<.> `[teal]#*localDateTime*#(ZoneId zoneId)` : `LocalDateTime`
+<.> xref:#localDateTime[localDateTime]
 +
 --
 Returns the (virtual) time as _LocalDateTime_ , using the _ZoneId_ timezone.
 --
-<.> `[teal]#*offsetDateTime*#(ZoneId zoneId)` : `OffsetDateTime`
+<.> xref:#offsetDateTime[offsetDateTime]
 +
 --
 Returns the (virtual) time as _OffsetDateTime_ , using the _ZoneId_ timezone.
 --
-<.> `[line-through gray]#*asJodaDateTime*#(ZoneId zoneId)` : `DateTime`
+<.> xref:#asJodaDateTime[asJodaDateTime]
 +
 --
 [WARNING]
@@ -82,7 +82,7 @@ please migrate to java.time.*
 
 Returns the time as a Joda _org.joda.time.DateTime_ , using the _ZoneId#systemDefault() system default_ timezone.
 --
-<.> `[line-through gray]#*asJodaLocalDate*#(ZoneId zoneId)` : `LocalDate`
+<.> xref:#asJodaLocalDate[asJodaLocalDate]
 +
 --
 [WARNING]
@@ -95,3 +95,74 @@ please migrate to java.time.*
 Returns the time as a Joda _DateTime_ , using the _ZoneId#systemDefault() system default_ timezone.
 --
 
+== Members
+
+[#now]
+=== now
+
+Returns the (virtual) time as an _Instant_ .
+
+[#system]
+=== system
+
+Returns a the system's default ticking clock.
+
+[#nowAt]
+=== nowAt
+
+Returns a ticking clock set to virtual time _Instant_ _virtualNow_
+
+[#frozenAt]
+=== frozenAt
+
+Always returns the time _Instant_ as given by _frozenAt_
+
+[#frozenTestClock]
+=== frozenTestClock
+
+Always returns the time _Instant_ 2003/8/17 21:30:25 (UTC)
+
+[#getEpochMillis]
+=== getEpochMillis
+
+Returns the (virtual) time as the number of milliseconds since the epoch start.
+
+[#localDate]
+=== localDate
+
+Returns the (virtual) time as _LocalDate_ , using the _ZoneId_ timezone.
+
+[#localDateTime]
+=== localDateTime
+
+Returns the (virtual) time as _LocalDateTime_ , using the _ZoneId_ timezone.
+
+[#offsetDateTime]
+=== offsetDateTime
+
+Returns the (virtual) time as _OffsetDateTime_ , using the _ZoneId_ timezone.
+
+[#asJodaDateTime]
+=== asJodaDateTime
+
+[WARNING]
+====
+[red]#_deprecated:_#
+
+please migrate to java.time.*
+====
+
+Returns the time as a Joda _org.joda.time.DateTime_ , using the _ZoneId#systemDefault() system default_ timezone.
+
+[#asJodaLocalDate]
+=== asJodaLocalDate
+
+[WARNING]
+====
+[red]#_deprecated:_#
+
+please migrate to java.time.*
+====
+
+Returns the time as a Joda _DateTime_ , using the _ZoneId#systemDefault() system default_ timezone.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/EventObjectBase.adoc b/antora/components/system/modules/generated/pages/index/applib/events/EventObjectBase.adoc
index 5212499..19fddd6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/EventObjectBase.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/EventObjectBase.adoc
@@ -12,19 +12,36 @@ class EventObjectBase {
 }
 ----
 
-<.> `[teal]#*getSource*#()` : `T`
+<.> xref:#getSource[getSource]
 +
 --
 The object on which the Event initially occurred.
 --
-<.> `[teal]#*initSource*#(T source)` : `void`
+<.> xref:#initSource[initSource]
 +
 --
 A one-shot function. Only allowed to be called if a source has not already been set.
 --
-<.> `[teal]#*toString*#()` : `String`
+<.> xref:#toString[toString]
 +
 --
 Returns a String representation of this EventObject.
 --
 
+== Members
+
+[#getSource]
+=== getSource
+
+The object on which the Event initially occurred.
+
+[#initSource]
+=== initSource
+
+A one-shot function. Only allowed to be called if a source has not already been set.
+
+[#toString]
+=== toString
+
+Returns a String representation of this EventObject.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/domain/AbstractDomainEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/domain/AbstractDomainEvent.adoc
index 7dce78f..27310fb 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/domain/AbstractDomainEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/domain/AbstractDomainEvent.adoc
@@ -27,60 +27,122 @@ class AbstractDomainEvent {
 }
 ----
 
-<.> `[teal]#*AbstractDomainEvent*#()`
+<.> xref:#AbstractDomainEvent[AbstractDomainEvent]
 +
 --
 If used then the framework will set state via (non-API) setters.
-
-Because the xref:system:generated:index/applib/events/EventObjectBase.adoc[EventObjectBase] superclass prohibits a null source, a dummy value is temporarily used.
 --
-<.> `[teal]#*setMixedIn*#(Object mixedIn)` : `void`
+<.> xref:#setMixedIn[setMixedIn]
 +
 --
 Not API - set by the framework.
 --
-<.> `[teal]#*getSubject*#()` : `Object`
+<.> xref:#getSubject[getSubject]
 +
 --
 The subject of the event, which will be either the _#getSource() source_ for a regular action, or the _#getMixedIn() mixed-in_ domain object for a mixin.
 --
-<.> `[teal]#*setEventPhase*#(Phase phase)` : `void`
+<.> xref:#setEventPhase[setEventPhase]
 +
 --
 Not API, set by the framework.
 --
-<.> `[teal]#*setIdentifier*#(xref:system:generated:index/applib/Identifier.adoc[Identifier] identifier)` : `void`
+<.> xref:#setIdentifier[setIdentifier]
 +
 --
 Not API, set by the framework if the no-arg constructor is used.
 --
-<.> `[teal]#*hide*#()` : `void`
-<.> `[teal]#*disable*#(String reason)` : `void`
-<.> `[teal]#*disable*#(xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] reason)` : `void`
-<.> `[teal]#*invalidate*#(String reason)` : `void`
-<.> `[teal]#*invalidate*#(xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] reason)` : `void`
-<.> `[teal]#*veto*#(String reason, Object... args)` : `void`
+<.> xref:#hide[hide]
+<.> xref:#disable[disable]
+<.> xref:#disable[disable]
+<.> xref:#invalidate[invalidate]
+<.> xref:#invalidate[invalidate]
+<.> xref:#veto[veto]
 +
 --
 Use instead of _#hide()_ , _#disable(String)_ and _#invalidate(String)_ ; just delegates to appropriate vetoing method based upon the _#getEventPhase() phase_ .
-
-If hiding, just pass `null` for the parameter.
 --
-<.> `[teal]#*veto*#(xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] translatableReason)` : `void`
+<.> xref:#veto[veto]
 +
 --
 Use instead of _#hide()_ , _#disable(org.apache.isis.applib.services.i18n.TranslatableString)_ and _#invalidate(org.apache.isis.applib.services.i18n.TranslatableString)_ ; just delegates to appropriate vetoing method based upon the _#getEventPhase() phase_ .
-
-If hiding, just pass `null` for the parameter.
 --
-<.> `[teal]#*get*#(Object key)` : `Object`
+<.> xref:#get[get]
 +
 --
 Obtain user-data, as set by a previous _#getEventPhase() phase_ .
 --
-<.> `[teal]#*put*#(Object key, Object value)` : `void`
+<.> xref:#put[put]
 +
 --
 Set user-data, for the use of a subsequent _#getEventPhase() phase_ .
 --
 
+== Members
+
+[#AbstractDomainEvent]
+=== AbstractDomainEvent
+
+If used then the framework will set state via (non-API) setters.
+
+Because the xref:system:generated:index/applib/events/EventObjectBase.adoc[EventObjectBase] superclass prohibits a null source, a dummy value is temporarily used.
+
+[#setMixedIn]
+=== setMixedIn
+
+Not API - set by the framework.
+
+[#getSubject]
+=== getSubject
+
+The subject of the event, which will be either the _#getSource() source_ for a regular action, or the _#getMixedIn() mixed-in_ domain object for a mixin.
+
+[#setEventPhase]
+=== setEventPhase
+
+Not API, set by the framework.
+
+[#setIdentifier]
+=== setIdentifier
+
+Not API, set by the framework if the no-arg constructor is used.
+
+[#hide]
+=== hide
+
+[#disable]
+=== disable
+
+[#disable]
+=== disable
+
+[#invalidate]
+=== invalidate
+
+[#invalidate]
+=== invalidate
+
+[#veto]
+=== veto
+
+Use instead of _#hide()_ , _#disable(String)_ and _#invalidate(String)_ ; just delegates to appropriate vetoing method based upon the _#getEventPhase() phase_ .
+
+If hiding, just pass `null` for the parameter.
+
+[#veto]
+=== veto
+
+Use instead of _#hide()_ , _#disable(org.apache.isis.applib.services.i18n.TranslatableString)_ and _#invalidate(org.apache.isis.applib.services.i18n.TranslatableString)_ ; just delegates to appropriate vetoing method based upon the _#getEventPhase() phase_ .
+
+If hiding, just pass `null` for the parameter.
+
+[#get]
+=== get
+
+Obtain user-data, as set by a previous _#getEventPhase() phase_ .
+
+[#put]
+=== put
+
+Set user-data, for the use of a subsequent _#getEventPhase() phase_ .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/domain/ActionDomainEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/domain/ActionDomainEvent.adoc
index 82930d1..0178ce9 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/domain/ActionDomainEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/domain/ActionDomainEvent.adoc
@@ -16,36 +16,68 @@ class ActionDomainEvent {
 }
 ----
 
-<.> `[teal]#*ActionDomainEvent*#()`
+<.> xref:#ActionDomainEvent[ActionDomainEvent]
 +
 --
 If used then the framework will set state via (non-API) setters.
-
-Recommended because it reduces the amount of boilerplate in the domain object classes.
 --
-<.> `[teal]#*setReturnValue*#(Object returnValue)` : `void`
+<.> xref:#setReturnValue[setReturnValue]
 +
 --
 Set by the framework. Event subscribers can replace the value with some other value if they wish, though only in the _AbstractDomainEvent.Phase#EXECUTED_ phase.
 --
-<.> `[teal]#*setSemantics*#(xref:system:generated:index/applib/annotation/SemanticsOf.adoc[SemanticsOf] semantics)` : `void`
+<.> xref:#setSemantics[setSemantics]
 +
 --
 Not API - set by the framework.
 --
-<.> `[teal]#*setParameterNames*#(List<String> parameterNames)` : `void`
+<.> xref:#setParameterNames[setParameterNames]
 +
 --
 Not API - set by the framework.
 --
-<.> `[teal]#*setParameterTypes*#(List<Class<?>> parameterTypes)` : `void`
+<.> xref:#setParameterTypes[setParameterTypes]
 +
 --
 Not API - set by the framework.
 --
-<.> `[teal]#*setMixedIn*#(Object mixedIn)` : `void`
+<.> xref:#setMixedIn[setMixedIn]
 +
 --
 Not API - set by the framework.
 --
 
+== Members
+
+[#ActionDomainEvent]
+=== ActionDomainEvent
+
+If used then the framework will set state via (non-API) setters.
+
+Recommended because it reduces the amount of boilerplate in the domain object classes.
+
+[#setReturnValue]
+=== setReturnValue
+
+Set by the framework. Event subscribers can replace the value with some other value if they wish, though only in the _AbstractDomainEvent.Phase#EXECUTED_ phase.
+
+[#setSemantics]
+=== setSemantics
+
+Not API - set by the framework.
+
+[#setParameterNames]
+=== setParameterNames
+
+Not API - set by the framework.
+
+[#setParameterTypes]
+=== setParameterTypes
+
+Not API - set by the framework.
+
+[#setMixedIn]
+=== setMixedIn
+
+Not API - set by the framework.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/domain/CollectionDomainEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/domain/CollectionDomainEvent.adoc
index 34d0304..98afe43 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/domain/CollectionDomainEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/domain/CollectionDomainEvent.adoc
@@ -13,21 +13,38 @@ class CollectionDomainEvent {
 }
 ----
 
-<.> `[teal]#*CollectionDomainEvent*#()`
+<.> xref:#CollectionDomainEvent[CollectionDomainEvent]
 +
 --
 If used then the framework will set state via (non-API) setters.
-
-Recommended because it reduces the amount of boilerplate in the domain object classes.
 --
-<.> `[teal]#*setValue*#(T value)` : `void`
+<.> xref:#setValue[setValue]
 +
 --
 Not API, set by the framework.
 --
-<.> `[teal]#*setOf*#(Of of)` : `void`
+<.> xref:#setOf[setOf]
 +
 --
 Not API; updates from _Of#ACCESS_ to either _Of#ADD_TO_ or _Of#REMOVE_FROM_ when hits the _AbstractDomainEvent.Phase#VALIDATE validation phase_ .
 --
 
+== Members
+
+[#CollectionDomainEvent]
+=== CollectionDomainEvent
+
+If used then the framework will set state via (non-API) setters.
+
+Recommended because it reduces the amount of boilerplate in the domain object classes.
+
+[#setValue]
+=== setValue
+
+Not API, set by the framework.
+
+[#setOf]
+=== setOf
+
+Not API; updates from _Of#ACCESS_ to either _Of#ADD_TO_ or _Of#REMOVE_FROM_ when hits the _AbstractDomainEvent.Phase#VALIDATE validation phase_ .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/domain/PropertyDomainEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/domain/PropertyDomainEvent.adoc
index 0794970..7d9cb00 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/domain/PropertyDomainEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/domain/PropertyDomainEvent.adoc
@@ -11,11 +11,18 @@ class PropertyDomainEvent {
 }
 ----
 
-<.> `[teal]#*PropertyDomainEvent*#()`
+<.> xref:#PropertyDomainEvent[PropertyDomainEvent]
 +
 --
 If used then the framework will set state via (non-API) setters.
+--
+
+== Members
+
+[#PropertyDomainEvent]
+=== PropertyDomainEvent
+
+If used then the framework will set state via (non-API) setters.
 
 Recommended because it reduces the amount of boilerplate in the domain object classes.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/ui/AbstractUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/ui/AbstractUiEvent.adoc
index e76cb69..e5b548b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/ui/AbstractUiEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/ui/AbstractUiEvent.adoc
@@ -13,19 +13,36 @@ class AbstractUiEvent {
 }
 ----
 
-<.> `[teal]#*AbstractUiEvent*#()`
+<.> xref:#AbstractUiEvent[AbstractUiEvent]
 +
 --
 If used then the framework will set state via (non-API) setters.
 --
-<.> `[teal]#*get*#(Object key)` : `Object`
+<.> xref:#get[get]
 +
 --
 Obtain user-data, as set by any other subscribers.
 --
-<.> `[teal]#*put*#(Object key, Object value)` : `void`
+<.> xref:#put[put]
 +
 --
 Set user-data, for the use of other subscribers.
 --
 
+== Members
+
+[#AbstractUiEvent]
+=== AbstractUiEvent
+
+If used then the framework will set state via (non-API) setters.
+
+[#get]
+=== get
+
+Obtain user-data, as set by any other subscribers.
+
+[#put]
+=== put
+
+Set user-data, for the use of other subscribers.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/ui/CssClassUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/ui/CssClassUiEvent.adoc
index 1c6a5ea..c60b396 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/ui/CssClassUiEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/ui/CssClassUiEvent.adoc
@@ -14,14 +14,26 @@ class CssClassUiEvent {
 }
 ----
 
-<.> `[teal]#*CssClassUiEvent*#()`
+<.> xref:#CssClassUiEvent[CssClassUiEvent]
 +
 --
 If used then the framework will set state via (non-API) setters.
 --
-<.> `[teal]#*setCssClass*#(String cssClass)` : `void`
+<.> xref:#setCssClass[setCssClass]
 +
 --
 For subscribers to call to provide a CSS class for this object.
 --
 
+== Members
+
+[#CssClassUiEvent]
+=== CssClassUiEvent
+
+If used then the framework will set state via (non-API) setters.
+
+[#setCssClass]
+=== setCssClass
+
+For subscribers to call to provide a CSS class for this object.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/ui/IconUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/ui/IconUiEvent.adoc
index 99b0f8e..e608d96 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/ui/IconUiEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/ui/IconUiEvent.adoc
@@ -15,21 +15,38 @@ class IconUiEvent {
 }
 ----
 
-<.> `[teal]#*IconUiEvent*#()`
+<.> xref:#IconUiEvent[IconUiEvent]
 +
 --
 If used then the framework will set state via (non-API) setters.
-
-Because the _EventObject_ superclass prohibits a null source, a dummy value is temporarily used.
 --
-<.> `[teal]#*getIconName*#()` : `String`
+<.> xref:#getIconName[getIconName]
 +
 --
 The icon name as provided by a subscriber using _#setIconName(String)_ .
 --
-<.> `[teal]#*setIconName*#(String iconName)` : `void`
+<.> xref:#setIconName[setIconName]
 +
 --
 For subscribers to call to provide an icon name for this object.
 --
 
+== Members
+
+[#IconUiEvent]
+=== IconUiEvent
+
+If used then the framework will set state via (non-API) setters.
+
+Because the _EventObject_ superclass prohibits a null source, a dummy value is temporarily used.
+
+[#getIconName]
+=== getIconName
+
+The icon name as provided by a subscriber using _#setIconName(String)_ .
+
+[#setIconName]
+=== setIconName
+
+For subscribers to call to provide an icon name for this object.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/ui/LayoutUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/ui/LayoutUiEvent.adoc
index 200f3d2..c5ba3b8 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/ui/LayoutUiEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/ui/LayoutUiEvent.adoc
@@ -14,16 +14,28 @@ class LayoutUiEvent {
 }
 ----
 
-<.> `[teal]#*LayoutUiEvent*#()`
+<.> xref:#LayoutUiEvent[LayoutUiEvent]
 +
 --
 If used then the framework will set state via (non-API) setters.
-
-Because the _EventObject_ superclass prohibits a null source, a dummy value is temporarily used.
 --
-<.> `[teal]#*setLayout*#(String layout)` : `void`
+<.> xref:#setLayout[setLayout]
 +
 --
 For subscribers to call to provide a layout for this object.
 --
 
+== Members
+
+[#LayoutUiEvent]
+=== LayoutUiEvent
+
+If used then the framework will set state via (non-API) setters.
+
+Because the _EventObject_ superclass prohibits a null source, a dummy value is temporarily used.
+
+[#setLayout]
+=== setLayout
+
+For subscribers to call to provide a layout for this object.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/ui/TitleUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/ui/TitleUiEvent.adoc
index 52e9670..51ae096 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/ui/TitleUiEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/ui/TitleUiEvent.adoc
@@ -15,21 +15,38 @@ class TitleUiEvent {
 }
 ----
 
-<.> `[teal]#*TitleUiEvent*#()`
+<.> xref:#TitleUiEvent[TitleUiEvent]
 +
 --
 If used then the framework will set state via (non-API) setters.
-
-Because the _EventObject_ superclass prohibits a null source, a dummy value is temporarily used.
 --
-<.> `[teal]#*setTitle*#(String title)` : `void`
+<.> xref:#setTitle[setTitle]
 +
 --
 For subscribers to call to provide a (non-translated) title for this object.
 --
-<.> `[teal]#*setTranslatableTitle*#(xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] translatableTitle)` : `void`
+<.> xref:#setTranslatableTitle[setTranslatableTitle]
 +
 --
 For subscribers to call to provide a translatable (i18n) title for this object.
 --
 
+== Members
+
+[#TitleUiEvent]
+=== TitleUiEvent
+
+If used then the framework will set state via (non-API) setters.
+
+Because the _EventObject_ superclass prohibits a null source, a dummy value is temporarily used.
+
+[#setTitle]
+=== setTitle
+
+For subscribers to call to provide a (non-translated) title for this object.
+
+[#setTranslatableTitle]
+=== setTranslatableTitle
+
+For subscribers to call to provide a translatable (i18n) title for this object.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/TranslatableException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/TranslatableException.adoc
index 289f83a..19aa02f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/TranslatableException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/TranslatableException.adoc
@@ -2,7 +2,7 @@
 
 Exceptions that provide translations should implement this interface.
 
-The _org.apache.isis.applib.services.exceprecog.ExceptionRecognizer_ will automatically detect and use the translation. In addition, the integration testing support provides a rule ( `ExceptionRecognizerTranslations) that will exercise any thrown exceptions, ensuring tha the message is captured in the `translations.pofile so that it can be translated.
+The _org.apache.isis.applib.services.exceprecog.ExceptionRecognizer_ will automatically detect and use the translation. In addition, the integration testing support provides a rule ( `ExceptionRecognizerTranslations` ) that will exercise any thrown exceptions, ensuring tha the message is captured in the `translations.po` file so that it can be translated.
 
 == API
 
@@ -15,16 +15,28 @@ interface TranslatableException {
 }
 ----
 
-<.> `[teal]#*getTranslatableMessage*#()` : `xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString]`
+<.> xref:#getTranslatableMessage[getTranslatableMessage]
 +
 --
 In the spirit of _Exception#getLocalizedMessage()_ , but using xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] instead.
-
-If returns `null, then _Exception#getMessage()_ will be used as a fallback. This design allows the Isis-provided xref:system:generated:index/applib/exceptions/RecoverableException.adoc[RecoverableException] and xref:system:generated:index/applib/exceptions/UnrecoverableException.adoc[UnrecoverableException] to provide constructors that accept a xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] , but can be left as null for any existing code.
 --
-<.> `[teal]#*getTranslationContext*#()` : `String`
+<.> xref:#getTranslationContext[getTranslationContext]
 +
 --
 The context to use when translating the _#getTranslatableMessage() translatable message_ , as ultimately passed through to _org.apache.isis.applib.services.i18n.TranslationService#translate(String, String)_ .
 --
 
+== Members
+
+[#getTranslatableMessage]
+=== getTranslatableMessage
+
+In the spirit of _Exception#getLocalizedMessage()_ , but using xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] instead.
+
+If returns `null` , then _Exception#getMessage()_ will be used as a fallback. This design allows the Isis-provided xref:system:generated:index/applib/exceptions/RecoverableException.adoc[RecoverableException] and xref:system:generated:index/applib/exceptions/UnrecoverableException.adoc[UnrecoverableException] to provide constructors that accept a xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] , but can be left as null for any existing code.
+
+[#getTranslationContext]
+=== getTranslationContext
+
+The context to use when translating the _#getTranslatableMessage() translatable message_ , as ultimately passed through to _org.apache.isis.applib.services.i18n.TranslationService#translate(String, String)_ .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeAdapter.adoc b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeAdapter.adoc
index a896081..bda573b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeAdapter.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeAdapter.adoc
@@ -14,7 +14,18 @@ interface TreeAdapter {
 }
 ----
 
-<.> `[teal]#*parentOf*#(T value)` : `Optional<T>`
-<.> `[teal]#*childCountOf*#(T value)` : `int`
-<.> `[teal]#*childrenOf*#(T value)` : `Stream<T>`
+<.> xref:#parentOf[parentOf]
+<.> xref:#childCountOf[childCountOf]
+<.> xref:#childrenOf[childrenOf]
+
+== Members
+
+[#parentOf]
+=== parentOf
+
+[#childCountOf]
+=== childCountOf
+
+[#childrenOf]
+=== childrenOf
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeNode.adoc b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeNode.adoc
index 2d89470..ff41b05 100644
--- a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeNode.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeNode.adoc
@@ -33,21 +33,44 @@ interface TreeNode {
 }
 ----
 
-<.> `[teal]#*getTreeState*#()` : `xref:system:generated:index/applib/graph/tree/TreeState.adoc[TreeState]`
-<.> `[teal]#*expand*#(xref:system:generated:index/applib/graph/tree/TreePath.adoc[TreePath]... treePaths)` : `void`
+<.> xref:#getTreeState[getTreeState]
+<.> xref:#expand[expand]
 +
 --
 Adds _treePaths_ to the set of expanded nodes, as held by this tree's shared state object.
 --
-<.> `[teal]#*collapse*#(xref:system:generated:index/applib/graph/tree/TreePath.adoc[TreePath]... treePaths)` : `void`
+<.> xref:#collapse[collapse]
 +
 --
 Removes _treePaths_ from the set of expanded nodes, as held by this tree's shared state object.
 --
-<.> `[teal]#*_lazy_*#<T>(T node, Class<? extends TreeAdapter<T>> treeAdapterClass)` : `xref:system:generated:index/applib/graph/tree/TreeNode.adoc[TreeNode]<T>`
+<.> xref:#lazy[lazy]
 +
 --
 Convenient shortcut.
 --
-<.> `[teal]#*getTreeAdapterClass*#()` : `Class<? extends TreeAdapter<T>>`
+<.> xref:#getTreeAdapterClass[getTreeAdapterClass]
+
+== Members
+
+[#getTreeState]
+=== getTreeState
+
+[#expand]
+=== expand
+
+Adds _treePaths_ to the set of expanded nodes, as held by this tree's shared state object.
+
+[#collapse]
+=== collapse
+
+Removes _treePaths_ from the set of expanded nodes, as held by this tree's shared state object.
+
+[#lazy]
+=== lazy
+
+Convenient shortcut.
+
+[#getTreeAdapterClass]
+=== getTreeAdapterClass
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreePath.adoc b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreePath.adoc
index 515a13d..7e99be4 100644
--- a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreePath.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreePath.adoc
@@ -20,6 +20,14 @@ interface TreePath {
 }
 ----
 
-<.> `[teal]#*append*#(int indexWithinSiblings)` : `xref:system:generated:index/applib/graph/tree/TreePath.adoc[TreePath]`
-<.> `[teal]#*getParentIfAny*#()` : `xref:system:generated:index/applib/graph/tree/TreePath.adoc[TreePath]`
+<.> xref:#append[append]
+<.> xref:#getParentIfAny[getParentIfAny]
+
+== Members
+
+[#append]
+=== append
+
+[#getParentIfAny]
+=== getParentIfAny
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutData.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutData.adoc
index f66c91a..0e45f10 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutData.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutData.adoc
@@ -44,30 +44,52 @@ class ActionLayoutData {
 }
 ----
 
-<.> `[teal]#*getId*#()` : `String`
+<.> xref:#getId[getId]
 +
 --
 Method name.
-
-Overloaded methods are not supported.
 --
-<.> `[teal]#*getOwner*#()` : `xref:system:generated:index/applib/layout/component/ActionLayoutDataOwner.adoc[ActionLayoutDataOwner]`
+<.> xref:#getOwner[getOwner]
 +
 --
 Owner.
-
-Set programmatically by framework after reading in from XML.
 --
-<.> `[teal]#*getMetadataError*#()` : `String`
+<.> xref:#getMetadataError[getMetadataError]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> `[teal]#*getLink*#()` : `xref:system:generated:index/applib/layout/links/Link.adoc[Link]`
+<.> xref:#getLink[getLink]
 +
 --
 The link to access this resource from the REST API (Restful Objects viewer).
+--
+
+== Members
+
+[#getId]
+=== getId
+
+Method name.
+
+Overloaded methods are not supported.
+
+[#getOwner]
+=== getOwner
+
+Owner.
+
+Set programmatically by framework after reading in from XML.
+
+[#getMetadataError]
+=== getMetadataError
+
+For diagnostics; populated by the framework if and only if a metadata error.
+
+[#getLink]
+=== getLink
+
+The link to access this resource from the REST API (Restful Objects viewer).
 
 Populated by the framework automatically.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutData.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutData.adoc
index afd3ebe..f321a57 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutData.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutData.adoc
@@ -40,33 +40,60 @@ class CollectionLayoutData {
 }
 ----
 
-<.> `[teal]#*getId*#()` : `String`
+<.> xref:#getId[getId]
 +
 --
 Collection identifier, being the getter method without "get" prefix, first letter lower cased.
 --
-<.> `[teal]#*getDefaultView*#()` : `String`
+<.> xref:#getDefaultView[getDefaultView]
 +
 --
-Typically `tableor `hidden, but could be any other named view that is configured and appropriate, eg `gmap3or `fullcalendar2.
+Typically `table` or `hidden` , but could be any other named view that is configured and appropriate, eg `gmap3` or `fullcalendar2` .
 --
-<.> `[teal]#*getOwner*#()` : `xref:system:generated:index/applib/layout/component/CollectionLayoutDataOwner.adoc[CollectionLayoutDataOwner]`
+<.> xref:#getOwner[getOwner]
 +
 --
 Owner.
-
-Set programmatically by framework after reading in from XML.
 --
-<.> `[teal]#*getMetadataError*#()` : `String`
+<.> xref:#getMetadataError[getMetadataError]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> `[teal]#*getLink*#()` : `xref:system:generated:index/applib/layout/links/Link.adoc[Link]`
+<.> xref:#getLink[getLink]
 +
 --
 The link to access this resource from the REST API (Restful Objects viewer).
+--
+
+== Members
+
+[#getId]
+=== getId
+
+Collection identifier, being the getter method without "get" prefix, first letter lower cased.
+
+[#getDefaultView]
+=== getDefaultView
+
+Typically `table` or `hidden` , but could be any other named view that is configured and appropriate, eg `gmap3` or `fullcalendar2` .
+
+[#getOwner]
+=== getOwner
+
+Owner.
+
+Set programmatically by framework after reading in from XML.
+
+[#getMetadataError]
+=== getMetadataError
+
+For diagnostics; populated by the framework if and only if a metadata error.
+
+[#getLink]
+=== getLink
+
+The link to access this resource from the REST API (Restful Objects viewer).
 
 Populated by the framework automatically.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutData.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutData.adoc
index 84eff9a..1127346 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutData.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutData.adoc
@@ -34,23 +34,40 @@ class DomainObjectLayoutData {
 }
 ----
 
-<.> `[teal]#*getMetadataError*#()` : `String`
+<.> xref:#getMetadataError[getMetadataError]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> `[teal]#*getOwner*#()` : `xref:system:generated:index/applib/layout/component/DomainObjectLayoutDataOwner.adoc[DomainObjectLayoutDataOwner]`
+<.> xref:#getOwner[getOwner]
 +
 --
 Owner.
-
-Set programmatically by framework after reading in from XML.
 --
-<.> `[teal]#*getLink*#()` : `xref:system:generated:index/applib/layout/links/Link.adoc[Link]`
+<.> xref:#getLink[getLink]
 +
 --
 The link to access this resource from the REST API (Restful Objects viewer).
+--
+
+== Members
+
+[#getMetadataError]
+=== getMetadataError
+
+For diagnostics; populated by the framework if and only if a metadata error.
+
+[#getOwner]
+=== getOwner
+
+Owner.
+
+Set programmatically by framework after reading in from XML.
+
+[#getLink]
+=== getLink
+
+The link to access this resource from the REST API (Restful Objects viewer).
 
 Populated by the framework automatically.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSet.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSet.adoc
index 3a0b454..00e3b56 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSet.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSet.adoc
@@ -30,40 +30,72 @@ class FieldSet {
 }
 ----
 
-<.> `[teal]#*getId*#()` : `String`
+<.> xref:#getId[getId]
 +
 --
 As per <div id="...">...</div> : must be unique across entire page.
 --
-<.> `[teal]#*isUnreferencedActions*#()` : `Boolean`
+<.> xref:#isUnreferencedActions[isUnreferencedActions]
 +
 --
 Whether this fieldset should be used to hold any unreferenced actions (contributed or "native").
-
-Any layout must have precisely one fieldset or xref:system:generated:index/applib/layout/grid/bootstrap3/BS3Col.adoc[BS3Col] that has this attribute set.
 --
-<.> `[teal]#*isUnreferencedProperties*#()` : `Boolean`
+<.> xref:#isUnreferencedProperties[isUnreferencedProperties]
 +
 --
 Whether this fieldset should be used to hold any unreferenced properties (contributed or "native").
-
-Any grid layout must have precisely one fieldset that has this attribute set.
 --
-<.> `[teal]#*getName*#()` : `String`
+<.> xref:#getName[getName]
 +
 --
 Corresponds to the _MemberOrder#name()_ (when applied to properties).
 --
-<.> `[teal]#*getOwner*#()` : `xref:system:generated:index/applib/layout/component/FieldSetOwner.adoc[FieldSetOwner]`
+<.> xref:#getOwner[getOwner]
 +
 --
 Owner.
-
-Set programmatically by framework after reading in from XML.
 --
-<.> `[teal]#*getMetadataError*#()` : `String`
+<.> xref:#getMetadataError[getMetadataError]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
 
+== Members
+
+[#getId]
+=== getId
+
+As per <div id="...">...</div> : must be unique across entire page.
+
+[#isUnreferencedActions]
+=== isUnreferencedActions
+
+Whether this fieldset should be used to hold any unreferenced actions (contributed or "native").
+
+Any layout must have precisely one fieldset or xref:system:generated:index/applib/layout/grid/bootstrap3/BS3Col.adoc[BS3Col] that has this attribute set.
+
+[#isUnreferencedProperties]
+=== isUnreferencedProperties
+
+Whether this fieldset should be used to hold any unreferenced properties (contributed or "native").
+
+Any grid layout must have precisely one fieldset that has this attribute set.
+
+[#getName]
+=== getName
+
+Corresponds to the _MemberOrder#name()_ (when applied to properties).
+
+[#getOwner]
+=== getOwner
+
+Owner.
+
+Set programmatically by framework after reading in from XML.
+
+[#getMetadataError]
+=== getMetadataError
+
+For diagnostics; populated by the framework if and only if a metadata error.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegion.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegion.adoc
index c3930e6..6ee68e4 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegion.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegion.adoc
@@ -2,7 +2,7 @@
 
 Represents an area on the page containing one or several related members.
 
-Implementations include a `FieldSet(containing a number of properties and their actions), and a `CollectionLayoutData(containing a single collection and associated actions)
+Implementations include a `FieldSet` (containing a number of properties and their actions), and a `CollectionLayoutData` (containing a single collection and associated actions)
 
 == API
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/PropertyLayoutData.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/PropertyLayoutData.adoc
index dee05a9..37cba75 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/PropertyLayoutData.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/PropertyLayoutData.adoc
@@ -46,28 +46,50 @@ class PropertyLayoutData {
 }
 ----
 
-<.> `[teal]#*getId*#()` : `String`
+<.> xref:#getId[getId]
 +
 --
 Property identifier, being the getter method without "get" or "is" prefix, first letter lower cased.
 --
-<.> `[teal]#*getOwner*#()` : `xref:system:generated:index/applib/layout/component/FieldSet.adoc[FieldSet]`
+<.> xref:#getOwner[getOwner]
 +
 --
 Owner.
-
-Set programmatically by framework after reading in from XML.
 --
-<.> `[teal]#*getMetadataError*#()` : `String`
+<.> xref:#getMetadataError[getMetadataError]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> `[teal]#*getLink*#()` : `xref:system:generated:index/applib/layout/links/Link.adoc[Link]`
+<.> xref:#getLink[getLink]
 +
 --
 The link to access this resource from the REST API (Restful Objects viewer).
+--
+
+== Members
+
+[#getId]
+=== getId
+
+Property identifier, being the getter method without "get" or "is" prefix, first letter lower cased.
+
+[#getOwner]
+=== getOwner
+
+Owner.
+
+Set programmatically by framework after reading in from XML.
+
+[#getMetadataError]
+=== getMetadataError
+
+For diagnostics; populated by the framework if and only if a metadata error.
+
+[#getLink]
+=== getLink
+
+The link to access this resource from the REST API (Restful Objects viewer).
 
 Populated by the framework automatically.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutData.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutData.adoc
index d9298dd..1699d0b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutData.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutData.adoc
@@ -37,30 +37,52 @@ class ServiceActionLayoutData {
 }
 ----
 
-<.> `[teal]#*getId*#()` : `String`
+<.> xref:#getId[getId]
 +
 --
 Method name.
-
-Overloaded methods are not supported.
 --
-<.> `[teal]#*getOwner*#()` : `xref:system:generated:index/applib/layout/component/ServiceActionLayoutDataOwner.adoc[ServiceActionLayoutDataOwner]`
+<.> xref:#getOwner[getOwner]
 +
 --
 Owner.
-
-Set programmatically by framework after reading in from XML.
 --
-<.> `[teal]#*getMetadataError*#()` : `String`
+<.> xref:#getMetadataError[getMetadataError]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> `[teal]#*getLink*#()` : `xref:system:generated:index/applib/layout/links/Link.adoc[Link]`
+<.> xref:#getLink[getLink]
 +
 --
 The link to access this resource from the REST API (Restful Objects viewer).
+--
+
+== Members
+
+[#getId]
+=== getId
+
+Method name.
+
+Overloaded methods are not supported.
+
+[#getOwner]
+=== getOwner
+
+Owner.
+
+Set programmatically by framework after reading in from XML.
+
+[#getMetadataError]
+=== getMetadataError
+
+For diagnostics; populated by the framework if and only if a metadata error.
+
+[#getLink]
+=== getLink
+
+The link to access this resource from the REST API (Restful Objects viewer).
 
 Populated by the framework automatically.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Col.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Col.adoc
index 84b9794..136fa99 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Col.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Col.adoc
@@ -41,33 +41,60 @@ class BS3Col {
 }
 ----
 
-<.> `[teal]#*getId*#()` : `String`
+<.> xref:#getId[getId]
 +
 --
 As per <div id="...">...</div> : must be unique across entire page.
 --
-<.> `[teal]#*isUnreferencedActions*#()` : `Boolean`
+<.> xref:#isUnreferencedActions[isUnreferencedActions]
 +
 --
 Whether this column should be used to hold any unreferenced actions (contributed or "native").
-
-Any layout must have precisely one column or xref:system:generated:index/applib/layout/component/FieldSet.adoc[FieldSet] that has this attribute set.
 --
-<.> `[teal]#*isUnreferencedCollections*#()` : `Boolean`
+<.> xref:#isUnreferencedCollections[isUnreferencedCollections]
 +
 --
 Whether this column should be used to hold any unreferenced collections (contributed or "native").
-
-Any layout must have precisely one column or xref:system:generated:index/applib/layout/grid/bootstrap3/BS3TabGroup.adoc[BS3TabGroup] that has this attribute set.
 --
-<.> `[teal]#*getDomainObject*#()` : `xref:system:generated:index/applib/layout/component/DomainObjectLayoutData.adoc[DomainObjectLayoutData]`
+<.> xref:#getDomainObject[getDomainObject]
 +
 --
 Whether to show the object's icon and title.
 --
-<.> `[teal]#*getMetadataError*#()` : `String`
+<.> xref:#getMetadataError[getMetadataError]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
 
+== Members
+
+[#getId]
+=== getId
+
+As per <div id="...">...</div> : must be unique across entire page.
+
+[#isUnreferencedActions]
+=== isUnreferencedActions
+
+Whether this column should be used to hold any unreferenced actions (contributed or "native").
+
+Any layout must have precisely one column or xref:system:generated:index/applib/layout/component/FieldSet.adoc[FieldSet] that has this attribute set.
+
+[#isUnreferencedCollections]
+=== isUnreferencedCollections
+
+Whether this column should be used to hold any unreferenced collections (contributed or "native").
+
+Any layout must have precisely one column or xref:system:generated:index/applib/layout/grid/bootstrap3/BS3TabGroup.adoc[BS3TabGroup] that has this attribute set.
+
+[#getDomainObject]
+=== getDomainObject
+
+Whether to show the object's icon and title.
+
+[#getMetadataError]
+=== getMetadataError
+
+For diagnostics; populated by the framework if and only if a metadata error.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Element.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Element.adoc
index c0e308f..d05a236 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Element.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Element.adoc
@@ -11,9 +11,16 @@ interface BS3Element {
 }
 ----
 
-<.> `[teal]#*getCssClass*#()` : `String`
+<.> xref:#getCssClass[getCssClass]
 +
 --
 Any additional CSS classes to render on the page element corresponding to this object, eg as per theBootstrap mixinsor just for custom styling.
 --
 
+== Members
+
+[#getCssClass]
+=== getCssClass
+
+Any additional CSS classes to render on the page element corresponding to this object, eg as per theBootstrap mixinsor just for custom styling.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ElementAbstract.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ElementAbstract.adoc
index fde5656..7ab1c0b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ElementAbstract.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ElementAbstract.adoc
@@ -13,9 +13,16 @@ class BS3ElementAbstract {
 }
 ----
 
-<.> `[teal]#*getCssClass*#()` : `String`
+<.> xref:#getCssClass[getCssClass]
 +
 --
 Any additional CSS classes to render on the page element corresponding to this object, eg as per theBootstrap mixinsor just for custom styling.
 --
 
+== Members
+
+[#getCssClass]
+=== getCssClass
+
+Any additional CSS classes to render on the page element corresponding to this object, eg as per theBootstrap mixinsor just for custom styling.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Grid.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Grid.adoc
index 0fd4818..caf829f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Grid.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Grid.adoc
@@ -23,9 +23,16 @@ class BS3Grid {
 }
 ----
 
-<.> `[teal]#*getMetadataErrors*#()` : `List<String>`
+<.> xref:#getMetadataErrors[getMetadataErrors]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
 
+== Members
+
+[#getMetadataErrors]
+=== getMetadataErrors
+
+For diagnostics; populated by the framework if and only if a metadata error.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Row.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Row.adoc
index 48adf61..3d35515 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Row.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Row.adoc
@@ -23,21 +23,38 @@ class BS3Row {
 }
 ----
 
-<.> `[teal]#*getId*#()` : `String`
+<.> xref:#getId[getId]
 +
 --
 As per <div id="...">...</div> : must be unique across entire page.
 --
-<.> `[teal]#*getMetadataError*#()` : `String`
+<.> xref:#getMetadataError[getMetadataError]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> `[teal]#*getOwner*#()` : `xref:system:generated:index/applib/layout/grid/bootstrap3/BS3RowOwner.adoc[BS3RowOwner]`
+<.> xref:#getOwner[getOwner]
 +
 --
 Owner.
+--
+
+== Members
+
+[#getId]
+=== getId
+
+As per <div id="...">...</div> : must be unique across entire page.
+
+[#getMetadataError]
+=== getMetadataError
+
+For diagnostics; populated by the framework if and only if a metadata error.
+
+[#getOwner]
+=== getOwner
+
+Owner.
 
 Set programmatically by framework after reading in from XML.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContent.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContent.adoc
index 6b55d14..955af9e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContent.adoc
@@ -18,16 +18,28 @@ class BS3RowContent {
 }
 ----
 
-<.> `[teal]#*getSize*#()` : `xref:system:generated:index/applib/layout/grid/bootstrap3/Size.adoc[Size]`
+<.> xref:#getSize[getSize]
 +
 --
 Default if not specified is _Size#MD_ .
 --
-<.> `[teal]#*getOwner*#()` : `xref:system:generated:index/applib/layout/grid/bootstrap3/BS3RowContentOwner.adoc[BS3RowContentOwner]`
+<.> xref:#getOwner[getOwner]
 +
 --
 Owner.
+--
+
+== Members
+
+[#getSize]
+=== getSize
+
+Default if not specified is _Size#MD_ .
+
+[#getOwner]
+=== getOwner
+
+Owner.
 
 Set programmatically by framework after reading in from XML.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Tab.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Tab.adoc
index de11179..f0c49b1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Tab.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Tab.adoc
@@ -21,11 +21,18 @@ class BS3Tab {
 }
 ----
 
-<.> `[teal]#*getOwner*#()` : `xref:system:generated:index/applib/layout/grid/bootstrap3/BS3TabOwner.adoc[BS3TabOwner]`
+<.> xref:#getOwner[getOwner]
 +
 --
 Owner.
+--
+
+== Members
+
+[#getOwner]
+=== getOwner
+
+Owner.
 
 Set programmatically by framework after reading in from XML.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroup.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroup.adoc
index b710c5a..072b076 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroup.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroup.adoc
@@ -22,28 +22,50 @@ class BS3TabGroup {
 }
 ----
 
-<.> `[teal]#*isUnreferencedCollections*#()` : `Boolean`
+<.> xref:#isUnreferencedCollections[isUnreferencedCollections]
 +
 --
 Whether this tab group should be used to hold any unreferenced collections (contributed or "native").
-
-Any layout must have precisely one tab group or xref:system:generated:index/applib/layout/grid/bootstrap3/BS3Col.adoc[BS3Col] that has this attribute set.
 --
-<.> `[teal]#*isCollapseIfOne*#()` : `Boolean`
+<.> xref:#isCollapseIfOne[isCollapseIfOne]
 +
 --
 If there is a single tab in the tabgroup, then whether to collapse and render without the outer tab.
 --
-<.> `[teal]#*getOwner*#()` : `xref:system:generated:index/applib/layout/grid/bootstrap3/BS3TabGroupOwner.adoc[BS3TabGroupOwner]`
+<.> xref:#getOwner[getOwner]
 +
 --
 Owner.
-
-Set programmatically by framework after reading in from XML.
 --
-<.> `[teal]#*getMetadataError*#()` : `String`
+<.> xref:#getMetadataError[getMetadataError]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
 
+== Members
+
+[#isUnreferencedCollections]
+=== isUnreferencedCollections
+
+Whether this tab group should be used to hold any unreferenced collections (contributed or "native").
+
+Any layout must have precisely one tab group or xref:system:generated:index/applib/layout/grid/bootstrap3/BS3Col.adoc[BS3Col] that has this attribute set.
+
+[#isCollapseIfOne]
+=== isCollapseIfOne
+
+If there is a single tab in the tabgroup, then whether to collapse and render without the outer tab.
+
+[#getOwner]
+=== getOwner
+
+Owner.
+
+Set programmatically by framework after reading in from XML.
+
+[#getMetadataError]
+=== getMetadataError
+
+For diagnostics; populated by the framework if and only if a metadata error.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/HasCssId.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/HasCssId.adoc
index a0e9ac4..2f2a266 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/HasCssId.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/HasCssId.adoc
@@ -10,9 +10,16 @@ interface HasCssId {
 }
 ----
 
-<.> `[teal]#*getId*#()` : `String`
+<.> xref:#getId[getId]
 +
 --
 As per <div id="...">...</div> : must be unique across entire page.
 --
 
+== Members
+
+[#getId]
+=== getId
+
+As per <div id="...">...</div> : must be unique across entire page.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3Menu.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3Menu.adoc
index bfb8e82..83c622e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3Menu.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3Menu.adoc
@@ -20,11 +20,18 @@ class BS3Menu {
 }
 ----
 
-<.> `[teal]#*isUnreferencedActions*#()` : `Boolean`
+<.> xref:#isUnreferencedActions[isUnreferencedActions]
 +
 --
 Whether this menu should be used to hold any unreferenced actions.
+--
+
+== Members
+
+[#isUnreferencedActions]
+=== isUnreferencedActions
+
+Whether this menu should be used to hold any unreferenced actions.
 
 Any menubars layout must have precisely one menu that has this attribute set.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc
index 9d5610c..d1b75a3 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc
@@ -22,9 +22,16 @@ class BS3MenuBars {
 }
 ----
 
-<.> `[teal]#*getMetadataError*#()` : `String`
+<.> xref:#getMetadataError[getMetadataError]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
 
+== Members
+
+[#getMetadataError]
+=== getMetadataError
+
+For diagnostics; populated by the framework if and only if a metadata error.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/query/Query.adoc b/antora/components/system/modules/generated/pages/index/applib/query/Query.adoc
index 006c2cc..faa1437 100644
--- a/antora/components/system/modules/generated/pages/index/applib/query/Query.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/query/Query.adoc
@@ -26,19 +26,36 @@ interface Query {
 }
 ----
 
-<.> `[teal]#*getResultType*#()` : `Class<T>`
+<.> xref:#getResultType[getResultType]
 +
 --
 The _Class_ of the objects returned by this query.
 --
-<.> `[teal]#*getDescription*#()` : `String`
+<.> xref:#getDescription[getDescription]
 +
 --
 A human-readable representation of this query and its values.
 --
-<.> `[teal]#*getRange*#()` : `xref:system:generated:index/applib/query/QueryRange.adoc[QueryRange]`
+<.> xref:#getRange[getRange]
 +
 --
 Returns a model with start index into the set table and maximal number of items to return.
 --
 
+== Members
+
+[#getResultType]
+=== getResultType
+
+The _Class_ of the objects returned by this query.
+
+[#getDescription]
+=== getDescription
+
+A human-readable representation of this query and its values.
+
+[#getRange]
+=== getRange
+
+Returns a model with start index into the set table and maximal number of items to return.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/query/QueryRange.adoc b/antora/components/system/modules/generated/pages/index/applib/query/QueryRange.adoc
index d99c3e9..3515e0e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/query/QueryRange.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/query/QueryRange.adoc
@@ -24,34 +24,66 @@ interface QueryRange {
 }
 ----
 
-<.> `[teal]#*getStart*#()` : `long`
+<.> xref:#getStart[getStart]
 +
 --
 The start index into the set table. (non-negative)
 --
-<.> `[teal]#*getLimit*#()` : `long`
+<.> xref:#getLimit[getLimit]
 +
 --
 The maximum number of items to return, starting at _#getStart()_ (non-negative)
 --
-<.> `[teal]#*getEnd*#()` : `long`
+<.> xref:#getEnd[getEnd]
 +
 --
 The end index into the set table. Overflow is ignored. (non-negative)
 --
-<.> `[teal]#*getStartAsInt*#()` : `int`
+<.> xref:#getStartAsInt[getStartAsInt]
 +
 --
 The start index into the set table (as java int primitive)
 --
-<.> `[teal]#*getLimitAsInt*#()` : `int`
+<.> xref:#getLimitAsInt[getLimitAsInt]
 +
 --
 The maximum number of items to return (as java int primitive) if _limit_ overflows an int, _Integer#MAX_VALUE_ is returned.
 --
-<.> `[teal]#*getEndAsInt*#()` : `int`
+<.> xref:#getEndAsInt[getEndAsInt]
 +
 --
 The end index into the set table. Overflow is ignored. (as java int primitive) if _end_ overflows an int, _Integer#MAX_VALUE_ is returned.
 --
 
+== Members
+
+[#getStart]
+=== getStart
+
+The start index into the set table. (non-negative)
+
+[#getLimit]
+=== getLimit
+
+The maximum number of items to return, starting at _#getStart()_ (non-negative)
+
+[#getEnd]
+=== getEnd
+
+The end index into the set table. Overflow is ignored. (non-negative)
+
+[#getStartAsInt]
+=== getStartAsInt
+
+The start index into the set table (as java int primitive)
+
+[#getLimitAsInt]
+=== getLimitAsInt
+
+The maximum number of items to return (as java int primitive) if _limit_ overflows an int, _Integer#MAX_VALUE_ is returned.
+
+[#getEndAsInt]
+=== getEndAsInt
+
+The end index into the set table. Overflow is ignored. (as java int primitive) if _end_ overflows an int, _Integer#MAX_VALUE_ is returned.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/DomainChangeRecord.adoc b/antora/components/system/modules/generated/pages/index/applib/services/DomainChangeRecord.adoc
index 71cea27..aae716d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/DomainChangeRecord.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/DomainChangeRecord.adoc
@@ -20,55 +20,102 @@ interface DomainChangeRecord {
 }
 ----
 
-<.> `[teal]#*getType*#()` : `ChangeType`
+<.> xref:#getType[getType]
 +
 --
 Distinguishes commands from audit entries from published events/interactions (when these are shown mixed together in a (standalone) table).
 --
-<.> `[teal]#*getUniqueId*#()` : `UUID`
+<.> xref:#getUniqueId[getUniqueId]
 +
 --
 The unique identifier (a GUID) of the transaction in which this change occurred.
 --
-<.> `[teal]#*getUsername*#()` : `String`
+<.> xref:#getUsername[getUsername]
 +
 --
 The user that caused the change.
 --
-<.> `[teal]#*getTimestamp*#()` : `Timestamp`
+<.> xref:#getTimestamp[getTimestamp]
 +
 --
 The time that the change occurred.
 --
-<.> `[teal]#*getTargetObjectType*#()` : `String`
+<.> xref:#getTargetObjectType[getTargetObjectType]
 +
 --
 The object type of the domain object being changed.
 --
-<.> `[teal]#*getTarget*#()` : `xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark]`
+<.> xref:#getTarget[getTarget]
 +
 --
 The xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] identifying the domain object that has changed.
 --
-<.> `[teal]#*getTargetMember*#()` : `String`
+<.> xref:#getTargetMember[getTargetMember]
 +
 --
 The member interaction (ie action invocation or property edit) which caused the domain object to be changed.
-
-Populated for commands and for published events that represent action invocations or property edits.
 --
-<.> `[teal]#*getPreValue*#()` : `String`
+<.> xref:#getPreValue[getPreValue]
 +
 --
 The value of the property prior to it being changed.
-
-Populated only for audit entries.
 --
-<.> `[teal]#*getPostValue*#()` : `String`
+<.> xref:#getPostValue[getPostValue]
 +
 --
 The value of the property after it has changed.
+--
+
+== Members
+
+[#getType]
+=== getType
+
+Distinguishes commands from audit entries from published events/interactions (when these are shown mixed together in a (standalone) table).
+
+[#getUniqueId]
+=== getUniqueId
+
+The unique identifier (a GUID) of the transaction in which this change occurred.
+
+[#getUsername]
+=== getUsername
+
+The user that caused the change.
+
+[#getTimestamp]
+=== getTimestamp
+
+The time that the change occurred.
+
+[#getTargetObjectType]
+=== getTargetObjectType
+
+The object type of the domain object being changed.
+
+[#getTarget]
+=== getTarget
+
+The xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] identifying the domain object that has changed.
+
+[#getTargetMember]
+=== getTargetMember
+
+The member interaction (ie action invocation or property edit) which caused the domain object to be changed.
+
+Populated for commands and for published events that represent action invocations or property edits.
+
+[#getPreValue]
+=== getPreValue
+
+The value of the property prior to it being changed.
+
+Populated only for audit entries.
+
+[#getPostValue]
+=== getPostValue
+
+The value of the property after it has changed.
 
 Populated only for audit entries.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/acceptheader/AcceptHeaderService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/acceptheader/AcceptHeaderService.adoc
index 9805e10..99d5902 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/acceptheader/AcceptHeaderService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/acceptheader/AcceptHeaderService.adoc
@@ -14,11 +14,18 @@ interface AcceptHeaderService {
 }
 ----
 
-<.> `[teal]#*getAcceptableMediaTypes*#()` : `List<MediaType>`
+<.> xref:#getAcceptableMediaTypes[getAcceptableMediaTypes]
 +
 --
 The intention is that this service only returns a list when the request is initiated through the _Restful Objects viewer_.
+--
+
+== Members
+
+[#getAcceptableMediaTypes]
+=== getAcceptableMediaTypes
+
+The intention is that this service only returns a list when the request is initiated through the _Restful Objects viewer_.
 
 Otherwise the service will likely return `null`.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/Bookmark.adoc b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/Bookmark.adoc
index f162c5f..f8ef9d6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/Bookmark.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/Bookmark.adoc
@@ -20,16 +20,28 @@ class Bookmark {
 }
 ----
 
-<.> `[teal]#*_parse_*#(String str)` : `Optional<xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark]>`
+<.> xref:#parse[parse]
 +
 --
 Round-trip with _#toString()_ representation.
 --
-<.> `[teal]#*toString*#()` : `String`
+<.> xref:#toString[toString]
 +
 --
 The canonical form of the xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] , that is " _#getObjectType() objectType_ _#SEPARATOR_ _#getIdentifier()_ ".
+--
+
+== Members
+
+[#parse]
+=== parse
+
+Round-trip with _#toString()_ representation.
+
+[#toString]
+=== toString
+
+The canonical form of the xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] , that is " _#getObjectType() objectType_ _#SEPARATOR_ _#getIdentifier()_ ".
 
 This is parseable by the _#parse(String)_ .
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkService.adoc
index 9b571d3..6940dde 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkService.adoc
@@ -17,32 +17,62 @@ interface BookmarkService {
 }
 ----
 
-<.> `[teal]#*bookmarkFor*#(Object domainObject)` : `xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark]`
+<.> xref:#bookmarkFor[bookmarkFor]
 +
 --
 Returns the xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] for the given domain object.
-
- *Note* : Not every domain object is bookmark-able: only entities, view models and services (NOT values or collections)
 --
-<.> `[teal]#*bookmarkForElseThrow*#(Object domainObject)` : `xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark]`
+<.> xref:#bookmarkForElseThrow[bookmarkForElseThrow]
 +
 --
 As per _#bookmarkFor(Object)_ , but requires that a non-null xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] is returned.
 --
-<.> `[teal]#*bookmarkFor*#(Class<?> cls, String identifier)` : `xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark]`
+<.> xref:#bookmarkFor[bookmarkFor]
 +
 --
 Utility method that creates a xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] from the constituent parts.
 --
-<.> `[teal]#*lookup*#(xref:system:generated:index/applib/services/bookmark/BookmarkHolder.adoc[BookmarkHolder] bookmarkHolder)` : `Object`
-<.> `[teal]#*lookup*#(xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] bookmark)` : `Object`
+<.> xref:#lookup[lookup]
+<.> xref:#lookup[lookup]
 +
 --
 Reciprocal of _#bookmarkFor(Object)_
 --
-<.> `[teal]#*lookup*#<T>(xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] bookmark, Class<T> cls)` : `T`
+<.> xref:#lookup[lookup]
 +
 --
 As _#lookup(Bookmark)_ , but down-casting to the specified type.
 --
 
+== Members
+
+[#bookmarkFor]
+=== bookmarkFor
+
+Returns the xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] for the given domain object.
+
+ *Note* : Not every domain object is bookmark-able: only entities, view models and services (NOT values or collections)
+
+[#bookmarkForElseThrow]
+=== bookmarkForElseThrow
+
+As per _#bookmarkFor(Object)_ , but requires that a non-null xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] is returned.
+
+[#bookmarkFor]
+=== bookmarkFor
+
+Utility method that creates a xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] from the constituent parts.
+
+[#lookup]
+=== lookup
+
+[#lookup]
+=== lookup
+
+Reciprocal of _#bookmarkFor(Object)_
+
+[#lookup]
+=== lookup
+
+As _#lookup(Bookmark)_ , but down-casting to the specified type.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/bookmarkui/BookmarkUiService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/bookmarkui/BookmarkUiService.adoc
index 01daa51..ea71ab6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/bookmarkui/BookmarkUiService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/bookmarkui/BookmarkUiService.adoc
@@ -12,9 +12,16 @@ interface BookmarkUiService {
 }
 ----
 
-<.> `[teal]#*clear*#()` : `void`
+<.> xref:#clear[clear]
 +
 --
 Simply clears the current list of breadcrumbs and bookmarks.
 --
 
+== Members
+
+[#clear]
+=== clear
+
+Simply clears the current list of breadcrumbs and bookmarks.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/command/Command.adoc b/antora/components/system/modules/generated/pages/index/applib/services/command/Command.adoc
index 9c06358..7d15735 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/command/Command.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/command/Command.adoc
@@ -24,33 +24,60 @@ class Command {
 }
 ----
 
-<.> `[teal]#*getUsername*#()` : `String`
+<.> xref:#getUsername[getUsername]
 +
 --
 The user that created the command.
-
-Derived from _#getCommandDto()_ 's _CommandDto#getUser()_
 --
-<.> `[teal]#*getTimestamp*#()` : `Timestamp`
+<.> xref:#getTimestamp[getTimestamp]
 +
 --
 The date/time at which this command was created.
-
-Derived from _#getCommandDto()_ 's _CommandDto#getTimestamp()_ .
 --
-<.> `[teal]#*getTarget*#()` : `xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark]`
+<.> xref:#getTarget[getTarget]
 +
 --
 Derived from _#getCommandDto()_ , is the xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] of the target object (entity or service) on which this action/edit was performed.
 --
-<.> `[teal]#*getLogicalMemberIdentifier*#()` : `String`
+<.> xref:#getLogicalMemberIdentifier[getLogicalMemberIdentifier]
 +
 --
 Derived from _#getCommandDto()_ , holds a string representation of the invoked action, or the edited property.
 --
-<.> `[teal]#*updater*#()` : `Updater`
+<.> xref:#updater[updater]
 +
 --
  *NOT API* : intended to be called only by the framework.
 --
 
+== Members
+
+[#getUsername]
+=== getUsername
+
+The user that created the command.
+
+Derived from _#getCommandDto()_ 's _CommandDto#getUser()_
+
+[#getTimestamp]
+=== getTimestamp
+
+The date/time at which this command was created.
+
+Derived from _#getCommandDto()_ 's _CommandDto#getTimestamp()_ .
+
+[#getTarget]
+=== getTarget
+
+Derived from _#getCommandDto()_ , is the xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] of the target object (entity or service) on which this action/edit was performed.
+
+[#getLogicalMemberIdentifier]
+=== getLogicalMemberIdentifier
+
+Derived from _#getCommandDto()_ , holds a string representation of the invoked action, or the edited property.
+
+[#updater]
+=== updater
+
+ *NOT API* : intended to be called only by the framework.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/command/CommandExecutorService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/command/CommandExecutorService.adoc
index 6691b30..f155b61 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/command/CommandExecutorService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/command/CommandExecutorService.adoc
@@ -13,9 +13,16 @@ interface CommandExecutorService {
 }
 ----
 
-<.> `[teal]#*executeCommand*#(SudoPolicy sudoPolicy, xref:system:generated:index/applib/services/command/Command.adoc[Command] command)` : `xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark]`
+<.> xref:#executeCommand[executeCommand]
 +
 --
 Executes the specified command.
 --
 
+== Members
+
+[#executeCommand]
+=== executeCommand
+
+Executes the specified command.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc
index 05d341e..90cc01a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc
@@ -13,9 +13,16 @@ ContentMappingServiceForCommandDto contentMappingServiceForCommandDto;
 }
 ----
 
-<.> `[teal]#*map*#(Object object)` : `CommandsDto`
+<.> xref:#map[map]
 +
 --
 Not part of the xref:system:generated:index/applib/services/conmap/ContentMappingService.adoc[ContentMappingService] API.
 --
 
+== Members
+
+[#map]
+=== map
+
+Not part of the xref:system:generated:index/applib/services/conmap/ContentMappingService.adoc[ContentMappingService] API.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessor.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessor.adoc
index 9962781..75b2c8b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessor.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessor.adoc
@@ -12,11 +12,18 @@ interface CommandDtoProcessor {
 }
 ----
 
-<.> `[teal]#*process*#(CommandDto commandDto)` : `CommandDto`
+<.> xref:#process[process]
 +
 --
 The implementation can if necessary refine or alter the _CommandDto_ to be replicated from primary to secondary.
-
-That said, the most common use case is to return `null, which results in the command effectively being ignore.
 --
 
+== Members
+
+[#process]
+=== process
+
+The implementation can if necessary refine or alter the _CommandDto_ to be replicated from primary to secondary.
+
+That said, the most common use case is to return `null` , which results in the command effectively being ignore.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorService.adoc
index 77b9283..d079895 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorService.adoc
@@ -14,5 +14,10 @@ interface CommandDtoProcessorService {
 }
 ----
 
-<.> `[teal]#*process*#(Object domainObject, CommandDto commandDto)` : `CommandDto`
+<.> xref:#process[process]
+
+== Members
+
+[#process]
+=== process
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationViewService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationViewService.adoc
index d3d4e2f..6c1a17e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationViewService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationViewService.adoc
@@ -10,9 +10,16 @@ interface ConfigurationViewService {
 }
 ----
 
-<.> `[teal]#*allProperties*#()` : `Set<xref:system:generated:index/applib/services/confview/ConfigurationProperty.adoc[ConfigurationProperty]>`
+<.> xref:#allProperties[allProperties]
 +
 --
 Returns all properties, each as an instance of xref:system:generated:index/applib/services/confview/ConfigurationProperty.adoc[ConfigurationProperty] (a view model). Mask sensitive values if required.
 --
 
+== Members
+
+[#allProperties]
+=== allProperties
+
+Returns all properties, each as an instance of xref:system:generated:index/applib/services/confview/ConfigurationProperty.adoc[ConfigurationProperty] (a view model). Mask sensitive values if required.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/conmap/ContentMappingService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/conmap/ContentMappingService.adoc
index e399d21..1f0e2e9 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/conmap/ContentMappingService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/conmap/ContentMappingService.adoc
@@ -10,9 +10,16 @@ interface ContentMappingService {
 }
 ----
 
-<.> `[teal]#*map*#(Object object, List<MediaType> acceptableMediaTypes)` : `Object`
+<.> xref:#map[map]
 +
 --
 Typically for mapping from a domain object to a DTO.
 --
 
+== Members
+
+[#map]
+=== map
+
+Typically for mapping from a domain object to a DTO.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/email/EmailService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/email/EmailService.adoc
index 063c109..e58be4d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/email/EmailService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/email/EmailService.adoc
@@ -16,9 +16,16 @@ interface EmailService {
 }
 ----
 
-<.> `[teal]#*isConfigured*#()` : `boolean`
+<.> xref:#isConfigured[isConfigured]
 +
 --
 Whether this service has been configured and thus available for use.
 --
 
+== Members
+
+[#isConfigured]
+=== isConfigured
+
+Whether this service has been configured and thus available for use.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/error/SimpleTicket.adoc b/antora/components/system/modules/generated/pages/index/applib/services/error/SimpleTicket.adoc
index 0f80231..82151cd 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/error/SimpleTicket.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/error/SimpleTicket.adoc
@@ -28,11 +28,18 @@ class SimpleTicket {
 }
 ----
 
-<.> `[teal]#*getKittenUrl*#()` : `String`
+<.> xref:#getKittenUrl[getKittenUrl]
 +
 --
 If specified, is the external URL of an image to display to the end user.
+--
+
+== Members
+
+[#getKittenUrl]
+=== getKittenUrl
+
+If specified, is the external URL of an image to display to the end user.
 
 Not necessarily of a kitten, but something by way of an apology.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/error/Ticket.adoc b/antora/components/system/modules/generated/pages/index/applib/services/error/Ticket.adoc
index c813e9b..8120a08 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/error/Ticket.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/error/Ticket.adoc
@@ -23,37 +23,64 @@ interface Ticket {
 }
 ----
 
-<.> `[teal]#*getReference*#()` : `String`
+<.> xref:#getReference[getReference]
 +
 --
 A unique identifier that the end-user can use to track any follow-up from this error.
-
-For example, an implementation might automatically log an issue in a bug tracking system such as JIRA, in which case the _#getReference() reference_ would be the JIRA issue number `XXX-1234` .
 --
-<.> `[teal]#*getUserMessage*#()` : `String`
+<.> xref:#getUserMessage[getUserMessage]
 +
 --
 Message to display to the user.
-
-Typically this message should be short, one line long.
 --
-<.> `[teal]#*getDetails*#()` : `String`
+<.> xref:#getDetails[getDetails]
 +
 --
 Optional additional details to show to the end-user.
-
-For example, these might include text on how to recover from the error, or workarounds, or just further details on contacting the help desk if the issue is severe and requires immediate attention.
 --
-<.> `[teal]#*getStackTracePolicy*#()` : `StackTracePolicy`
+<.> xref:#getStackTracePolicy[getStackTracePolicy]
 +
 --
 Whether the stack trace for the exception should be displayed or be hidden.
-
-The default is to hide it on the basis that the reporting service will have reported the stack trace to the support team, meaning there's no need to expose this info to the end-user.
 --
-<.> `[teal]#*getMarkup*#()` : `String`
+<.> xref:#getMarkup[getMarkup]
 +
 --
 Returns a Html representation of this ticket.
 --
 
+== Members
+
+[#getReference]
+=== getReference
+
+A unique identifier that the end-user can use to track any follow-up from this error.
+
+For example, an implementation might automatically log an issue in a bug tracking system such as JIRA, in which case the _#getReference() reference_ would be the JIRA issue number `XXX-1234` .
+
+[#getUserMessage]
+=== getUserMessage
+
+Message to display to the user.
+
+Typically this message should be short, one line long.
+
+[#getDetails]
+=== getDetails
+
+Optional additional details to show to the end-user.
+
+For example, these might include text on how to recover from the error, or workarounds, or just further details on contacting the help desk if the issue is severe and requires immediate attention.
+
+[#getStackTracePolicy]
+=== getStackTracePolicy
+
+Whether the stack trace for the exception should be displayed or be hidden.
+
+The default is to hide it on the basis that the reporting service will have reported the stack trace to the support team, meaning there's no need to expose this info to the end-user.
+
+[#getMarkup]
+=== getMarkup
+
+Returns a Html representation of this ticket.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizer.adoc b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizer.adoc
index bd8e744..20fb960 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizer.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizer.adoc
@@ -20,9 +20,16 @@ interface ExceptionRecognizer {
 }
 ----
 
-<.> `[teal]#*recognize*#(Throwable ex)` : `Optional<Recognition>`
+<.> xref:#recognize[recognize]
 +
 --
 (Attempt to) recognize the exception and return a user-friendly message to render instead.
 --
 
+== Members
+
+[#recognize]
+=== recognize
+
+(Attempt to) recognize the exception and return a user-friendly message to render instead.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerService.adoc
index f6a6400..b1d6500 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerService.adoc
@@ -12,15 +12,30 @@ interface ExceptionRecognizerService {
 }
 ----
 
-<.> `[teal]#*getExceptionRecognizers*#()` : `xref:system:generated:index/commons/collections/Can.adoc[Can]<xref:system:generated:index/applib/services/exceprecog/ExceptionRecognizer.adoc[ExceptionRecognizer]>`
-<.> `[teal]#*recognize*#(Throwable ex)` : `Optional<Recognition>`
+<.> xref:#getExceptionRecognizers[getExceptionRecognizers]
+<.> xref:#recognize[recognize]
 +
 --
 Takes into consideration ExceptionRecognizers as given by _#getExceptionRecognizers()_ .
 --
-<.> `[teal]#*recognizeFromSelected*#(xref:system:generated:index/commons/collections/Can.adoc[Can]<xref:system:generated:index/applib/services/exceprecog/ExceptionRecognizer.adoc[ExceptionRecognizer]> recognizers, Throwable ex)` : `Optional<Recognition>`
+<.> xref:#recognizeFromSelected[recognizeFromSelected]
 +
 --
 Takes into consideration ExceptionRecognizers as given by _recognizers_ .
 --
 
+== Members
+
+[#getExceptionRecognizers]
+=== getExceptionRecognizers
+
+[#recognize]
+=== recognize
+
+Takes into consideration ExceptionRecognizers as given by _#getExceptionRecognizers()_ .
+
+[#recognizeFromSelected]
+=== recognizeFromSelected
+
+Takes into consideration ExceptionRecognizers as given by _recognizers_ .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/factory/FactoryService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/factory/FactoryService.adoc
index c7d4cfe..5ac22a5 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/factory/FactoryService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/factory/FactoryService.adoc
@@ -19,54 +19,52 @@ interface FactoryService {
 }
 ----
 
-<.> `[teal]#*getOrCreate*#<T>(Class<T> requiredType)` : `T`
+<.> xref:#getOrCreate[getOrCreate]
 +
 --
 General purpose factory method, to automatically get or create an instance of _requiredType_ .
-
-Maps onto one of the specialized factory methods _#get(Class)_ or _#create(Class)_ based on the type's meta-data.
 --
-<.> `[teal]#*get*#<T>(Class<T> requiredType)` : `T`
+<.> xref:#get[get]
 +
 --
 Gets an instance (possibly shared or independent) of the specified _requiredType_ , with injection points resolved and any life-cycle callback processed.
 --
-<.> `[teal]#*detachedEntity*#<T>(Class<T> domainClass)` : `T`
+<.> xref:#detachedEntity[detachedEntity]
 +
 --
 Creates a new detached entity instance, with injection points resolved and defaults applied.
 --
-<.> `[teal]#*detachedEntity*#<T>(T entity)` : `T`
+<.> xref:#detachedEntity[detachedEntity]
 +
 --
 Creates a new detached entity instance, with injection points resolved.
 --
-<.> `[teal]#*mixin*#<T>(Class<T> mixinClass, Object mixedIn)` : `T`
+<.> xref:#mixin[mixin]
 +
 --
 Creates a new Mixin instance, with injection points resolved.
 --
-<.> `[teal]#*viewModel*#<T>(Class<T> viewModelClass, String mementoStr)` : `T`
+<.> xref:#viewModel[viewModel]
 +
 --
 Creates a new ViewModel instance, with injection points resolved, and initialized according to the given _mementoStr_
 --
-<.> `[teal]#*viewModel*#<T>(Class<T> viewModelClass)` : `T`
+<.> xref:#viewModel[viewModel]
 +
 --
 Creates a new ViewModel instance, with injection points resolved and defaults applied.
 --
-<.> `[teal]#*viewModel*#<T>(T viewModel)` : `T`
+<.> xref:#viewModel[viewModel]
 +
 --
 Resolves injection points for given ViewModel instance.
 --
-<.> `[teal]#*create*#<T>(Class<T> domainClass)` : `T`
+<.> xref:#create[create]
 +
 --
 Creates a new instance of the specified class, with injection points resolved and defaults applied.
 --
-<.> `[line-through gray]#*instantiate*#<T>(Class<T> domainClass)` : `T`
+<.> xref:#instantiate[instantiate]
 +
 --
 [WARNING]
@@ -77,6 +75,68 @@ with semantic changes since 2.0 previous behavior is no longer guaranteed, inste
 ====
 
 Creates a new instance of the specified class, but does not persist it.
+--
+
+== Members
+
+[#getOrCreate]
+=== getOrCreate
+
+General purpose factory method, to automatically get or create an instance of _requiredType_ .
+
+Maps onto one of the specialized factory methods _#get(Class)_ or _#create(Class)_ based on the type's meta-data.
+
+[#get]
+=== get
+
+Gets an instance (possibly shared or independent) of the specified _requiredType_ , with injection points resolved and any life-cycle callback processed.
+
+[#detachedEntity]
+=== detachedEntity
+
+Creates a new detached entity instance, with injection points resolved and defaults applied.
+
+[#detachedEntity]
+=== detachedEntity
+
+Creates a new detached entity instance, with injection points resolved.
+
+[#mixin]
+=== mixin
+
+Creates a new Mixin instance, with injection points resolved.
+
+[#viewModel]
+=== viewModel
+
+Creates a new ViewModel instance, with injection points resolved, and initialized according to the given _mementoStr_
+
+[#viewModel]
+=== viewModel
+
+Creates a new ViewModel instance, with injection points resolved and defaults applied.
+
+[#viewModel]
+=== viewModel
+
+Resolves injection points for given ViewModel instance.
+
+[#create]
+=== create
+
+Creates a new instance of the specified class, with injection points resolved and defaults applied.
+
+[#instantiate]
+=== instantiate
+
+[WARNING]
+====
+[red]#_deprecated:_#
+
+with semantic changes since 2.0 previous behavior is no longer guaranteed, instead consider use of @ _#detachedEntity(Class)_ or _#getOrCreate(Class)_ if applicable
+====
+
+Creates a new instance of the specified class, but does not persist it.
 
 It is recommended that the object be initially instantiated using this method, though the framework will also handle the case when the object is simply _new()_ ed up. The benefits of using _#instantiate(Class)_ are:
 
@@ -85,5 +145,4 @@ It is recommended that the object be initially instantiated using this method, t
 * the `created()` callback will not be called.
 
 The corollary is: if your code never uses `default _Xxx_ ()` supporting methods or the `created()` callback, then you can alternatively just _new()_ up the object rather than call this method.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridLoaderService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridLoaderService.adoc
index 19f7246..e488b77 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridLoaderService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridLoaderService.adoc
@@ -14,29 +14,56 @@ interface GridLoaderService {
 }
 ----
 
-<.> `[teal]#*supportsReloading*#()` : `boolean`
+<.> xref:#supportsReloading[supportsReloading]
 +
 --
 Whether dynamic reloading of layouts is enabled.
 --
-<.> `[teal]#*remove*#(Class<?> domainClass)` : `void`
+<.> xref:#remove[remove]
 +
 --
 To support metamodel invalidation/rebuilding of spec.
 --
-<.> `[teal]#*existsFor*#(Class<?> domainClass)` : `boolean`
+<.> xref:#existsFor[existsFor]
 +
 --
-Whether any persisted layout metadata (eg a `.layout.xmlfile) exists for this domain class.
+Whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
 --
-<.> `[teal]#*load*#(Class<?> domainClass)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
+<.> xref:#load[load]
 +
 --
-Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xmlfile, else `null.
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xml` file, else `null` .
 --
-<.> `[teal]#*load*#(Class<?> domainClass, String layout)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
+<.> xref:#load[load]
 +
 --
-Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xmlfile, else `null.
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xml` file, else `null` .
 --
 
+== Members
+
+[#supportsReloading]
+=== supportsReloading
+
+Whether dynamic reloading of layouts is enabled.
+
+[#remove]
+=== remove
+
+To support metamodel invalidation/rebuilding of spec.
+
+[#existsFor]
+=== existsFor
+
+Whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
+
+[#load]
+=== load
+
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xml` file, else `null` .
+
+[#load]
+=== load
+
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xml` file, else `null` .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridService.adoc
index e2a99be..a83b92c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridService.adoc
@@ -18,55 +18,102 @@ interface GridService {
 }
 ----
 
-<.> `[teal]#*supportsReloading*#()` : `boolean`
+<.> xref:#supportsReloading[supportsReloading]
 +
 --
 Whether dynamic reloading of layouts is enabled.
 --
-<.> `[teal]#*remove*#(Class<?> domainClass)` : `void`
+<.> xref:#remove[remove]
 +
 --
 To support metamodel invalidation/rebuilding of spec.
 --
-<.> `[teal]#*existsFor*#(Class<?> domainClass)` : `boolean`
+<.> xref:#existsFor[existsFor]
 +
 --
-Whether any persisted layout metadata (eg a `.layout.xmlfile) exists for this domain class.
+Whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
 --
-<.> `[teal]#*load*#(Class<?> domainClass)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
+<.> xref:#load[load]
 +
 --
-Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xmlfile, else `null.
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xml` file, else `null` .
 --
-<.> `[teal]#*load*#(Class<?> domainClass, String layout)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
+<.> xref:#load[load]
 +
 --
-Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `[domainClass].layout.[layout].xmlfile, else `null.
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `[domainClass].layout.[layout].xml` file, else `null` .
 --
-<.> `[teal]#*defaultGridFor*#(Class<?> domainClass)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
+<.> xref:#defaultGridFor[defaultGridFor]
 +
 --
 Returns a default grid; eg where none can be loaded using _#load(Class)_ .
 --
-<.> `[teal]#*normalize*#(xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] grid)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
+<.> xref:#normalize[normalize]
 +
 --
 Returns a normalized grid for the domain class obtained previously using _#load(Class)_ .
-
-If a "normalized" grid is persisted as the `layout.xml, then the expectation is that the xref:system:generated:index/applib/annotation/MemberOrder.adoc[MemberOrder] annotation can be removed from the domain class because the binding of properties/collections/actions will be within the XML. However, the layout annotations ( xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc[DomainObjectLayout] , xref:system:generated:index/applib/annotation/ActionLayout.adoc[ActionLayou [...]
 --
-<.> `[teal]#*complete*#(xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] grid)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
+<.> xref:#complete[complete]
 +
 --
 Modifies the provided xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] with additional metadata, broadly speaking corresponding to the xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc[DomainObjectLayout] , xref:system:generated:index/applib/annotation/ActionLayout.adoc[ActionLayout] , xref:system:generated:index/applib/annotation/PropertyLayout.adoc[PropertyLayout] and xref:system:generated:index/applib/annotation/CollectionLayout.adoc[CollectionLayout] .
-
-If a "completed" grid is persisted as the `layout.xml, then there should be no need for any of the layout annotations, nor the xref:system:generated:index/applib/annotation/MemberOrder.adoc[MemberOrder] annotations, to be required in the domain class itself.
 --
-<.> `[teal]#*minimal*#(xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] grid)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
+<.> xref:#minimal[minimal]
 +
 --
 Modifies the provided xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] , removing all metadata except the basic grid structure.
-
-If a "minimal" grid is persisted as the `layout.xml, then the expectation is that most of the layout annotations ( xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc[DomainObjectLayout] , xref:system:generated:index/applib/annotation/ActionLayout.adoc[ActionLayout] , xref:system:generated:index/applib/annotation/PropertyLayout.adoc[PropertyLayout] , xref:system:generated:index/applib/annotation/CollectionLayout.adoc[CollectionLayout] , but also xref:system:generated:in [...]
 --
 
+== Members
+
+[#supportsReloading]
+=== supportsReloading
+
+Whether dynamic reloading of layouts is enabled.
+
+[#remove]
+=== remove
+
+To support metamodel invalidation/rebuilding of spec.
+
+[#existsFor]
+=== existsFor
+
+Whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
+
+[#load]
+=== load
+
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xml` file, else `null` .
+
+[#load]
+=== load
+
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `[domainClass].layout.[layout].xml` file, else `null` .
+
+[#defaultGridFor]
+=== defaultGridFor
+
+Returns a default grid; eg where none can be loaded using _#load(Class)_ .
+
+[#normalize]
+=== normalize
+
+Returns a normalized grid for the domain class obtained previously using _#load(Class)_ .
+
+If a "normalized" grid is persisted as the `layout.xml` , then the expectation is that the xref:system:generated:index/applib/annotation/MemberOrder.adoc[MemberOrder] annotation can be removed from the domain class because the binding of properties/collections/actions will be within the XML. However, the layout annotations ( xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc[DomainObjectLayout] , xref:system:generated:index/applib/annotation/ActionLayout.adoc[ActionLay [...]
+
+[#complete]
+=== complete
+
+Modifies the provided xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] with additional metadata, broadly speaking corresponding to the xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc[DomainObjectLayout] , xref:system:generated:index/applib/annotation/ActionLayout.adoc[ActionLayout] , xref:system:generated:index/applib/annotation/PropertyLayout.adoc[PropertyLayout] and xref:system:generated:index/applib/annotation/CollectionLayout.adoc[CollectionLayout] .
+
+If a "completed" grid is persisted as the `layout.xml` , then there should be no need for any of the layout annotations, nor the xref:system:generated:index/applib/annotation/MemberOrder.adoc[MemberOrder] annotations, to be required in the domain class itself.
+
+[#minimal]
+=== minimal
+
+Modifies the provided xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] , removing all metadata except the basic grid structure.
+
+If a "minimal" grid is persisted as the `layout.xml` , then the expectation is that most of the layout annotations ( xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc[DomainObjectLayout] , xref:system:generated:index/applib/annotation/ActionLayout.adoc[ActionLayout] , xref:system:generated:index/applib/annotation/PropertyLayout.adoc[PropertyLayout] , xref:system:generated:index/applib/annotation/CollectionLayout.adoc[CollectionLayout] , but also xref:system:generated: [...]
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridSystemService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridSystemService.adoc
index f0fb561..17fab73 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridSystemService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridSystemService.adoc
@@ -18,14 +18,26 @@ interface GridSystemService {
 }
 ----
 
-<.> `[teal]#*gridImplementation*#()` : `Class<G>`
+<.> xref:#gridImplementation[gridImplementation]
 +
 --
 Which grid (implementation) is defined by this service.
 --
-<.> `[teal]#*normalize*#(G grid, Class<?> domainClass)` : `void`
+<.> xref:#normalize[normalize]
 +
 --
 Validate the grid, derive any missing object members, and overwrite any facets in the metamodel based on the layout.
 --
 
+== Members
+
+[#gridImplementation]
+=== gridImplementation
+
+Which grid (implementation) is defined by this service.
+
+[#normalize]
+=== normalize
+
+Validate the grid, derive any missing object members, and overwrite any facets in the metamodel based on the layout.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslatableString.adoc b/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslatableString.adoc
index d981cf2..3d89a51 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslatableString.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslatableString.adoc
@@ -22,43 +22,80 @@ class TranslatableString {
 }
 ----
 
-<.> `[teal]#*_tr_*#(String pattern, Object... paramArgs)` : `xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString]`
+<.> xref:#tr[tr]
 +
 --
 A translatable string with a single pattern for both singular and plural forms.
 --
-<.> `[teal]#*_trn_*#(String singularPattern, String pluralPattern, int number, Object... paramArgs)` : `xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString]`
+<.> xref:#trn[trn]
 +
 --
 A translatable string with different patterns for singular and plural forms, selected automatically by the number
 --
-<.> `[teal]#*getSingularText*#()` : `String`
+<.> xref:#getSingularText[getSingularText]
 +
 --
-The text as provided in (either of the _#tr(String, Object...) factory_ _#trn(String, String, int, Object...) method_ s, with placeholders rather than substituted arguments; if _#isPluralForm()_ is `truethen used only for the singular form.
+The text as provided in (either of the _#tr(String, Object...) factory_ _#trn(String, String, int, Object...) method_ s, with placeholders rather than substituted arguments; if _#isPluralForm()_ is `true` then used only for the singular form.
 --
-<.> `[teal]#*getPluralText*#()` : `String`
+<.> xref:#getPluralText[getPluralText]
 +
 --
-The plural text as provided in the _#trn(String, String, int, Object...) factory method_ , with placeholders rather than substituted arguments; but will be `nullif _#isPluralForm()_ is `false.
+The plural text as provided in the _#trn(String, String, int, Object...) factory method_ , with placeholders rather than substituted arguments; but will be `null` if _#isPluralForm()_ is `false` .
 --
-<.> `[teal]#*getArgumentsByParameterName*#()` : `Map<String, Object>`
+<.> xref:#getArgumentsByParameterName[getArgumentsByParameterName]
 +
 --
 The arguments; excluded from _#equals(Object)_ comparison.
 --
-<.> `[teal]#*translate*#(xref:system:generated:index/applib/services/i18n/TranslationService.adoc[TranslationService] translationService, String context)` : `String`
+<.> xref:#translate[translate]
 +
 --
 Translates this string using the provided xref:system:generated:index/applib/services/i18n/TranslationService.adoc[TranslationService] , selecting either the single or plural form as per _#getPattern()_ .
 --
-<.> `[teal]#*getPattern*#()` : `String`
+<.> xref:#getPattern[getPattern]
 +
 --
 The text to be translated; depends on whether _#isPluralForm()_ and whether to be translated.
+--
+
+== Members
+
+[#tr]
+=== tr
+
+A translatable string with a single pattern for both singular and plural forms.
+
+[#trn]
+=== trn
+
+A translatable string with different patterns for singular and plural forms, selected automatically by the number
+
+[#getSingularText]
+=== getSingularText
+
+The text as provided in (either of the _#tr(String, Object...) factory_ _#trn(String, String, int, Object...) method_ s, with placeholders rather than substituted arguments; if _#isPluralForm()_ is `true` then used only for the singular form.
+
+[#getPluralText]
+=== getPluralText
+
+The plural text as provided in the _#trn(String, String, int, Object...) factory method_ , with placeholders rather than substituted arguments; but will be `null` if _#isPluralForm()_ is `false` .
+
+[#getArgumentsByParameterName]
+=== getArgumentsByParameterName
+
+The arguments; excluded from _#equals(Object)_ comparison.
+
+[#translate]
+=== translate
+
+Translates this string using the provided xref:system:generated:index/applib/services/i18n/TranslationService.adoc[TranslationService] , selecting either the single or plural form as per _#getPattern()_ .
+
+[#getPattern]
+=== getPattern
+
+The text to be translated; depends on whether _#isPluralForm()_ and whether to be translated.
 
 Any placeholders will _not_ have been replaced.
 
 NB: this method is exposed only so that implementations of _org.apache.isis.applib.exceptions.TranslatableException_ can return a non-null _Exception#getMessage() message_ when only a translatable message has been provided.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationService.adoc
index b8a33f6..5e1013d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationService.adoc
@@ -12,27 +12,44 @@ interface TranslationService {
 }
 ----
 
-<.> `[teal]#*translate*#(String context, String text)` : `String`
+<.> xref:#translate[translate]
 +
 --
 Return a translation of the text, in the locale of the "current user".
-
-The mechanism to determine the locale is implementation-specific.
 --
-<.> `[teal]#*translate*#(String context, String singularText, String pluralText, int num)` : `String`
+<.> xref:#translate[translate]
 +
 --
 Return a translation of either the singular or the plural text, dependent on the `num` parameter, in the locale of the "current user".
-
-The mechanism to determine the locale is implementation-specific.
 --
-<.> `[teal]#*getMode*#()` : `Mode`
+<.> xref:#getMode[getMode]
 +
 --
 Whether this implementation is operating in read or in write mode.
+--
+
+== Members
+
+[#translate]
+=== translate
+
+Return a translation of the text, in the locale of the "current user".
+
+The mechanism to determine the locale is implementation-specific.
+
+[#translate]
+=== translate
+
+Return a translation of either the singular or the plural text, dependent on the `num` parameter, in the locale of the "current user".
+
+The mechanism to determine the locale is implementation-specific.
+
+[#getMode]
+=== getMode
+
+Whether this implementation is operating in read or in write mode.
 
 If in read mode, then the translations are expected to be present. In such cases, the _#translate(String, String) translate_ _#translate(String, String, String, int) method_ s should be _lazily_ called, if only because there will (most likely) need to be a session in progress (such that the locale of the current user can be determined).
 
 If in write mode, then the implementation is saving translation keys, and will always return the untranslated translation. In such cases, the _#translate(String, String) translate_ _#translate(String, String, String, int) method_ s should be _eagerly_ called such that all pathways are exercised..
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/iactn/ExecutionContext.adoc b/antora/components/system/modules/generated/pages/index/applib/services/iactn/ExecutionContext.adoc
index 0e9adad..e360a84 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/iactn/ExecutionContext.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/iactn/ExecutionContext.adoc
@@ -12,9 +12,16 @@ class ExecutionContext {
 }
 ----
 
-<.> `[teal]#*_ofUserWithSystemDefaults_*#(xref:system:generated:index/applib/services/user/UserMemento.adoc[UserMemento] user)` : `xref:system:generated:index/applib/services/iactn/ExecutionContext.adoc[ExecutionContext]`
+<.> xref:#ofUserWithSystemDefaults[ofUserWithSystemDefaults]
 +
 --
 Creates a new xref:system:generated:index/applib/services/iactn/ExecutionContext.adoc[ExecutionContext] with the specified user and system defaults for clock, locale and time-zone.
 --
 
+== Members
+
+[#ofUserWithSystemDefaults]
+=== ofUserWithSystemDefaults
+
+Creates a new xref:system:generated:index/applib/services/iactn/ExecutionContext.adoc[ExecutionContext] with the specified user and system defaults for clock, locale and time-zone.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/iactn/Interaction.adoc b/antora/components/system/modules/generated/pages/index/applib/services/iactn/Interaction.adoc
index 5f31fa5..86e6aa8 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/iactn/Interaction.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/iactn/Interaction.adoc
@@ -21,19 +21,36 @@ interface Interaction {
 }
 ----
 
-<.> `[teal]#*getCurrentExecution*#()` : `Execution<?, ?>`
+<.> xref:#getCurrentExecution[getCurrentExecution]
 +
 --
 The current (most recently pushed) _Execution_ .
 --
-<.> `[teal]#*getPriorExecution*#()` : `Execution<?, ?>`
+<.> xref:#getPriorExecution[getPriorExecution]
 +
 --
 The execution that preceded the current one.
 --
-<.> `[teal]#*next*#(String sequenceId)` : `int`
+<.> xref:#next[next]
 +
 --
 Generates numbers in a named sequence. The name of the sequence can be arbitrary, though note that the framework also uses this capability to generate sequence numbers corresponding to the sequences enumerated by the _Sequence_ enum.
 --
 
+== Members
+
+[#getCurrentExecution]
+=== getCurrentExecution
+
+The current (most recently pushed) _Execution_ .
+
+[#getPriorExecution]
+=== getPriorExecution
+
+The execution that preceded the current one.
+
+[#next]
+=== next
+
+Generates numbers in a named sequence. The name of the sequence can be arbitrary, though note that the framework also uses this capability to generate sequence numbers corresponding to the sequences enumerated by the _Sequence_ enum.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/iactn/InteractionContext.adoc b/antora/components/system/modules/generated/pages/index/applib/services/iactn/InteractionContext.adoc
index 897822d..5f34137 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/iactn/InteractionContext.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/iactn/InteractionContext.adoc
@@ -13,9 +13,16 @@ interface InteractionContext {
 }
 ----
 
-<.> `[teal]#*currentInteraction*#()` : `Optional<xref:system:generated:index/applib/services/iactn/Interaction.adoc[Interaction]>`
+<.> xref:#currentInteraction[currentInteraction]
 +
 --
 Optionally, the currently active xref:system:generated:index/applib/services/iactn/Interaction.adoc[Interaction] for the calling thread.
 --
 
+== Members
+
+[#currentInteraction]
+=== currentInteraction
+
+Optionally, the currently active xref:system:generated:index/applib/services/iactn/Interaction.adoc[Interaction] for the calling thread.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/jaxb/JaxbService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/jaxb/JaxbService.adoc
index b04e305..f6966f8 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/jaxb/JaxbService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/jaxb/JaxbService.adoc
@@ -16,14 +16,26 @@ interface JaxbService {
 }
 ----
 
-<.> `[teal]#*fromXml*#<T>(Class<T> domainClass, String xml)` : `T`
+<.> xref:#fromXml[fromXml]
 +
 --
 As _#fromXml(JAXBContext, String)_ , but downcast to a specific type.
 --
-<.> `[teal]#*fromXml*#<T>(Class<T> domainClass, String xml, Map<String, Object> unmarshallerProperties)` : `T`
+<.> xref:#fromXml[fromXml]
 +
 --
 As _#fromXml(JAXBContext, String, Map)_ , but downcast to a specific type.
 --
 
+== Members
+
+[#fromXml]
+=== fromXml
+
+As _#fromXml(JAXBContext, String)_ , but downcast to a specific type.
+
+[#fromXml]
+=== fromXml
+
+As _#fromXml(JAXBContext, String, Map)_ , but downcast to a specific type.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutService.adoc
index 889e51b..916cc9e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutService.adoc
@@ -12,19 +12,36 @@ interface LayoutService {
 }
 ----
 
-<.> `[teal]#*toXml*#(Class<?> domainClass, Style style)` : `String`
+<.> xref:#toXml[toXml]
 +
 --
 Obtains the serialized XML form of the layout (grid) for the specified domain class.
 --
-<.> `[teal]#*toZip*#(Style style)` : `byte[]`
+<.> xref:#toZip[toZip]
 +
 --
 Obtains a zip file of the serialized XML of the layouts (grids) of all domain entities and view models.
 --
-<.> `[teal]#*toMenuBarsXml*#(Type type)` : `String`
+<.> xref:#toMenuBarsXml[toMenuBarsXml]
 +
 --
 Obtains the serialized XML form of the menu bars layout ( xref:system:generated:index/applib/services/menu/MenuBarsService.adoc[MenuBarsService] ).
 --
 
+== Members
+
+[#toXml]
+=== toXml
+
+Obtains the serialized XML form of the layout (grid) for the specified domain class.
+
+[#toZip]
+=== toZip
+
+Obtains a zip file of the serialized XML of the layouts (grids) of all domain entities and view models.
+
+[#toMenuBarsXml]
+=== toMenuBarsXml
+
+Obtains the serialized XML form of the menu bars layout ( xref:system:generated:index/applib/services/menu/MenuBarsService.adoc[MenuBarsService] ).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/linking/DeepLinkService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/linking/DeepLinkService.adoc
index fed12eb..227c38d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/linking/DeepLinkService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/linking/DeepLinkService.adoc
@@ -14,9 +14,16 @@ interface DeepLinkService {
 }
 ----
 
-<.> `[teal]#*deepLinkFor*#(Object domainObject)` : `URI`
+<.> xref:#deepLinkFor[deepLinkFor]
 +
 --
 Creates a URI that can be used to obtain a representation of the provided domain object in one of the Isis viewers.
 --
 
+== Members
+
+[#deepLinkFor]
+=== deepLinkFor
+
+Creates a URI that can be used to obtain a representation of the provided domain object in one of the Isis viewers.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsLoaderService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsLoaderService.adoc
index a335724..2c9d6de 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsLoaderService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsLoaderService.adoc
@@ -11,14 +11,26 @@ interface MenuBarsLoaderService {
 }
 ----
 
-<.> `[teal]#*supportsReloading*#()` : `boolean`
+<.> xref:#supportsReloading[supportsReloading]
 +
 --
 Whether dynamic reloading of layouts is enabled.
 --
-<.> `[teal]#*menuBars*#()` : `xref:system:generated:index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc[BS3MenuBars]`
+<.> xref:#menuBars[menuBars]
 +
 --
 Returns a new instance of a xref:system:generated:index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc[BS3MenuBars] , else `null` .
 --
 
+== Members
+
+[#supportsReloading]
+=== supportsReloading
+
+Whether dynamic reloading of layouts is enabled.
+
+[#menuBars]
+=== menuBars
+
+Returns a new instance of a xref:system:generated:index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc[BS3MenuBars] , else `null` .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsService.adoc
index 3edebd7..ebd91df 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsService.adoc
@@ -11,9 +11,16 @@ interface MenuBarsService {
 }
 ----
 
-<.> `[teal]#*menuBars*#()` : `xref:system:generated:index/applib/layout/menubars/MenuBars.adoc[MenuBars]`
+<.> xref:#menuBars[menuBars]
 +
 --
 Returns _#menuBars()_ with a type of _Type#DEFAULT_ .
 --
 
+== Members
+
+[#menuBars]
+=== menuBars
+
+Returns _#menuBars()_ with a type of _Type#DEFAULT_ .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/message/MessageService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/message/MessageService.adoc
index af0f6f6..1e5c550 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/message/MessageService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/message/MessageService.adoc
@@ -18,55 +18,102 @@ interface MessageService {
 }
 ----
 
-<.> `[teal]#*informUser*#(String message)` : `void`
+<.> xref:#informUser[informUser]
 +
 --
 Make the specified message available to the user. Note this will probably be displayed in transitory fashion, so is only suitable for useful but optional information.
 --
-<.> `[teal]#*informUser*#(xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] message, Class<?> contextClass, String contextMethod)` : `String`
+<.> xref:#informUser[informUser]
 +
 --
 Make the specified message available to the user, translated (if possible) to user's locale.
-
-More precisely, the locale is as provided by the configured _org.apache.isis.applib.services.i18n.LocaleProvider_ service. This will most commonly be the locale of the current request (ie the current user's locale).
 --
-<.> `[teal]#*informUser*#(xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] message, String translationContext)` : `String`
+<.> xref:#informUser[informUser]
 +
 --
 Override of _MessageService#informUser(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
 --
-<.> `[teal]#*warnUser*#(String message)` : `void`
+<.> xref:#warnUser[warnUser]
 +
 --
 Warn the user about a situation with the specified message. The container should guarantee to display this warning to the user, and will typically require acknowledgement.
 --
-<.> `[teal]#*warnUser*#(xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] message, Class<?> contextClass, String contextMethod)` : `String`
+<.> xref:#warnUser[warnUser]
 +
 --
 Warn the user about a situation with the specified message, translated (if possible) to user's locale.
-
-More precisely, the locale is as provided by the configured _org.apache.isis.applib.services.i18n.LocaleProvider_ service. This will most commonly be the locale of the current request (ie the current user's locale).
 --
-<.> `[teal]#*warnUser*#(xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] message, String translationContext)` : `String`
+<.> xref:#warnUser[warnUser]
 +
 --
 Override of _MessageService#warnUser(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
 --
-<.> `[teal]#*raiseError*#(String message)` : `void`
+<.> xref:#raiseError[raiseError]
 +
 --
 Notify the user of an application error with the specified message. Note this will probably be displayed in an alarming fashion, so is only suitable for errors. The user will typically be required to perform additional steps after the error (eg to inform the helpdesk).
 --
-<.> `[teal]#*raiseError*#(xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] message, Class<?> contextClass, String contextMethod)` : `String`
+<.> xref:#raiseError[raiseError]
 +
 --
 Notify the user of an application error with the specified message, translated (if possible) to user's locale.
-
-More precisely, the locale is as provided by the configured _org.apache.isis.applib.services.i18n.LocaleProvider_ service. This will most commonly be the locale of the current request (ie the current user's locale).
 --
-<.> `[teal]#*raiseError*#(xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] message, String translationContext)` : `String`
+<.> xref:#raiseError[raiseError]
 +
 --
 Override of _MessageService#raiseError(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
 --
 
+== Members
+
+[#informUser]
+=== informUser
+
+Make the specified message available to the user. Note this will probably be displayed in transitory fashion, so is only suitable for useful but optional information.
+
+[#informUser]
+=== informUser
+
+Make the specified message available to the user, translated (if possible) to user's locale.
+
+More precisely, the locale is as provided by the configured _org.apache.isis.applib.services.i18n.LocaleProvider_ service. This will most commonly be the locale of the current request (ie the current user's locale).
+
+[#informUser]
+=== informUser
+
+Override of _MessageService#informUser(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
+
+[#warnUser]
+=== warnUser
+
+Warn the user about a situation with the specified message. The container should guarantee to display this warning to the user, and will typically require acknowledgement.
+
+[#warnUser]
+=== warnUser
+
+Warn the user about a situation with the specified message, translated (if possible) to user's locale.
+
+More precisely, the locale is as provided by the configured _org.apache.isis.applib.services.i18n.LocaleProvider_ service. This will most commonly be the locale of the current request (ie the current user's locale).
+
+[#warnUser]
+=== warnUser
+
+Override of _MessageService#warnUser(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
+
+[#raiseError]
+=== raiseError
+
+Notify the user of an application error with the specified message. Note this will probably be displayed in an alarming fashion, so is only suitable for errors. The user will typically be required to perform additional steps after the error (eg to inform the helpdesk).
+
+[#raiseError]
+=== raiseError
+
+Notify the user of an application error with the specified message, translated (if possible) to user's locale.
+
+More precisely, the locale is as provided by the configured _org.apache.isis.applib.services.i18n.LocaleProvider_ service. This will most commonly be the locale of the current request (ie the current user's locale).
+
+[#raiseError]
+=== raiseError
+
+Override of _MessageService#raiseError(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/BeanSort.adoc b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/BeanSort.adoc
index 93c84c3..e5b37e1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/BeanSort.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/BeanSort.adoc
@@ -28,51 +28,88 @@ enum BeanSort {
 }
 ----
 
-<.> `[teal]#*_VIEW_MODEL_*#`
+<.> xref:#VIEW_MODEL[VIEW_MODEL]
 +
 --
 Stateful object, with a state that can be marshaled and unmarshaled.
-
-Includes classes annotated with _@DomainObject_ , when *not* associated with a persistence layer.
-
-see also _#ENTITY_
 --
-<.> `[teal]#*_ENTITY_*#`
+<.> xref:#ENTITY[ENTITY]
 +
 --
 Persistable object, associated with a persistence layer/context.
-
-Includes classes annotated with _@DomainObject_ , when associated with a persistence layer.
-
-see also _#VIEW_MODEL_
 --
-<.> `[teal]#*_MANAGED_BEAN_CONTRIBUTING_*#`
+<.> xref:#MANAGED_BEAN_CONTRIBUTING[MANAGED_BEAN_CONTRIBUTING]
 +
 --
 Injectable object, associated with a lifecycle context (application-scoped, request-scoped, ...).
-
-to be introspected: YES
 --
-<.> `[teal]#*_MANAGED_BEAN_NOT_CONTRIBUTING_*#`
+<.> xref:#MANAGED_BEAN_NOT_CONTRIBUTING[MANAGED_BEAN_NOT_CONTRIBUTING]
 +
 --
 Injectable object, associated with a lifecycle context (application-scoped, request-scoped, ...).
-
-to be introspected: NO
 --
-<.> `[teal]#*_MIXIN_*#`
+<.> xref:#MIXIN[MIXIN]
 +
 --
 Object associated with an 'entity' or 'bean' to act as contributer of domain actions or properties. Might also be stateful similar to VIEW_MODEL.
 --
-<.> `[teal]#*_VALUE_*#`
+<.> xref:#VALUE[VALUE]
 +
 --
 Immutable, serializable object.
 --
-<.> `[teal]#*_COLLECTION_*#`
+<.> xref:#COLLECTION[COLLECTION]
 +
 --
 Container of objects.
 --
 
+== Members
+
+[#VIEW_MODEL]
+=== VIEW_MODEL
+
+Stateful object, with a state that can be marshaled and unmarshaled.
+
+Includes classes annotated with _@DomainObject_ , when *not* associated with a persistence layer.
+
+see also _#ENTITY_
+
+[#ENTITY]
+=== ENTITY
+
+Persistable object, associated with a persistence layer/context.
+
+Includes classes annotated with _@DomainObject_ , when associated with a persistence layer.
+
+see also _#VIEW_MODEL_
+
+[#MANAGED_BEAN_CONTRIBUTING]
+=== MANAGED_BEAN_CONTRIBUTING
+
+Injectable object, associated with a lifecycle context (application-scoped, request-scoped, ...).
+
+to be introspected: YES
+
+[#MANAGED_BEAN_NOT_CONTRIBUTING]
+=== MANAGED_BEAN_NOT_CONTRIBUTING
+
+Injectable object, associated with a lifecycle context (application-scoped, request-scoped, ...).
+
+to be introspected: NO
+
+[#MIXIN]
+=== MIXIN
+
+Object associated with an 'entity' or 'bean' to act as contributer of domain actions or properties. Might also be stateful similar to VIEW_MODEL.
+
+[#VALUE]
+=== VALUE
+
+Immutable, serializable object.
+
+[#COLLECTION]
+=== COLLECTION
+
+Container of objects.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelService.adoc
index a118193..37a1772 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelService.adoc
@@ -21,23 +21,40 @@ interface MetaModelService {
 }
 ----
 
-<.> `[teal]#*fromObjectType*#(String objectType)` : `Class<?>`
+<.> xref:#fromObjectType[fromObjectType]
 +
 --
-Provides a reverse lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis' `ObjectSpecIdFacet).
+Provides a reverse lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis' `ObjectSpecIdFacet` ).
 --
-<.> `[teal]#*toObjectType*#(Class<?> domainType)` : `String`
+<.> xref:#toObjectType[toObjectType]
 +
 --
-Provides a lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis' `ObjectSpecIdFacet).
+Provides a lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis' `ObjectSpecIdFacet` ).
 --
-<.> `[teal]#*getDomainModel*#()` : `xref:system:generated:index/applib/services/metamodel/DomainModel.adoc[DomainModel]`
+<.> xref:#getDomainModel[getDomainModel]
 +
 --
 Returns a list of representations of each of member of each domain class.
+--
+
+== Members
+
+[#fromObjectType]
+=== fromObjectType
+
+Provides a reverse lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis' `ObjectSpecIdFacet` ).
+
+[#toObjectType]
+=== toObjectType
+
+Provides a lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis' `ObjectSpecIdFacet` ).
+
+[#getDomainModel]
+=== getDomainModel
+
+Returns a list of representations of each of member of each domain class.
 
 Used by xref:system:generated:index/applib/services/metamodel/MetaModelServiceMenu.adoc[MetaModelServiceMenu] to return a downloadable CSV.
 
 Note that _MetaModelService#exportMetaModel(Config)_ provides a superset of the functionality provided by this method.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/metrics/MetricsService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/metrics/MetricsService.adoc
index f83e294..18ffa04 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/metrics/MetricsService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/metrics/MetricsService.adoc
@@ -11,22 +11,34 @@ interface MetricsService {
 }
 ----
 
-<.> `[teal]#*numberEntitiesLoaded*#()` : `int`
+<.> xref:#numberEntitiesLoaded[numberEntitiesLoaded]
 +
 --
 The number of entities that have, so far in this request, been loaded from the database.
-
-Corresponds to the number of times that `javax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)(or equivalent) is fired.
-
-Is captured within _MemberExecutionDto#getMetrics()_ (accessible from _InteractionContext#currentInteraction()_ ).
 --
-<.> `[teal]#*numberEntitiesDirtied*#()` : `int`
+<.> xref:#numberEntitiesDirtied[numberEntitiesDirtied]
 +
 --
 The number of objects that have, so far in this request, been dirtied/will need updating in the database); a good measure of the footprint of the interaction.
+--
+
+== Members
+
+[#numberEntitiesLoaded]
+=== numberEntitiesLoaded
+
+The number of entities that have, so far in this request, been loaded from the database.
 
-Corresponds to the number of times that `javax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)(or equivalent) callback is fired.
+Corresponds to the number of times that `javax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)` (or equivalent) is fired.
+
+Is captured within _MemberExecutionDto#getMetrics()_ (accessible from _InteractionContext#currentInteraction()_ ).
+
+[#numberEntitiesDirtied]
+=== numberEntitiesDirtied
+
+The number of objects that have, so far in this request, been dirtied/will need updating in the database); a good measure of the footprint of the interaction.
+
+Corresponds to the number of times that `javax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)` (or equivalent) callback is fired.
 
 Is captured within _MemberExecutionDto#getMetrics()_ (accessible from _InteractionContext#currentInteraction()_ .
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/CommandSubscriber.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/CommandSubscriber.adoc
index 5fd1f2e..6cac45c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/CommandSubscriber.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/CommandSubscriber.adoc
@@ -12,11 +12,18 @@ interface CommandSubscriber {
 }
 ----
 
-<.> `[teal]#*onCompleted*#(xref:system:generated:index/applib/services/command/Command.adoc[Command] command)` : `void`
+<.> xref:#onCompleted[onCompleted]
 +
 --
 Notifies that the command has completed.
+--
+
+== Members
+
+[#onCompleted]
+=== onCompleted
+
+Notifies that the command has completed.
 
 This is an opportunity for implementations to process the command, for example to persist a representation of it.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChangesSubscriber.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChangesSubscriber.adoc
index 6bfc73c..9a6346f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChangesSubscriber.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChangesSubscriber.adoc
@@ -12,9 +12,16 @@ interface EntityChangesSubscriber {
 }
 ----
 
-<.> `[teal]#*onChanging*#(xref:system:generated:index/applib/services/publishing/spi/EntityChanges.adoc[EntityChanges] entityChanges)` : `void`
+<.> xref:#onChanging[onChanging]
 +
 --
 Receives all changing entities (with publishing enabled) at then end of the a transaction during the pre-commit phase.
 --
 
+== Members
+
+[#onChanging]
+=== onChanging
+
+Receives all changing entities (with publishing enabled) at then end of the a transaction during the pre-commit phase.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc
index be2e3c1..b5d1d04 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc
@@ -12,9 +12,16 @@ interface EntityPropertyChangeSubscriber {
 }
 ----
 
-<.> `[teal]#*onChanging*#(xref:system:generated:index/applib/services/publishing/spi/EntityPropertyChange.adoc[EntityPropertyChange] entityPropertyChange)` : `void`
+<.> xref:#onChanging[onChanging]
 +
 --
 Receives all pre-post property values for entities (with publishing enabled) at then end of the transaction during the pre-commit phase.
 --
 
+== Members
+
+[#onChanging]
+=== onChanging
+
+Receives all pre-post property values for entities (with publishing enabled) at then end of the transaction during the pre-commit phase.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/ExecutionSubscriber.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/ExecutionSubscriber.adoc
index fd496b7..23bae05 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/ExecutionSubscriber.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/ExecutionSubscriber.adoc
@@ -12,11 +12,18 @@ interface ExecutionSubscriber {
 }
 ----
 
-<.> `[teal]#*onExecution*#(Execution<?, ?> execution)` : `void`
+<.> xref:#onExecution[onExecution]
 +
 --
 Publish each _org.apache.isis.applib.services.iactn.Interaction.Execution_ immediately after it completes.
+--
+
+== Members
+
+[#onExecution]
+=== onExecution
+
+Publish each _org.apache.isis.applib.services.iactn.Interaction.Execution_ immediately after it completes.
 
 Most implementations are expected to use _org.apache.isis.applib.services.iactn.Interaction.Execution#getDto()_ to create a serializable XML representation of the execution. The easiest way to do this is using _InteractionDtoUtils#newInteractionDto(Interaction.Execution)_ . There is some flexibility here, though.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultsCache.adoc b/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultsCache.adoc
index d2f875a..e658469 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultsCache.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultsCache.adoc
@@ -21,9 +21,16 @@ interface QueryResultsCache {
 }
 ----
 
-<.> `[teal]#*onTransactionEnded*#()` : `void`
+<.> xref:#onTransactionEnded[onTransactionEnded]
 +
 --
 Not API, for framework use only.
 --
 
+== Members
+
+[#onTransactionEnded]
+=== onTransactionEnded
+
+Not API, for framework use only.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/registry/ServiceRegistry.adoc b/antora/components/system/modules/generated/pages/index/applib/services/registry/ServiceRegistry.adoc
index 55a8f45..935d1bc 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/registry/ServiceRegistry.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/registry/ServiceRegistry.adoc
@@ -18,41 +18,78 @@ interface ServiceRegistry {
 }
 ----
 
-<.> `[teal]#*select*#<T>(Class<T> type, Annotation[] qualifiers)` : `xref:system:generated:index/commons/collections/Can.adoc[Can]<T>`
+<.> xref:#select[select]
 +
 --
 Obtains a xref:system:generated:index/commons/collections/Can.adoc[Can] container containing any matching instances for the given required type and additional required qualifiers.
 --
-<.> `[teal]#*select*#<T>(Class<T> type)` : `xref:system:generated:index/commons/collections/Can.adoc[Can]<T>`
+<.> xref:#select[select]
 +
 --
 Obtains a xref:system:generated:index/commons/collections/Can.adoc[Can] container containing any matching instances for the given required type.
 --
-<.> `[teal]#*streamRegisteredBeansOfType*#(Class<?> requiredType)` : `Stream<_ManagedBeanAdapter>`
+<.> xref:#streamRegisteredBeansOfType[streamRegisteredBeansOfType]
 +
 --
 Streams all registered bean adapters implementing the requested type.
 --
-<.> `[teal]#*streamRegisteredBeans*#()` : `Stream<_ManagedBeanAdapter>`
+<.> xref:#streamRegisteredBeans[streamRegisteredBeans]
 +
 --
 Returns all bean adapters that have been registered.
 --
-<.> `[teal]#*lookupRegisteredBeanById*#(String id)` : `Optional<_ManagedBeanAdapter>`
+<.> xref:#lookupRegisteredBeanById[lookupRegisteredBeanById]
 +
 --
 Returns a registered bean of given _name_ .
 --
-<.> `[teal]#*lookupRegisteredBeanByIdElseFail*#(String id)` : `_ManagedBeanAdapter`
+<.> xref:#lookupRegisteredBeanByIdElseFail[lookupRegisteredBeanByIdElseFail]
 +
 --
 Returns a registered bean of given _name_ , or throws when no such bean.
 --
-<.> `[teal]#*lookupService*#<T>(Class<T> serviceClass)` : `Optional<T>`
+<.> xref:#lookupService[lookupService]
 +
 --
 Returns a domain service implementing the requested type.
+--
+
+== Members
+
+[#select]
+=== select
+
+Obtains a xref:system:generated:index/commons/collections/Can.adoc[Can] container containing any matching instances for the given required type and additional required qualifiers.
+
+[#select]
+=== select
+
+Obtains a xref:system:generated:index/commons/collections/Can.adoc[Can] container containing any matching instances for the given required type.
+
+[#streamRegisteredBeansOfType]
+=== streamRegisteredBeansOfType
+
+Streams all registered bean adapters implementing the requested type.
+
+[#streamRegisteredBeans]
+=== streamRegisteredBeans
+
+Returns all bean adapters that have been registered.
+
+[#lookupRegisteredBeanById]
+=== lookupRegisteredBeanById
+
+Returns a registered bean of given _name_ .
+
+[#lookupRegisteredBeanByIdElseFail]
+=== lookupRegisteredBeanByIdElseFail
+
+Returns a registered bean of given _name_ , or throws when no such bean.
+
+[#lookupService]
+=== lookupService
+
+Returns a domain service implementing the requested type.
 
 If this lookup is ambiguous, the service annotated with highest priority is returned. see _Priority_
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/repository/RepositoryService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/repository/RepositoryService.adoc
index 59e3fbb..fadbad1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/repository/RepositoryService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/repository/RepositoryService.adoc
@@ -31,127 +31,97 @@ interface RepositoryService {
 }
 ----
 
-<.> `[teal]#*getEntityState*#(Object object)` : `xref:system:generated:index/applib/services/repository/EntityState.adoc[EntityState]`
+<.> xref:#getEntityState[getEntityState]
 +
 --
 Returns the EntityState of given _object_ . Returns _EntityState#NOT_PERSISTABLE_ for _object==null_ .
 --
-<.> `[teal]#*detachedEntity*#<T>(T entity)` : `T`
+<.> xref:#detachedEntity[detachedEntity]
 +
 --
 Same as _org.apache.isis.applib.services.factory.FactoryService#detachedEntity(Object)_ ; provided as a convenience because instantiating and _#persist(Object) persisting_ are often done together.
 --
-<.> `[teal]#*persist*#<T>(T domainObject)` : `T`
+<.> xref:#persist[persist]
 +
 --
 Persist the specified object (or do nothing if already persistent).
 --
-<.> `[teal]#*persistAndFlush*#<T>(T domainObject)` : `T`
+<.> xref:#persistAndFlush[persistAndFlush]
 +
 --
 Persist the specified object (or do nothing if already persistent) and flushes changes to the database.
 --
-<.> `[teal]#*remove*#(Object domainObject)` : `void`
+<.> xref:#remove[remove]
 +
 --
 Deletes the domain object but only if is attached.
 --
-<.> `[teal]#*removeAndFlush*#(Object domainObject)` : `void`
+<.> xref:#removeAndFlush[removeAndFlush]
 +
 --
 Deletes the domain object but only if is persistent, and flushes changes to the database.
 --
-<.> `[teal]#*removeAll*#<T>(Class<T> cls)` : `void`
+<.> xref:#removeAll[removeAll]
 +
 --
 Removes all instances of the domain object.
-
-Intended primarily for testing purposes.
 --
-<.> `[teal]#*allInstances*#<T>(Class<T> ofType)` : `List<T>`
+<.> xref:#allInstances[allInstances]
 +
 --
 As _#allInstances(Class, long, long)_ , but but returning all instances rather than just those * within the specified range..
 --
-<.> `[teal]#*allInstances*#<T>(Class<T> ofType, long start, long count)` : `List<T>`
+<.> xref:#allInstances[allInstances]
 +
 --
 Returns all the instances of the specified type (including subtypes). If the optional range parameters are used, the dataset returned starts from (0 based) index, and consists of only up to count items.
-
-If there are no instances the list will be empty. This method creates a new _List_ object each time it is called so the caller is free to use or modify the returned _List_ , but the changes will not be reflected back to the repository.
-
-This method should only be called where the number of instances is known to be relatively low, unless the optional range parameters (2 longs) are specified. The range parameters are "start" and "count".
 --
-<.> `[teal]#*allMatches*#<T>(Class<T> ofType, Predicate<? super T> predicate)` : `List<T>`
+<.> xref:#allMatches[allMatches]
 +
 --
 As _#allMatches(Class, Predicate, long, long)_ , but returning all instances rather than just those within the specified range.
 --
-<.> `[teal]#*allMatches*#<T>(Class<T> ofType, Predicate<? super T> predicate, long start, long count)` : `List<T>`
+<.> xref:#allMatches[allMatches]
 +
 --
 Returns all the instances of the specified type (including subtypes) that the predicate object accepts. If the optional range parameters are used, the dataset returned starts from (0 based) index, and consists of only up to count items.
-
-If there are no instances the list will be empty. This method creates a new _List_ object each time it is called so the caller is free to use or modify the returned _List_ , but the changes will not be reflected back to the repository.
-
-This method is useful during exploration/prototyping, but - because the filtering is performed client-side - this method is only really suitable for initial development/prototyping, or for classes with very few instances. Use _#allMatches(Query)_ for production code.
 --
-<.> `[teal]#*allMatches*#<T>(xref:system:generated:index/applib/query/Query.adoc[Query]<T> query)` : `List<T>`
+<.> xref:#allMatches[allMatches]
 +
 --
 Returns all the instances that match the given xref:system:generated:index/applib/query/Query.adoc[Query] .
-
-If there are no instances the list will be empty. This method creates a new _List_ object each time it is called so the caller is free to use or modify the returned _List_ , but the changes will not be reflected back to the repository.
-
-This method is the recommended way of querying for multiple instances.
 --
-<.> `[teal]#*uniqueMatch*#<T>(Class<T> ofType, Predicate<T> predicate)` : `Optional<T>`
+<.> xref:#uniqueMatch[uniqueMatch]
 +
 --
 Find the only instance of the specified type (including subtypes) that has the specified title.
-
-If no instance is found then _Optional#empty()_ will be return, while if there is more that one instances a run-time exception will be thrown.
-
-This method is useful during exploration/prototyping, but - because the filtering is performed client-side - this method is only really suitable for initial development/prototyping, or for classes with very few instances. Use _#uniqueMatch(Query)_ for production code.
 --
-<.> `[teal]#*uniqueMatch*#<T>(xref:system:generated:index/applib/query/Query.adoc[Query]<T> query)` : `Optional<T>`
+<.> xref:#uniqueMatch[uniqueMatch]
 +
 --
 Find the only instance that matches the provided query.
-
-If no instance is found then _Optional#empty()_ will be return, while if there is more that one instances a run-time exception will be thrown.
-
-This method is the recommended way of querying for (precisely) one instance. See also _#allMatches(Query)_
 --
-<.> `[teal]#*firstMatch*#<T>(Class<T> ofType, Predicate<T> predicate)` : `Optional<T>`
+<.> xref:#firstMatch[firstMatch]
 +
 --
 Find the only instance of the specified type (including subtypes) that has the specified title.
-
-If no instance is found then _Optional#empty()_ will be return, while if there is more that one instances then the first will be returned.
-
-This method is useful during exploration/prototyping, but - because the filtering is performed client-side - this method is only really suitable for initial development/prototyping, or for classes with very few instances. Use _#firstMatch(Query)_ for production code.
 --
-<.> `[teal]#*firstMatch*#<T>(xref:system:generated:index/applib/query/Query.adoc[Query]<T> query)` : `Optional<T>`
+<.> xref:#firstMatch[firstMatch]
 +
 --
 Find the only instance that matches the provided query, if any..
-
-If no instance is found then _Optional#empty()_ will be return, while if there is more that one instances then the first will be returned.
 --
-<.> `[teal]#*refresh*#<T>(T pojo)` : `T`
+<.> xref:#refresh[refresh]
 +
 --
 Reloads the pojo.
 --
-<.> `[teal]#*detach*#<T>(T entity)` : `T`
+<.> xref:#detach[detach]
 +
 --
 Detach the entity from the current persistence session.
-
-This allows the entity to be read from even after the PersistenceSession that obtained it has been closed.
 --
-<.> `[line-through gray]#*detachedEntity*#<T>(Class<T> ofType)` : `T`
+<.> xref:#detachedEntity[detachedEntity]
 +
 --
 [WARNING]
@@ -163,7 +133,7 @@ if applicable use _#detachedEntity(Object)_ instead ... "new is the new new", pa
 
 Same as _org.apache.isis.applib.services.factory.FactoryService#detachedEntity(Class)_ ; provided as a convenience because instantiating and _#persist(Object) persisting_ are often done together.
 --
-<.> `[line-through gray]#*instantiate*#<T>(Class<T> ofType)` : `T`
+<.> xref:#instantiate[instantiate]
 +
 --
 [WARNING]
@@ -173,7 +143,7 @@ Same as _org.apache.isis.applib.services.factory.FactoryService#detachedEntity(C
 if applicable use _#detachedEntity(Object)_ instead
 ====
 --
-<.> `[line-through gray]#*isPersistent*#(Object domainObject)` : `boolean`
+<.> xref:#isPersistent[isPersistent]
 +
 --
 [WARNING]
@@ -184,10 +154,8 @@ due to ambiguous semantic, use _#getEntityState(Object)_ instead
 ====
 
 Determines if the specified object is persistent (that it is stored permanently outside of the virtual machine in the object store).
-
-This method can also return `trueif the object has been _#isDeleted(Object) deleted_ from the object store.
 --
-<.> `[line-through gray]#*isDeleted*#(Object domainObject)` : `boolean`
+<.> xref:#isDeleted[isDeleted]
 +
 --
 [WARNING]
@@ -200,3 +168,173 @@ due to ambiguous semantic, use _#getEntityState(Object)_ instead
 Determines if the specified object has been deleted from the object store.
 --
 
+== Members
+
+[#getEntityState]
+=== getEntityState
+
+Returns the EntityState of given _object_ . Returns _EntityState#NOT_PERSISTABLE_ for _object==null_ .
+
+[#detachedEntity]
+=== detachedEntity
+
+Same as _org.apache.isis.applib.services.factory.FactoryService#detachedEntity(Object)_ ; provided as a convenience because instantiating and _#persist(Object) persisting_ are often done together.
+
+[#persist]
+=== persist
+
+Persist the specified object (or do nothing if already persistent).
+
+[#persistAndFlush]
+=== persistAndFlush
+
+Persist the specified object (or do nothing if already persistent) and flushes changes to the database.
+
+[#remove]
+=== remove
+
+Deletes the domain object but only if is attached.
+
+[#removeAndFlush]
+=== removeAndFlush
+
+Deletes the domain object but only if is persistent, and flushes changes to the database.
+
+[#removeAll]
+=== removeAll
+
+Removes all instances of the domain object.
+
+Intended primarily for testing purposes.
+
+[#allInstances]
+=== allInstances
+
+As _#allInstances(Class, long, long)_ , but but returning all instances rather than just those * within the specified range..
+
+[#allInstances]
+=== allInstances
+
+Returns all the instances of the specified type (including subtypes). If the optional range parameters are used, the dataset returned starts from (0 based) index, and consists of only up to count items.
+
+If there are no instances the list will be empty. This method creates a new _List_ object each time it is called so the caller is free to use or modify the returned _List_ , but the changes will not be reflected back to the repository.
+
+This method should only be called where the number of instances is known to be relatively low, unless the optional range parameters (2 longs) are specified. The range parameters are "start" and "count".
+
+[#allMatches]
+=== allMatches
+
+As _#allMatches(Class, Predicate, long, long)_ , but returning all instances rather than just those within the specified range.
+
+[#allMatches]
+=== allMatches
+
+Returns all the instances of the specified type (including subtypes) that the predicate object accepts. If the optional range parameters are used, the dataset returned starts from (0 based) index, and consists of only up to count items.
+
+If there are no instances the list will be empty. This method creates a new _List_ object each time it is called so the caller is free to use or modify the returned _List_ , but the changes will not be reflected back to the repository.
+
+This method is useful during exploration/prototyping, but - because the filtering is performed client-side - this method is only really suitable for initial development/prototyping, or for classes with very few instances. Use _#allMatches(Query)_ for production code.
+
+[#allMatches]
+=== allMatches
+
+Returns all the instances that match the given xref:system:generated:index/applib/query/Query.adoc[Query] .
+
+If there are no instances the list will be empty. This method creates a new _List_ object each time it is called so the caller is free to use or modify the returned _List_ , but the changes will not be reflected back to the repository.
+
+This method is the recommended way of querying for multiple instances.
+
+[#uniqueMatch]
+=== uniqueMatch
+
+Find the only instance of the specified type (including subtypes) that has the specified title.
+
+If no instance is found then _Optional#empty()_ will be return, while if there is more that one instances a run-time exception will be thrown.
+
+This method is useful during exploration/prototyping, but - because the filtering is performed client-side - this method is only really suitable for initial development/prototyping, or for classes with very few instances. Use _#uniqueMatch(Query)_ for production code.
+
+[#uniqueMatch]
+=== uniqueMatch
+
+Find the only instance that matches the provided query.
+
+If no instance is found then _Optional#empty()_ will be return, while if there is more that one instances a run-time exception will be thrown.
+
+This method is the recommended way of querying for (precisely) one instance. See also _#allMatches(Query)_
+
+[#firstMatch]
+=== firstMatch
+
+Find the only instance of the specified type (including subtypes) that has the specified title.
+
+If no instance is found then _Optional#empty()_ will be return, while if there is more that one instances then the first will be returned.
+
+This method is useful during exploration/prototyping, but - because the filtering is performed client-side - this method is only really suitable for initial development/prototyping, or for classes with very few instances. Use _#firstMatch(Query)_ for production code.
+
+[#firstMatch]
+=== firstMatch
+
+Find the only instance that matches the provided query, if any..
+
+If no instance is found then _Optional#empty()_ will be return, while if there is more that one instances then the first will be returned.
+
+[#refresh]
+=== refresh
+
+Reloads the pojo.
+
+[#detach]
+=== detach
+
+Detach the entity from the current persistence session.
+
+This allows the entity to be read from even after the PersistenceSession that obtained it has been closed.
+
+[#detachedEntity]
+=== detachedEntity
+
+[WARNING]
+====
+[red]#_deprecated:_#
+
+if applicable use _#detachedEntity(Object)_ instead ... "new is the new new", passing in a new-ed up instance is more flexible and also more error prone, eg. it allows the compiler to check validity of the used constructor rather than doing construction reflective at runtime.
+====
+
+Same as _org.apache.isis.applib.services.factory.FactoryService#detachedEntity(Class)_ ; provided as a convenience because instantiating and _#persist(Object) persisting_ are often done together.
+
+[#instantiate]
+=== instantiate
+
+[WARNING]
+====
+[red]#_deprecated:_#
+
+if applicable use _#detachedEntity(Object)_ instead
+====
+
+[#isPersistent]
+=== isPersistent
+
+[WARNING]
+====
+[red]#_deprecated:_#
+
+due to ambiguous semantic, use _#getEntityState(Object)_ instead
+====
+
+Determines if the specified object is persistent (that it is stored permanently outside of the virtual machine in the object store).
+
+This method can also return `true` if the object has been _#isDeleted(Object) deleted_ from the object store.
+
+[#isDeleted]
+=== isDeleted
+
+[WARNING]
+====
+[red]#_deprecated:_#
+
+due to ambiguous semantic, use _#getEntityState(Object)_ instead
+====
+
+Determines if the specified object has been deleted from the object store.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/scratchpad/Scratchpad.adoc b/antora/components/system/modules/generated/pages/index/applib/services/scratchpad/Scratchpad.adoc
index 93be836..c68f77b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/scratchpad/Scratchpad.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/scratchpad/Scratchpad.adoc
@@ -15,14 +15,26 @@ interface Scratchpad {
 }
 ----
 
-<.> `[teal]#*get*#(Object key)` : `Object`
+<.> xref:#get[get]
 +
 --
 Obtain user-data, as set by a previous object being acted upon.
 --
-<.> `[teal]#*put*#(Object key, Object value)` : `void`
+<.> xref:#put[put]
 +
 --
 Set user-data, for the use of a subsequent object being acted upon.
 --
 
+== Members
+
+[#get]
+=== get
+
+Obtain user-data, as set by a previous object being acted upon.
+
+[#put]
+=== put
+
+Set user-data, for the use of a subsequent object being acted upon.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/sudo/SudoService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/sudo/SudoService.adoc
index 7e848d4..f916247 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/sudo/SudoService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/sudo/SudoService.adoc
@@ -14,19 +14,36 @@ interface SudoService {
 }
 ----
 
-<.> `[teal]#*ACCESS_ALL_ROLE*#` : `xref:system:generated:index/applib/services/user/RoleMemento.adoc[RoleMemento]`
+<.> xref:#ACCESS_ALL_ROLE[ACCESS_ALL_ROLE]
 +
 --
 If included in the list of roles, then will disable security checks (can view and use all object members).
 --
-<.> `[teal]#*call*#<T>(UnaryOperator<xref:system:generated:index/applib/services/iactn/ExecutionContext.adoc[ExecutionContext]> sudoMapper, Callable<T> supplier)` : `T`
+<.> xref:#call[call]
 +
 --
 Executes the supplied block, with the xref:system:generated:index/applib/services/user/UserService.adoc[UserService] returning the specified user.
 --
-<.> `[teal]#*run*#(UnaryOperator<xref:system:generated:index/applib/services/iactn/ExecutionContext.adoc[ExecutionContext]> sudoMapper, ThrowingRunnable runnable)` : `void`
+<.> xref:#run[run]
 +
 --
 Executes the supplied block, with the xref:system:generated:index/applib/services/user/UserService.adoc[UserService] returning the specified user.
 --
 
+== Members
+
+[#ACCESS_ALL_ROLE]
+=== ACCESS_ALL_ROLE
+
+If included in the list of roles, then will disable security checks (can view and use all object members).
+
+[#call]
+=== call
+
+Executes the supplied block, with the xref:system:generated:index/applib/services/user/UserService.adoc[UserService] returning the specified user.
+
+[#run]
+=== run
+
+Executes the supplied block, with the xref:system:generated:index/applib/services/user/UserService.adoc[UserService] returning the specified user.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/title/TitleService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/title/TitleService.adoc
index 317f4f2..ddea612 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/title/TitleService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/title/TitleService.adoc
@@ -11,14 +11,26 @@ interface TitleService {
 }
 ----
 
-<.> `[teal]#*titleOf*#(Object domainObject)` : `String`
+<.> xref:#titleOf[titleOf]
 +
 --
 Return the title of the object, as rendered in the UI by the Isis viewers.
 --
-<.> `[teal]#*iconNameOf*#(Object domainObject)` : `String`
+<.> xref:#iconNameOf[iconNameOf]
 +
 --
 Return the icon name of the object, as rendered in the UI by the Isis viewers.
 --
 
+== Members
+
+[#titleOf]
+=== titleOf
+
+Return the title of the object, as rendered in the UI by the Isis viewers.
+
+[#iconNameOf]
+=== iconNameOf
+
+Return the icon name of the object, as rendered in the UI by the Isis viewers.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/user/RoleMemento.adoc b/antora/components/system/modules/generated/pages/index/applib/services/user/RoleMemento.adoc
index 8eebfa3..7a8133b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/user/RoleMemento.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/user/RoleMemento.adoc
@@ -14,14 +14,26 @@ class RoleMemento {
 }
 ----
 
-<.> `[teal]#*RoleMemento*#(String name)`
+<.> xref:#RoleMemento[RoleMemento]
 +
 --
 Creates a new role with the specified name. Description is left blank.
 --
-<.> `[teal]#*RoleMemento*#(String name, String description)`
+<.> xref:#RoleMemento[RoleMemento]
 +
 --
 Creates a new role with the specified name and description.
 --
 
+== Members
+
+[#RoleMemento]
+=== RoleMemento
+
+Creates a new role with the specified name. Description is left blank.
+
+[#RoleMemento]
+=== RoleMemento
+
+Creates a new role with the specified name and description.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/user/UserMemento.adoc b/antora/components/system/modules/generated/pages/index/applib/services/user/UserMemento.adoc
index fd922f1..5d93519 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/user/UserMemento.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/user/UserMemento.adoc
@@ -25,40 +25,76 @@ class UserMemento {
 }
 ----
 
-<.> `[teal]#*UserMemento*#(String name, Stream<xref:system:generated:index/applib/services/user/RoleMemento.adoc[RoleMemento]> roles)`
+<.> xref:#UserMemento[UserMemento]
 +
 --
 Creates a new user with the specified name and assigned roles.
 --
-<.> `[teal]#*_system_*#()` : `xref:system:generated:index/applib/services/user/UserMemento.adoc[UserMemento]`
+<.> xref:#system[system]
 +
 --
 The framework's internal user with unrestricted privileges.
 --
-<.> `[teal]#*_ofName_*#(String name)` : `xref:system:generated:index/applib/services/user/UserMemento.adoc[UserMemento]`
+<.> xref:#ofName[ofName]
 +
 --
 Creates a new user with the specified name and no roles.
 --
-<.> `[teal]#*_ofNameAndRoles_*#(String name, xref:system:generated:index/applib/services/user/RoleMemento.adoc[RoleMemento]... roles)` : `xref:system:generated:index/applib/services/user/UserMemento.adoc[UserMemento]`
+<.> xref:#ofNameAndRoles[ofNameAndRoles]
 +
 --
 Creates a new user with the specified name and assigned roles.
 --
-<.> `[teal]#*_ofNameAndRoleNames_*#(String name, String... roleNames)` : `xref:system:generated:index/applib/services/user/UserMemento.adoc[UserMemento]`
+<.> xref:#ofNameAndRoleNames[ofNameAndRoleNames]
 +
 --
 Creates a new user with the specified name and assigned role names.
 --
-<.> `[teal]#*_ofNameAndRoleNames_*#(String name, Stream<String> roleNames)` : `xref:system:generated:index/applib/services/user/UserMemento.adoc[UserMemento]`
+<.> xref:#ofNameAndRoleNames[ofNameAndRoleNames]
 +
 --
 Creates a new user with the specified name and assigned role names.
 --
-<.> `[teal]#*isCurrentUser*#(String userName)` : `boolean`
+<.> xref:#isCurrentUser[isCurrentUser]
 +
 --
 Determine if the specified name is this user.
-
 --
 
+== Members
+
+[#UserMemento]
+=== UserMemento
+
+Creates a new user with the specified name and assigned roles.
+
+[#system]
+=== system
+
+The framework's internal user with unrestricted privileges.
+
+[#ofName]
+=== ofName
+
+Creates a new user with the specified name and no roles.
+
+[#ofNameAndRoles]
+=== ofNameAndRoles
+
+Creates a new user with the specified name and assigned roles.
+
+[#ofNameAndRoleNames]
+=== ofNameAndRoleNames
+
+Creates a new user with the specified name and assigned role names.
+
+[#ofNameAndRoleNames]
+=== ofNameAndRoleNames
+
+Creates a new user with the specified name and assigned role names.
+
+[#isCurrentUser]
+=== isCurrentUser
+
+Determine if the specified name is this user.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/user/UserService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/user/UserService.adoc
index 445664c..71fb2b3 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/user/UserService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/user/UserService.adoc
@@ -18,29 +18,56 @@ interface UserService {
 }
 ----
 
-<.> `[teal]#*currentUser*#()` : `Optional<xref:system:generated:index/applib/services/user/UserMemento.adoc[UserMemento]>`
+<.> xref:#currentUser[currentUser]
 +
 --
 Optionally gets the details about the current user, based on whether an xref:system:generated:index/applib/services/iactn/ExecutionContext.adoc[ExecutionContext] can be found with the current thread's context.
 --
-<.> `[teal]#*getUser*#()` : `xref:system:generated:index/applib/services/user/UserMemento.adoc[UserMemento]`
+<.> xref:#getUser[getUser]
 +
 --
 Gets the details about the current user.
 --
-<.> `[teal]#*currentUserElseFail*#()` : `xref:system:generated:index/applib/services/user/UserMemento.adoc[UserMemento]`
+<.> xref:#currentUserElseFail[currentUserElseFail]
 +
 --
 Gets the details about the current user.
 --
-<.> `[teal]#*currentUserName*#()` : `Optional<String>`
+<.> xref:#currentUserName[currentUserName]
 +
 --
 Optionally gets the the current user's name, based on whether an xref:system:generated:index/applib/services/iactn/ExecutionContext.adoc[ExecutionContext] can be found with the current thread's context.
 --
-<.> `[teal]#*currentUserNameElseNobody*#()` : `String`
+<.> xref:#currentUserNameElseNobody[currentUserNameElseNobody]
 +
 --
 Returns either the current user's name or else _Nobody_ .
 --
 
+== Members
+
+[#currentUser]
+=== currentUser
+
+Optionally gets the details about the current user, based on whether an xref:system:generated:index/applib/services/iactn/ExecutionContext.adoc[ExecutionContext] can be found with the current thread's context.
+
+[#getUser]
+=== getUser
+
+Gets the details about the current user.
+
+[#currentUserElseFail]
+=== currentUserElseFail
+
+Gets the details about the current user.
+
+[#currentUserName]
+=== currentUserName
+
+Optionally gets the the current user's name, based on whether an xref:system:generated:index/applib/services/iactn/ExecutionContext.adoc[ExecutionContext] can be found with the current thread's context.
+
+[#currentUserNameElseNobody]
+=== currentUserNameElseNobody
+
+Returns either the current user's name or else _Nobody_ .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/userprof/UserProfileService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/userprof/UserProfileService.adoc
index 639380e..dd6342d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/userprof/UserProfileService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/userprof/UserProfileService.adoc
@@ -14,11 +14,18 @@ interface UserProfileService {
 }
 ----
 
-<.> `[teal]#*userProfileName*#()` : `String`
+<.> xref:#userProfileName[userProfileName]
 +
 --
 Used as the menu name of the _org.apache.isis.applib.annotation.DomainServiceLayout.MenuBar#TERTIARY tertiary_ "Me" menu bar.
+--
+
+== Members
+
+[#userProfileName]
+=== userProfileName
+
+Used as the menu name of the _org.apache.isis.applib.annotation.DomainServiceLayout.MenuBar#TERTIARY tertiary_ "Me" menu bar.
 
 If returns `null` , then the current user name is used instead.
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/userreg/EmailNotificationService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/userreg/EmailNotificationService.adoc
index b1857af..86657d6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/userreg/EmailNotificationService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/userreg/EmailNotificationService.adoc
@@ -2,7 +2,7 @@
 
 Supporting service for the user-registration functionality.
 
-The framework provides a default implementation which in turn uses the _org.apache.isis.applib.services.email.EmailService_ , namely `EmailServiceDefault.
+The framework provides a default implementation which in turn uses the _org.apache.isis.applib.services.email.EmailService_ , namely `EmailServiceDefault` .
 
 == API
 
@@ -16,9 +16,16 @@ interface EmailNotificationService {
 }
 ----
 
-<.> `[teal]#*isConfigured*#()` : `boolean`
+<.> xref:#isConfigured[isConfigured]
 +
 --
 Whether this service has been configured and thus available for use.
 --
 
+== Members
+
+[#isConfigured]
+=== isConfigured
+
+Whether this service has been configured and thus available for use.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserRegistrationService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserRegistrationService.adoc
index 9b40d6f..da5ea98 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserRegistrationService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserRegistrationService.adoc
@@ -2,7 +2,7 @@
 
 Required API to enable users to register an account on the system (aka "sign up").
 
-User registration also requires that the xref:system:generated:index/applib/services/userreg/EmailNotificationService.adoc[EmailNotificationService] and _org.apache.isis.applib.services.email.EmailService_ to be configured. The framework provides default implementations of both of these services. The notification service requires no further configuration. The email service ( `EmailServiceDefault) _does_ require a couple of configuration properties to be set (specifying the SMTP mail serv [...]
+User registration also requires that the xref:system:generated:index/applib/services/userreg/EmailNotificationService.adoc[EmailNotificationService] and _org.apache.isis.applib.services.email.EmailService_ to be configured. The framework provides default implementations of both of these services. The notification service requires no further configuration. The email service ( `EmailServiceDefault` ) _does_ require a couple of configuration properties to be set (specifying the SMTP mail se [...]
 
 == API
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/WrapperFactory.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/WrapperFactory.adoc
index 9e75a1d..7bdb28e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/WrapperFactory.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/WrapperFactory.adoc
@@ -40,77 +40,134 @@ interface WrapperFactory {
 }
 ----
 
-<.> `[teal]#*wrap*#<T>(T domainObject, xref:system:generated:index/applib/services/wrapper/control/SyncControl.adoc[SyncControl] syncControl)` : `T`
+<.> xref:#wrap[wrap]
 +
 --
 Provides the "wrapper" of a domain object against which to invoke the action.
-
-The provided xref:system:generated:index/applib/services/wrapper/control/SyncControl.adoc[SyncControl] determines whether business rules are checked first, and conversely whether the action is executed. There are therefore three typical cases:
-
-* check rules, execute action
-* skip rules, execute action
-* check rules, skip action
-
-The last logical option (skip rules, skip action) is valid but doesn't make sense, as it's basically a no-op.
-
-Otherwise, will do all the validations (raise exceptions as required etc.), but doesn't modify the model.
 --
-<.> `[teal]#*wrap*#<T>(T domainObject)` : `T`
+<.> xref:#wrap[wrap]
 +
 --
 A convenience overload for _#wrap(Object, SyncControl)_ , returning a wrapper to invoke the action synchronously, enforcing business rules. Any exceptions will be propagated, not swallowed.
 --
-<.> `[teal]#*wrapMixin*#<T>(Class<T> mixinClass, Object mixedIn, xref:system:generated:index/applib/services/wrapper/control/SyncControl.adoc[SyncControl] syncControl)` : `T`
+<.> xref:#wrapMixin[wrapMixin]
 +
 --
 Provides the wrapper for a _FactoryService#mixin(Class, Object) mixin_ , against which to invoke the action.
-
-The provided xref:system:generated:index/applib/services/wrapper/control/SyncControl.adoc[SyncControl] determines whether business rules are checked first, and conversely whether the action is executed. See _#wrap(Object, SyncControl)_ for more details on this.
 --
-<.> `[teal]#*wrapMixin*#<T>(Class<T> mixinClass, Object mixedIn)` : `T`
+<.> xref:#wrapMixin[wrapMixin]
 +
 --
 A convenience overload for _#wrapMixin(Class, Object, SyncControl)_ , returning a wrapper to invoke the action synchronously, enforcing business rules. Any exceptions will be propagated, not swallowed.
 --
-<.> `[teal]#*unwrap*#<T>(T possibleWrappedDomainObject)` : `T`
+<.> xref:#unwrap[unwrap]
 +
 --
 Obtains the underlying domain object, if wrapped.
-
-If the object _#isWrapper(Object) is not wrapped_ , then should just return the object back unchanged.
 --
-<.> `[teal]#*isWrapper*#<T>(T possibleWrappedDomainObject)` : `boolean`
+<.> xref:#isWrapper[isWrapper]
 +
 --
 Whether the supplied object is a wrapper around a domain object.
 --
-<.> `[teal]#*asyncWrap*#<T, R>(T domainObject, xref:system:generated:index/applib/services/wrapper/control/AsyncControl.adoc[AsyncControl]<R> asyncControl)` : `T`
+<.> xref:#asyncWrap[asyncWrap]
 +
 --
 Returns a proxy object for the provided _domainObject_ , through which can execute the action asynchronously.
 --
-<.> `[teal]#*asyncWrapMixin*#<T, R>(Class<T> mixinClass, Object mixedIn, xref:system:generated:index/applib/services/wrapper/control/AsyncControl.adoc[AsyncControl]<R> asyncControl)` : `T`
+<.> xref:#asyncWrapMixin[asyncWrapMixin]
 +
 --
 Returns a proxy object for the provided _mixinClass_ , through which can execute the action asynchronously.
 --
-<.> `[teal]#*getListeners*#()` : `List<xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener]>`
+<.> xref:#getListeners[getListeners]
 +
 --
 All xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] s that have been registered using _#addInteractionListener(InteractionListener)_ .
 --
-<.> `[teal]#*addInteractionListener*#(xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] listener)` : `boolean`
+<.> xref:#addInteractionListener[addInteractionListener]
 +
 --
 Registers an xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] , to be notified of interactions on all wrappers.
-
-This is retrospective: the listener will be notified of interactions even on wrappers created before the listener was installed. (From an implementation perspective this is because the wrappers delegate back to the container to fire the events).
 --
-<.> `[teal]#*removeInteractionListener*#(xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] listener)` : `boolean`
+<.> xref:#removeInteractionListener[removeInteractionListener]
 +
 --
 Remove an xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] , to no longer be notified of interactions on wrappers.
+--
+
+== Members
+
+[#wrap]
+=== wrap
+
+Provides the "wrapper" of a domain object against which to invoke the action.
+
+The provided xref:system:generated:index/applib/services/wrapper/control/SyncControl.adoc[SyncControl] determines whether business rules are checked first, and conversely whether the action is executed. There are therefore three typical cases:
+
+* check rules, execute action
+* skip rules, execute action
+* check rules, skip action
+
+The last logical option (skip rules, skip action) is valid but doesn't make sense, as it's basically a no-op.
+
+Otherwise, will do all the validations (raise exceptions as required etc.), but doesn't modify the model.
+
+[#wrap]
+=== wrap
+
+A convenience overload for _#wrap(Object, SyncControl)_ , returning a wrapper to invoke the action synchronously, enforcing business rules. Any exceptions will be propagated, not swallowed.
+
+[#wrapMixin]
+=== wrapMixin
+
+Provides the wrapper for a _FactoryService#mixin(Class, Object) mixin_ , against which to invoke the action.
+
+The provided xref:system:generated:index/applib/services/wrapper/control/SyncControl.adoc[SyncControl] determines whether business rules are checked first, and conversely whether the action is executed. See _#wrap(Object, SyncControl)_ for more details on this.
+
+[#wrapMixin]
+=== wrapMixin
+
+A convenience overload for _#wrapMixin(Class, Object, SyncControl)_ , returning a wrapper to invoke the action synchronously, enforcing business rules. Any exceptions will be propagated, not swallowed.
+
+[#unwrap]
+=== unwrap
+
+Obtains the underlying domain object, if wrapped.
+
+If the object _#isWrapper(Object) is not wrapped_ , then should just return the object back unchanged.
+
+[#isWrapper]
+=== isWrapper
+
+Whether the supplied object is a wrapper around a domain object.
+
+[#asyncWrap]
+=== asyncWrap
+
+Returns a proxy object for the provided _domainObject_ , through which can execute the action asynchronously.
+
+[#asyncWrapMixin]
+=== asyncWrapMixin
+
+Returns a proxy object for the provided _mixinClass_ , through which can execute the action asynchronously.
+
+[#getListeners]
+=== getListeners
+
+All xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] s that have been registered using _#addInteractionListener(InteractionListener)_ .
+
+[#addInteractionListener]
+=== addInteractionListener
+
+Registers an xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] , to be notified of interactions on all wrappers.
+
+This is retrospective: the listener will be notified of interactions even on wrappers created before the listener was installed. (From an implementation perspective this is because the wrappers delegate back to the container to fire the events).
+
+[#removeInteractionListener]
+=== removeInteractionListener
+
+Remove an xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] , to no longer be notified of interactions on wrappers.
 
 This is retrospective: the listener will no longer be notified of any interactions created on any wrappers, not just on those wrappers created subsequently. (From an implementation perspective this is because the wrappers delegate back to the container to fire the events).
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/WrappingObject.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/WrappingObject.adoc
index cc35770..d873dc2 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/WrappingObject.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/WrappingObject.adoc
@@ -14,16 +14,34 @@ interface WrappingObject {
 }
 ----
 
-<.> `[teal]#*__isis_save*#()` : `void`
+<.> xref:#__isis_save[__isis_save]
 +
 --
 Programmatic equivalent of invoking save for a transient object .
-
-NOTE: domain classes may not have a method with this name. The `__isis_` prefix is intended to reduce the risk of a collision.
 --
-<.> `[teal]#*__isis_wrapped*#()` : `Object`
+<.> xref:#__isis_wrapped[__isis_wrapped]
++
+--
+Provide access to the underlying, wrapped object.
+--
+<.> xref:#__isis_executionModes[__isis_executionModes]
 +
 --
+The _EnumSetexecution modes_ inferred from the xref:system:generated:index/applib/services/wrapper/control/SyncControl.adoc[SyncControl] with which this wrapper was _WrapperFactory#wrap(Object, SyncControl) created_ .
+--
+
+== Members
+
+[#__isis_save]
+=== __isis_save
+
+Programmatic equivalent of invoking save for a transient object .
+
+NOTE: domain classes may not have a method with this name. The `__isis_` prefix is intended to reduce the risk of a collision.
+
+[#__isis_wrapped]
+=== __isis_wrapped
+
 Provide access to the underlying, wrapped object.
 
 Used to unwrap objects used as arguments to actions (otherwise, end up creating a `ObjectSpecification` for the Javassist-enhanced class, not the original class).
@@ -31,10 +49,9 @@ Used to unwrap objects used as arguments to actions (otherwise, end up creating
 NOTE: domain classes may not have a method with this name. The `__isis_` prefix is intended to reduce the risk of a collision.
 
  *NOTE: there is a string-literal reference to this name `DomainObjectInvocationHandler` , so it should not be changed.* .
---
-<.> `[teal]#*__isis_executionModes*#()` : `ImmutableEnumSet<xref:system:generated:index/applib/services/wrapper/control/ExecutionMode.adoc[ExecutionMode]>`
-+
---
+
+[#__isis_executionModes]
+=== __isis_executionModes
+
 The _EnumSetexecution modes_ inferred from the xref:system:generated:index/applib/services/wrapper/control/SyncControl.adoc[SyncControl] with which this wrapper was _WrapperFactory#wrap(Object, SyncControl) created_ .
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ControlAbstract.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ControlAbstract.adoc
index 1720255..2a358fb 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ControlAbstract.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ControlAbstract.adoc
@@ -14,9 +14,16 @@ class ControlAbstract {
 }
 ----
 
-<.> `[teal]#*getExecutionModes*#()` : `ImmutableEnumSet<xref:system:generated:index/applib/services/wrapper/control/ExecutionMode.adoc[ExecutionMode]>`
+<.> xref:#getExecutionModes[getExecutionModes]
 +
 --
 Not API.
 --
 
+== Members
+
+[#getExecutionModes]
+=== getExecutionModes
+
+Not API.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ExceptionHandler.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ExceptionHandler.adoc
index fecb9f7..8f0e612 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ExceptionHandler.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ExceptionHandler.adoc
@@ -10,9 +10,16 @@ interface ExceptionHandler {
 }
 ----
 
-<.> `[teal]#*handle*#(Exception ex)` : `Object`
+<.> xref:#handle[handle]
 +
 --
 Handle the exception in some way. Typically this will log and rethrow the exception. If necessary though it can return some other value instead (must be compatible with the expected return value of the interaction, that is, the action invocation or property edit).
 --
 
+== Members
+
+[#handle]
+=== handle
+
+Handle the exception in some way. Typically this will log and rethrow the exception. If necessary though it can return some other value instead (must be compatible with the expected return value of the interaction, that is, the action invocation or property edit).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ExecutionMode.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ExecutionMode.adoc
index dedc720..b6ab7b7 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ExecutionMode.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/ExecutionMode.adoc
@@ -13,16 +13,28 @@ enum ExecutionMode {
 }
 ----
 
-<.> `[teal]#*_SKIP_RULE_VALIDATION_*#`
+<.> xref:#SKIP_RULE_VALIDATION[SKIP_RULE_VALIDATION]
 +
 --
 Skip all business rules.
 --
-<.> `[teal]#*_SKIP_EXECUTION_*#`
+<.> xref:#SKIP_EXECUTION[SKIP_EXECUTION]
 +
 --
 Skip actual execution.
+--
+
+== Members
+
+[#SKIP_RULE_VALIDATION]
+=== SKIP_RULE_VALIDATION
+
+Skip all business rules.
+
+[#SKIP_EXECUTION]
+=== SKIP_EXECUTION
+
+Skip actual execution.
 
 This is not supported for _WrapperFactory#asyncWrap(Object, AsyncControl)_ ; instead just invoke _WrapperFactory#wrap(Object, SyncControl)_ .
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/SyncControl.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/SyncControl.adoc
index f078d35..e0611dd 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/SyncControl.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/SyncControl.adoc
@@ -13,9 +13,16 @@ class SyncControl {
 }
 ----
 
-<.> `[teal]#*getExecutionModes*#()` : `ImmutableEnumSet<xref:system:generated:index/applib/services/wrapper/control/ExecutionMode.adoc[ExecutionMode]>`
+<.> xref:#getExecutionModes[getExecutionModes]
 +
 --
 Not API.
 --
 
+== Members
+
+[#getExecutionModes]
+=== getExecutionModes
+
+Not API.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ActionArgumentEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ActionArgumentEvent.adoc
index 1216c5e..85df3eb 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ActionArgumentEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ActionArgumentEvent.adoc
@@ -20,9 +20,16 @@ class ActionArgumentEvent {
 }
 ----
 
-<.> `[teal]#*getPosition*#()` : `int`
+<.> xref:#getPosition[getPosition]
 +
 --
 The position (0-based) of the invalid argument.
 --
 
+== Members
+
+[#getPosition]
+=== getPosition
+
+The position (0-based) of the invalid argument.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ActionInvocationEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ActionInvocationEvent.adoc
index 0137c5d..441508b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ActionInvocationEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ActionInvocationEvent.adoc
@@ -19,9 +19,16 @@ class ActionInvocationEvent {
 }
 ----
 
-<.> `[teal]#*getProposed*#()` : `Object`
+<.> xref:#getProposed[getProposed]
 +
 --
 Does not apply
 --
 
+== Members
+
+[#getProposed]
+=== getProposed
+
+Does not apply
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/CollectionAddToEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/CollectionAddToEvent.adoc
index 42f2d8f..f05fa45 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/CollectionAddToEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/CollectionAddToEvent.adoc
@@ -15,9 +15,16 @@ class CollectionAddToEvent {
 }
 ----
 
-<.> `[teal]#*getProposed*#()` : `Object`
+<.> xref:#getProposed[getProposed]
 +
 --
 The object that is being added.
 --
 
+== Members
+
+[#getProposed]
+=== getProposed
+
+The object that is being added.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/CollectionMethodEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/CollectionMethodEvent.adoc
index 3193a3b..fbff3c6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/CollectionMethodEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/CollectionMethodEvent.adoc
@@ -17,31 +17,58 @@ class CollectionMethodEvent {
 }
 ----
 
-<.> `[teal]#*getSource*#()` : `Object`
+<.> xref:#getSource[getSource]
 +
 --
 The collection object (an instance of a `List` or a `Set` etc) that is the originator of this event.
-
-The owning domain object is available using _#getDomainObject()_ .
 --
-<.> `[teal]#*getDomainObject*#()` : `Object`
+<.> xref:#getDomainObject[getDomainObject]
 +
 --
 The owner of the collection (an instance of `Customer/tt> or `Order` , say).` 
 --
-<.> `[teal]#*getMethodName*#()` : `String`
+<.> xref:#getMethodName[getMethodName]
 +
 --
 The name of the method invoked on this collection, for example `isEmpty` .
 --
-<.> `[teal]#*getArgs*#()` : `Object[]`
+<.> xref:#getArgs[getArgs]
 +
 --
 The arguments with which the collection's _#getMethodName() method_ was invoked.
 --
-<.> `[teal]#*getReturnValue*#()` : `Object`
+<.> xref:#getReturnValue[getReturnValue]
 +
 --
 The return value from the _#getMethodName() method_ invocation.
 --
 
+== Members
+
+[#getSource]
+=== getSource
+
+The collection object (an instance of a `List` or a `Set` etc) that is the originator of this event.
+
+The owning domain object is available using _#getDomainObject()_ .
+
+[#getDomainObject]
+=== getDomainObject
+
+The owner of the collection (an instance of `Customer/tt> or `Order` , say).` 
+
+[#getMethodName]
+=== getMethodName
+
+The name of the method invoked on this collection, for example `isEmpty` .
+
+[#getArgs]
+=== getArgs
+
+The arguments with which the collection's _#getMethodName() method_ was invoked.
+
+[#getReturnValue]
+=== getReturnValue
+
+The return value from the _#getMethodName() method_ invocation.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/InteractionEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/InteractionEvent.adoc
index fe1ab78..8a72e17 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/InteractionEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/InteractionEvent.adoc
@@ -27,81 +27,148 @@ class InteractionEvent {
 }
 ----
 
-<.> `[teal]#*getSource*#()` : `Object`
+<.> xref:#getSource[getSource]
 +
 --
 The domain object (pojo) against which the interaction occurred.
 --
-<.> `[teal]#*getIdentifier*#()` : `xref:system:generated:index/applib/Identifier.adoc[Identifier]`
+<.> xref:#getIdentifier[getIdentifier]
 +
 --
 The xref:system:generated:index/applib/Identifier.adoc[Identifier] of the feature of the object being interacted with.
-
-Will be consistent with the subclass of xref:system:generated:index/applib/services/wrapper/events/InteractionEvent.adoc[InteractionEvent] . So for example a xref:system:generated:index/applib/services/wrapper/events/PropertyModifyEvent.adoc[PropertyModifyEvent] will have an xref:system:generated:index/applib/Identifier.adoc[Identifier] that identifies the property being modified.
 --
-<.> `[teal]#*getClassName*#()` : `String`
+<.> xref:#getClassName[getClassName]
 +
 --
 As per _#getClassName()_ , but naturalized.
 --
-<.> `[teal]#*getClassNaturalName*#()` : `String`
+<.> xref:#getClassNaturalName[getClassNaturalName]
 +
 --
 Convenience method that returns the _Identifier#getClassNaturalName() natural class name_ of the _#getIdentifier() identifier_ .
 --
-<.> `[teal]#*getMemberName*#()` : `String`
+<.> xref:#getMemberName[getMemberName]
 +
 --
 Convenience method that returns the _Identifier#getMemberName() member name_ of the _#getIdentifier() identifier_ .
 --
-<.> `[teal]#*getMemberNaturalName*#()` : `String`
+<.> xref:#getMemberNaturalName[getMemberNaturalName]
 +
 --
 As per _#getMemberName()_ , but naturalized.
 --
-<.> `[teal]#*getMemberParameterNames*#()` : `List<String>`
+<.> xref:#getMemberParameterNames[getMemberParameterNames]
 +
 --
 Convenience method that returns the _Identifier#getClassName() class name_ of the _#getIdentifier() identifier_ .
 --
-<.> `[teal]#*getMemberParameterNaturalNames*#()` : `List<String>`
+<.> xref:#getMemberParameterNaturalNames[getMemberParameterNaturalNames]
 +
 --
 As per _#getMemberParameterNames()_ , but naturalized.
 --
-<.> `[teal]#*getReason*#()` : `String`
+<.> xref:#getReason[getReason]
 +
 --
 The reason, if any, that this interaction may have been vetoed or otherwise disallowed.
-
-Intended to be _#advised(String, Class) set_ as a result of consulting one of the facets.
 --
-<.> `[teal]#*getReasonMessage*#()` : `String`
+<.> xref:#getReasonMessage[getReasonMessage]
 +
 --
 The reason message, if any, that this interaction may have been vetoed or otherwise disallowed.
-
-This message should be overridden by subclasses for containing the Reason, the Identifier and any other relevant context information.
 --
-<.> `[teal]#*getAdvisorClass*#()` : `Class<?>`
+<.> xref:#getAdvisorClass[getAdvisorClass]
 +
 --
 The class of the (first) advisor, if any, that provided the _#getReason() reason_ that this interaction is _#isVeto() vetoed_ .
 --
-<.> `[teal]#*advised*#(String reason, Class<?> advisorClass)` : `void`
+<.> xref:#advised[advised]
 +
 --
 Specify the _#getReason() reason_ that this interaction has been vetoed and the _#getAdvisorClass() class of the advisor_ that did the veto.
 --
-<.> `[teal]#*isVeto*#()` : `boolean`
+<.> xref:#isVeto[isVeto]
 +
 --
 Whether this interaction has been vetoed (meaning that _#getReason()_ and _#getAdvisorClass()_ will both be non- `null` and the _#getReason() reason_ non-empty.)
+--
+
+== Members
+
+[#getSource]
+=== getSource
+
+The domain object (pojo) against which the interaction occurred.
+
+[#getIdentifier]
+=== getIdentifier
+
+The xref:system:generated:index/applib/Identifier.adoc[Identifier] of the feature of the object being interacted with.
+
+Will be consistent with the subclass of xref:system:generated:index/applib/services/wrapper/events/InteractionEvent.adoc[InteractionEvent] . So for example a xref:system:generated:index/applib/services/wrapper/events/PropertyModifyEvent.adoc[PropertyModifyEvent] will have an xref:system:generated:index/applib/Identifier.adoc[Identifier] that identifies the property being modified.
+
+[#getClassName]
+=== getClassName
+
+As per _#getClassName()_ , but naturalized.
+
+[#getClassNaturalName]
+=== getClassNaturalName
+
+Convenience method that returns the _Identifier#getClassNaturalName() natural class name_ of the _#getIdentifier() identifier_ .
+
+[#getMemberName]
+=== getMemberName
+
+Convenience method that returns the _Identifier#getMemberName() member name_ of the _#getIdentifier() identifier_ .
+
+[#getMemberNaturalName]
+=== getMemberNaturalName
+
+As per _#getMemberName()_ , but naturalized.
+
+[#getMemberParameterNames]
+=== getMemberParameterNames
+
+Convenience method that returns the _Identifier#getClassName() class name_ of the _#getIdentifier() identifier_ .
+
+[#getMemberParameterNaturalNames]
+=== getMemberParameterNaturalNames
+
+As per _#getMemberParameterNames()_ , but naturalized.
+
+[#getReason]
+=== getReason
+
+The reason, if any, that this interaction may have been vetoed or otherwise disallowed.
+
+Intended to be _#advised(String, Class) set_ as a result of consulting one of the facets.
+
+[#getReasonMessage]
+=== getReasonMessage
+
+The reason message, if any, that this interaction may have been vetoed or otherwise disallowed.
+
+This message should be overridden by subclasses for containing the Reason, the Identifier and any other relevant context information.
+
+[#getAdvisorClass]
+=== getAdvisorClass
+
+The class of the (first) advisor, if any, that provided the _#getReason() reason_ that this interaction is _#isVeto() vetoed_ .
+
+[#advised]
+=== advised
+
+Specify the _#getReason() reason_ that this interaction has been vetoed and the _#getAdvisorClass() class of the advisor_ that did the veto.
+
+[#isVeto]
+=== isVeto
+
+Whether this interaction has been vetoed (meaning that _#getReason()_ and _#getAdvisorClass()_ will both be non- `null` and the _#getReason() reason_ non-empty.)
 
 The interpretation of this depends on the subclass:
 
 * for xref:system:generated:index/applib/services/wrapper/events/VisibilityEvent.adoc[VisibilityEvent] , a veto means that the feature (property, collection, action) is hidden
 * for xref:system:generated:index/applib/services/wrapper/events/UsabilityEvent.adoc[UsabilityEvent] , a veto means that the feature is disabled
 * for xref:system:generated:index/applib/services/wrapper/events/ValidityEvent.adoc[ValidityEvent] , a veto means that the proposed modification (property value, object added/removed, action argument) is invalid
---
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ParseValueEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ParseValueEvent.adoc
index a6f8888..13ab168 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ParseValueEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/ParseValueEvent.adoc
@@ -16,9 +16,16 @@ class ParseValueEvent {
 }
 ----
 
-<.> `[teal]#*getSource*#()` : `Object`
+<.> xref:#getSource[getSource]
 +
 --
 Will be the source provided in the _#ParseValueEvent(Object, Identifier, String) constructor_ if not null, otherwise will fallback to the proposed value.
 --
 
+== Members
+
+[#getSource]
+=== getSource
+
+Will be the source provided in the _#ParseValueEvent(Object, Identifier, String) constructor_ if not null, otherwise will fallback to the proposed value.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/PropertyModifyEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/PropertyModifyEvent.adoc
index 5d52507..a6471dd 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/PropertyModifyEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/events/PropertyModifyEvent.adoc
@@ -15,9 +15,16 @@ class PropertyModifyEvent {
 }
 ----
 
-<.> `[teal]#*getProposed*#()` : `Object`
+<.> xref:#getProposed[getProposed]
 +
 --
 If `null` , then the property was cleared.
 --
 
+== Members
+
+[#getProposed]
+=== getProposed
+
+If `null` , then the property was cleared.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/listeners/InteractionListener.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/listeners/InteractionListener.adoc
index 70707ff..1ce54ba 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/listeners/InteractionListener.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/listeners/InteractionListener.adoc
@@ -25,102 +25,184 @@ interface InteractionListener {
 }
 ----
 
-<.> `[teal]#*objectTitleRead*#(xref:system:generated:index/applib/services/wrapper/events/ObjectTitleEvent.adoc[ObjectTitleEvent] ev)` : `void`
+<.> xref:#objectTitleRead[objectTitleRead]
 +
 --
 The title was read.
 --
-<.> `[teal]#*objectPersisted*#(xref:system:generated:index/applib/services/wrapper/events/ObjectValidityEvent.adoc[ObjectValidityEvent] ev)` : `void`
+<.> xref:#objectPersisted[objectPersisted]
 +
 --
 The object was persisted (or an attempt to persist it was made).
 --
-<.> `[teal]#*propertyVisible*#(xref:system:generated:index/applib/services/wrapper/events/PropertyVisibilityEvent.adoc[PropertyVisibilityEvent] ev)` : `void`
+<.> xref:#propertyVisible[propertyVisible]
 +
 --
 A check was made to determine if a property was visible.
 --
-<.> `[teal]#*propertyUsable*#(xref:system:generated:index/applib/services/wrapper/events/PropertyUsabilityEvent.adoc[PropertyUsabilityEvent] ev)` : `void`
+<.> xref:#propertyUsable[propertyUsable]
 +
 --
 A check was made to determine if a property was usable.
 --
-<.> `[teal]#*propertyAccessed*#(xref:system:generated:index/applib/services/wrapper/events/PropertyAccessEvent.adoc[PropertyAccessEvent] ev)` : `void`
+<.> xref:#propertyAccessed[propertyAccessed]
 +
 --
 A property was read.
-
-Unlike most other events, a xref:system:generated:index/applib/services/wrapper/events/PropertyAccessEvent.adoc[PropertyAccessEvent] will never have been vetoed (that is, _PropertyAccessEvent#isVeto()_ will always be `false` ).
 --
-<.> `[teal]#*propertyModified*#(xref:system:generated:index/applib/services/wrapper/events/PropertyModifyEvent.adoc[PropertyModifyEvent] ev)` : `void`
+<.> xref:#propertyModified[propertyModified]
 +
 --
 A property was modified (or an attempt to modify it was made)
-
-Use _PropertyModifyEvent#getProposed()_ to determine whether the property was being set or cleared.
 --
-<.> `[teal]#*collectionVisible*#(CollectionVisibilityEvent ev)` : `void`
+<.> xref:#collectionVisible[collectionVisible]
 +
 --
 A check was made to determine if a collection was visible.
-
-Will be fired prior to _#collectionUsable(CollectionUsabilityEvent)_ .
 --
-<.> `[teal]#*collectionUsable*#(xref:system:generated:index/applib/services/wrapper/events/CollectionUsabilityEvent.adoc[CollectionUsabilityEvent] ev)` : `void`
+<.> xref:#collectionUsable[collectionUsable]
 +
 --
 A check was made to determine if a collection was usable.
-
-Will be fired prior to either _#collectionAccessed(CollectionAccessEvent)_ or _#collectionAddedTo(CollectionAddToEvent)_ or _#collectionRemovedFrom(CollectionRemoveFromEvent)_ .
 --
-<.> `[teal]#*collectionAccessed*#(xref:system:generated:index/applib/services/wrapper/events/CollectionAccessEvent.adoc[CollectionAccessEvent] ev)` : `void`
+<.> xref:#collectionAccessed[collectionAccessed]
 +
 --
 A collection was read.
-
-Unlike most other events, a xref:system:generated:index/applib/services/wrapper/events/CollectionAccessEvent.adoc[CollectionAccessEvent] will never have been vetoed (that is, _CollectionAccessEvent#isVeto()_ will always be `false` ).
 --
-<.> `[teal]#*collectionAddedTo*#(xref:system:generated:index/applib/services/wrapper/events/CollectionAddToEvent.adoc[CollectionAddToEvent] ev)` : `void`
+<.> xref:#collectionAddedTo[collectionAddedTo]
 +
 --
 An object was added to the collection (or an attempt to add it was made).
 --
-<.> `[teal]#*collectionRemovedFrom*#(xref:system:generated:index/applib/services/wrapper/events/CollectionRemoveFromEvent.adoc[CollectionRemoveFromEvent] ev)` : `void`
+<.> xref:#collectionRemovedFrom[collectionRemovedFrom]
 +
 --
 An object was removed from the collection (or an attempt to remove it was made).
 --
-<.> `[teal]#*collectionMethodInvoked*#(xref:system:generated:index/applib/services/wrapper/events/CollectionMethodEvent.adoc[CollectionMethodEvent] interactionEvent)` : `void`
+<.> xref:#collectionMethodInvoked[collectionMethodInvoked]
 +
 --
 A method of a collection (such as `isEmpty()` or `size()` ) has been invoked.
-
-Unlike the other methods in this interface, the source of these events will be an instance of a Collection (such as `java.util.List` ) rather than the domain object. (The domain object is _CollectionMethodEvent#getDomainObject()_ still available, however).
 --
-<.> `[teal]#*actionVisible*#(xref:system:generated:index/applib/services/wrapper/events/ActionVisibilityEvent.adoc[ActionVisibilityEvent] interactionEvent)` : `void`
+<.> xref:#actionVisible[actionVisible]
 +
 --
 A check was made to determine if an action was visible.
-
-Will be fired prior to _#actionUsable(ActionUsabilityEvent)_ .
 --
-<.> `[teal]#*actionUsable*#(xref:system:generated:index/applib/services/wrapper/events/ActionUsabilityEvent.adoc[ActionUsabilityEvent] ev)` : `void`
+<.> xref:#actionUsable[actionUsable]
 +
 --
 A check was made to determine if an action was usable.
-
-Will be fired prior to _#actionArgument(ActionArgumentEvent)_ .
 --
-<.> `[teal]#*actionArgument*#(xref:system:generated:index/applib/services/wrapper/events/ActionArgumentEvent.adoc[ActionArgumentEvent] ev)` : `void`
+<.> xref:#actionArgument[actionArgument]
 +
 --
 A check was made as to whether an argument proposed for an action was valid.
-
-Will be fired prior to _#actionInvoked(ActionInvocationEvent)_ .
 --
-<.> `[teal]#*actionInvoked*#(xref:system:generated:index/applib/services/wrapper/events/ActionInvocationEvent.adoc[ActionInvocationEvent] ev)` : `void`
+<.> xref:#actionInvoked[actionInvoked]
 +
 --
 An action was invoked (or an attempt to invoke it was made).
 --
 
+== Members
+
+[#objectTitleRead]
+=== objectTitleRead
+
+The title was read.
+
+[#objectPersisted]
+=== objectPersisted
+
+The object was persisted (or an attempt to persist it was made).
+
+[#propertyVisible]
+=== propertyVisible
+
+A check was made to determine if a property was visible.
+
+[#propertyUsable]
+=== propertyUsable
+
+A check was made to determine if a property was usable.
+
+[#propertyAccessed]
+=== propertyAccessed
+
+A property was read.
+
+Unlike most other events, a xref:system:generated:index/applib/services/wrapper/events/PropertyAccessEvent.adoc[PropertyAccessEvent] will never have been vetoed (that is, _PropertyAccessEvent#isVeto()_ will always be `false` ).
+
+[#propertyModified]
+=== propertyModified
+
+A property was modified (or an attempt to modify it was made)
+
+Use _PropertyModifyEvent#getProposed()_ to determine whether the property was being set or cleared.
+
+[#collectionVisible]
+=== collectionVisible
+
+A check was made to determine if a collection was visible.
+
+Will be fired prior to _#collectionUsable(CollectionUsabilityEvent)_ .
+
+[#collectionUsable]
+=== collectionUsable
+
+A check was made to determine if a collection was usable.
+
+Will be fired prior to either _#collectionAccessed(CollectionAccessEvent)_ or _#collectionAddedTo(CollectionAddToEvent)_ or _#collectionRemovedFrom(CollectionRemoveFromEvent)_ .
+
+[#collectionAccessed]
+=== collectionAccessed
+
+A collection was read.
+
+Unlike most other events, a xref:system:generated:index/applib/services/wrapper/events/CollectionAccessEvent.adoc[CollectionAccessEvent] will never have been vetoed (that is, _CollectionAccessEvent#isVeto()_ will always be `false` ).
+
+[#collectionAddedTo]
+=== collectionAddedTo
+
+An object was added to the collection (or an attempt to add it was made).
+
+[#collectionRemovedFrom]
+=== collectionRemovedFrom
+
+An object was removed from the collection (or an attempt to remove it was made).
+
+[#collectionMethodInvoked]
+=== collectionMethodInvoked
+
+A method of a collection (such as `isEmpty()` or `size()` ) has been invoked.
+
+Unlike the other methods in this interface, the source of these events will be an instance of a Collection (such as `java.util.List` ) rather than the domain object. (The domain object is _CollectionMethodEvent#getDomainObject()_ still available, however).
+
+[#actionVisible]
+=== actionVisible
+
+A check was made to determine if an action was visible.
+
+Will be fired prior to _#actionUsable(ActionUsabilityEvent)_ .
+
+[#actionUsable]
+=== actionUsable
+
+A check was made to determine if an action was usable.
+
+Will be fired prior to _#actionArgument(ActionArgumentEvent)_ .
+
+[#actionArgument]
+=== actionArgument
+
+A check was made as to whether an argument proposed for an action was valid.
+
+Will be fired prior to _#actionInvoked(ActionInvocationEvent)_ .
+
+[#actionInvoked]
+=== actionInvoked
+
+An action was invoked (or an attempt to invoke it was made).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionService.adoc
index e1bb151..05d5522 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionService.adoc
@@ -15,28 +15,50 @@ interface TransactionService {
 }
 ----
 
-<.> `[teal]#*currentTransactionId*#()` : `Optional<xref:system:generated:index/applib/services/xactn/TransactionId.adoc[TransactionId]>`
+<.> xref:#currentTransactionId[currentTransactionId]
 +
 --
 Optionally returns the unique identifier of the current thread's transaction, based on whether there is an active transaction associated with the current thread.
 --
-<.> `[teal]#*currentTransactionState*#()` : `xref:system:generated:index/applib/services/xactn/TransactionState.adoc[TransactionState]`
+<.> xref:#currentTransactionState[currentTransactionState]
 +
 --
 Returns the state of the current thread's transaction., or returns _TransactionState#NONE_ , if there is no active transaction associated with the current thread.
 --
-<.> `[teal]#*flushTransaction*#()` : `void`
+<.> xref:#flushTransaction[flushTransaction]
 +
 --
 Flushes all changes to the object store.
-
-Occasionally useful to ensure that newly persisted domain objects are flushed to the database prior to a subsequent repository query.
-
-If there is no active transaction associated with the current thread, then does nothing.
 --
-<.> `[teal]#*nextTransaction*#()` : `void`
+<.> xref:#nextTransaction[nextTransaction]
 +
 --
 Commits the current thread's transaction (if there is one), and in any case begins a new one.
 --
 
+== Members
+
+[#currentTransactionId]
+=== currentTransactionId
+
+Optionally returns the unique identifier of the current thread's transaction, based on whether there is an active transaction associated with the current thread.
+
+[#currentTransactionState]
+=== currentTransactionState
+
+Returns the state of the current thread's transaction., or returns _TransactionState#NONE_ , if there is no active transaction associated with the current thread.
+
+[#flushTransaction]
+=== flushTransaction
+
+Flushes all changes to the object store.
+
+Occasionally useful to ensure that newly persisted domain objects are flushed to the database prior to a subsequent repository query.
+
+If there is no active transaction associated with the current thread, then does nothing.
+
+[#nextTransaction]
+=== nextTransaction
+
+Commits the current thread's transaction (if there is one), and in any case begins a new one.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionState.adoc b/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionState.adoc
index bb241a1..7d2b6c1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionState.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionState.adoc
@@ -20,53 +20,96 @@ enum TransactionState {
 }
 ----
 
-<.> `[teal]#*_NONE_*#`
+<.> xref:#NONE[NONE]
 +
 --
 No transaction exists.
 --
-<.> `[teal]#*_IN_PROGRESS_*#`
+<.> xref:#IN_PROGRESS[IN_PROGRESS]
 +
 --
 Started, still in progress.May flush, commit or abort.
-
 --
-<.> `[teal]#*_MUST_ABORT_*#`
+<.> xref:#MUST_ABORT[MUST_ABORT]
 +
 --
 Started, but has hit an exception.May not flush or commit (will throw an _IllegalStateException_ ), can only abort.Similar to `setRollbackOnly` in EJBs.
-
 --
-<.> `[teal]#*_COMMITTED_*#`
+<.> xref:#COMMITTED[COMMITTED]
 +
 --
 Completed, having successfully committed.May not flush or abort or commit (will throw _IllegalStateException_ ).
-
 --
-<.> `[teal]#*_ABORTED_*#`
+<.> xref:#ABORTED[ABORTED]
 +
 --
 Completed, having aborted.May not flush, commit or abort (will throw _IllegalStateException_ ).
-
 --
-<.> `[teal]#*canFlush*#()` : `boolean`
+<.> xref:#canFlush[canFlush]
 +
 --
 Whether it is valid to flush the transaction.
 --
-<.> `[teal]#*canCommit*#()` : `boolean`
+<.> xref:#canCommit[canCommit]
 +
 --
 Whether it is valid to commit the transaction.
 --
-<.> `[teal]#*canAbort*#()` : `boolean`
+<.> xref:#canAbort[canAbort]
 +
 --
 Whether it is valid to mark as aborted this transaction}.
 --
-<.> `[teal]#*isComplete*#()` : `boolean`
+<.> xref:#isComplete[isComplete]
 +
 --
 Whether the transaction is complete (and so a new one can be started).
 --
 
+== Members
+
+[#NONE]
+=== NONE
+
+No transaction exists.
+
+[#IN_PROGRESS]
+=== IN_PROGRESS
+
+Started, still in progress.May flush, commit or abort.
+
+[#MUST_ABORT]
+=== MUST_ABORT
+
+Started, but has hit an exception.May not flush or commit (will throw an _IllegalStateException_ ), can only abort.Similar to `setRollbackOnly` in EJBs.
+
+[#COMMITTED]
+=== COMMITTED
+
+Completed, having successfully committed.May not flush or abort or commit (will throw _IllegalStateException_ ).
+
+[#ABORTED]
+=== ABORTED
+
+Completed, having aborted.May not flush, commit or abort (will throw _IllegalStateException_ ).
+
+[#canFlush]
+=== canFlush
+
+Whether it is valid to flush the transaction.
+
+[#canCommit]
+=== canCommit
+
+Whether it is valid to commit the transaction.
+
+[#canAbort]
+=== canAbort
+
+Whether it is valid to mark as aborted this transaction}.
+
+[#isComplete]
+=== isComplete
+
+Whether the transaction is complete (and so a new one can be started).
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionalProcessor.adoc b/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionalProcessor.adoc
index 08a2a2e..dad0574 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionalProcessor.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/xactn/TransactionalProcessor.adoc
@@ -15,40 +15,72 @@ interface TransactionalProcessor {
 }
 ----
 
-<.> `[teal]#*callTransactional*#<T>(TransactionDefinition def, Callable<T> callable)` : `xref:system:generated:index/commons/functional/Result.adoc[Result]<T>`
+<.> xref:#callTransactional[callTransactional]
 +
 --
 Runs given _callable_ with a transactional boundary, where the detailed transactional behavior is governed by given _TransactionDefinition_ _def_ .
 --
-<.> `[teal]#*runTransactional*#(TransactionDefinition def, ThrowingRunnable runnable)` : `xref:system:generated:index/commons/functional/Result.adoc[Result]<Void>`
+<.> xref:#runTransactional[runTransactional]
 +
 --
 Runs given _runnable_ with a transactional boundary, where the detailed transactional behavior is governed by given _TransactionDefinition_ _def_ .
 --
-<.> `[teal]#*callTransactional*#<T>(Propagation propagation, Callable<T> callable)` : `xref:system:generated:index/commons/functional/Result.adoc[Result]<T>`
+<.> xref:#callTransactional[callTransactional]
 +
 --
 Runs given _callable_ with a transactional boundary, where the detailed transactional behavior is governed by given _Propagation_ _propagation_ .
-
-More fine grained control is given via _#callTransactional(TransactionDefinition, Callable)_
 --
-<.> `[teal]#*runTransactional*#(Propagation propagation, ThrowingRunnable runnable)` : `xref:system:generated:index/commons/functional/Result.adoc[Result]<Void>`
+<.> xref:#runTransactional[runTransactional]
 +
 --
 Runs given _runnable_ with a transactional boundary, where the detailed transactional behavior is governed by given _Propagation_ _propagation_ .
-
-More fine grained control is given via _#runTransactional(TransactionDefinition, ThrowingRunnable)_
 --
-<.> `[teal]#*callWithinCurrentTransactionElseCreateNew*#<T>(Callable<T> callable)` : `xref:system:generated:index/commons/functional/Result.adoc[Result]<T>`
+<.> xref:#callWithinCurrentTransactionElseCreateNew[callWithinCurrentTransactionElseCreateNew]
 +
 --
 Runs given _callable_ within an existing transactional boundary, or in the absence of such a boundary, creates a new one.
-
-In other words, support a current transaction, create a new one if none exists.
 --
-<.> `[teal]#*runWithinCurrentTransactionElseCreateNew*#(ThrowingRunnable runnable)` : `xref:system:generated:index/commons/functional/Result.adoc[Result]<Void>`
+<.> xref:#runWithinCurrentTransactionElseCreateNew[runWithinCurrentTransactionElseCreateNew]
 +
 --
 Runs given _runnable_ within an existing transactional boundary, or in the absence of such a boundary creates a new one.
 --
 
+== Members
+
+[#callTransactional]
+=== callTransactional
+
+Runs given _callable_ with a transactional boundary, where the detailed transactional behavior is governed by given _TransactionDefinition_ _def_ .
+
+[#runTransactional]
+=== runTransactional
+
+Runs given _runnable_ with a transactional boundary, where the detailed transactional behavior is governed by given _TransactionDefinition_ _def_ .
+
+[#callTransactional]
+=== callTransactional
+
+Runs given _callable_ with a transactional boundary, where the detailed transactional behavior is governed by given _Propagation_ _propagation_ .
+
+More fine grained control is given via _#callTransactional(TransactionDefinition, Callable)_
+
+[#runTransactional]
+=== runTransactional
+
+Runs given _runnable_ with a transactional boundary, where the detailed transactional behavior is governed by given _Propagation_ _propagation_ .
+
+More fine grained control is given via _#runTransactional(TransactionDefinition, ThrowingRunnable)_
+
+[#callWithinCurrentTransactionElseCreateNew]
+=== callWithinCurrentTransactionElseCreateNew
+
+Runs given _callable_ within an existing transactional boundary, or in the absence of such a boundary, creates a new one.
+
+In other words, support a current transaction, create a new one if none exists.
+
+[#runWithinCurrentTransactionElseCreateNew]
+=== runWithinCurrentTransactionElseCreateNew
+
+Runs given _runnable_ within an existing transactional boundary, or in the absence of such a boundary creates a new one.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/xml/XmlService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/xml/XmlService.adoc
index 5c4a919..1a90227 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/xml/XmlService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/xml/XmlService.adoc
@@ -15,24 +15,46 @@ interface XmlService {
 }
 ----
 
-<.> `[teal]#*asDocument*#(String xmlStr)` : `Document`
+<.> xref:#asDocument[asDocument]
 +
 --
 Converts xml string into an _Document W3C Document_ .
 --
-<.> `[teal]#*asString*#(Document doc)` : `String`
+<.> xref:#asString[asString]
 +
 --
 Serializes a _Document W3C Document_ back into a string.
 --
-<.> `[teal]#*getChildElement*#(Element el, String tagname)` : `Element`
+<.> xref:#getChildElement[getChildElement]
 +
 --
 Convenience method to walk XML document.
 --
-<.> `[teal]#*getChildTextValue*#(Element el)` : `String`
+<.> xref:#getChildTextValue[getChildTextValue]
 +
 --
 Convenience method to obtain value of child text node.
 --
 
+== Members
+
+[#asDocument]
+=== asDocument
+
+Converts xml string into an _Document W3C Document_ .
+
+[#asString]
+=== asString
+
+Serializes a _Document W3C Document_ back into a string.
+
+[#getChildElement]
+=== getChildElement
+
+Convenience method to walk XML document.
+
+[#getChildTextValue]
+=== getChildTextValue
+
+Convenience method to obtain value of child text node.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService.adoc
index c90dce6..24c0435 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService.adoc
@@ -16,19 +16,36 @@ interface XmlSnapshotService {
 }
 ----
 
-<.> `[teal]#*snapshotFor*#(Object domainObject)` : `Snapshot`
+<.> xref:#snapshotFor[snapshotFor]
 +
 --
 Exports the state of a domain object into a Snapshot (which can then be converted into XML, for example).
 --
-<.> `[teal]#*builderFor*#(Object domainObject)` : `Builder`
+<.> xref:#builderFor[builderFor]
 +
 --
 Creates a Snapshot.Builder that allows the contents of the snapshot to include other related state.
 --
-<.> `[teal]#*getChildElementValue*#<T>(Element el, String tagname, Class<T> expectedCls)` : `T`
+<.> xref:#getChildElementValue[getChildElementValue]
 +
 --
 Convenience method to extract value of an XML element, based on its type.
 --
 
+== Members
+
+[#snapshotFor]
+=== snapshotFor
+
+Exports the state of a domain object into a Snapshot (which can then be converted into XML, for example).
+
+[#builderFor]
+=== builderFor
+
+Creates a Snapshot.Builder that allows the contents of the snapshot to include other related state.
+
+[#getChildElementValue]
+=== getChildElementValue
+
+Convenience method to extract value of an XML element, based on its type.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService~Snapshot.adoc b/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService~Snapshot.adoc
index 348fdda..a8d4248 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService~Snapshot.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService~Snapshot.adoc
@@ -11,14 +11,26 @@ interface Snapshot {
 }
 ----
 
-<.> `[teal]#*getXmlDocument*#()` : `Document`
+<.> xref:#getXmlDocument[getXmlDocument]
 +
 --
 Converts the snapshotted state into an XML document.
 --
-<.> `[teal]#*getXsdDocument*#()` : `Document`
+<.> xref:#getXsdDocument[getXsdDocument]
 +
 --
 Creates a corresponding XSD that describes the structure of the exported XML.
 --
 
+== Members
+
+[#getXmlDocument]
+=== getXmlDocument
+
+Converts the snapshotted state into an XML document.
+
+[#getXsdDocument]
+=== getXsdDocument
+
+Creates a corresponding XSD that describes the structure of the exported XML.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService~Snapshot~Builder.adoc b/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService~Snapshot~Builder.adoc
index d8d20e7..48f6424 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService~Snapshot~Builder.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/xmlsnapshot/XmlSnapshotService~Snapshot~Builder.adoc
@@ -12,19 +12,36 @@ interface Builder {
 }
 ----
 
-<.> `[teal]#*includePath*#(String path)` : `void`
+<.> xref:#includePath[includePath]
 +
 --
 Enrich the snapshot to include the state of these referenced objects
 --
-<.> `[teal]#*includePathAndAnnotation*#(String path, String annotation)` : `void`
+<.> xref:#includePathAndAnnotation[includePathAndAnnotation]
 +
 --
 Ditto, but add an XML annotation attribute to the included element(s).
 --
-<.> `[teal]#*build*#()` : `Snapshot`
+<.> xref:#build[build]
 +
 --
 Builds the Snapshot.
 --
 
+== Members
+
+[#includePath]
+=== includePath
+
+Enrich the snapshot to include the state of these referenced objects
+
+[#includePathAndAnnotation]
+=== includePathAndAnnotation
+
+Ditto, but add an XML annotation attribute to the included element(s).
+
+[#build]
+=== build
+
+Builds the Snapshot.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/snapshot/SnapshottableWithInclusions.adoc b/antora/components/system/modules/generated/pages/index/applib/snapshot/SnapshottableWithInclusions.adoc
index 57a467d..ade746e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/snapshot/SnapshottableWithInclusions.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/snapshot/SnapshottableWithInclusions.adoc
@@ -12,9 +12,16 @@ interface SnapshottableWithInclusions {
 }
 ----
 
-<.> `[teal]#*snapshotInclusions*#()` : `List<String>`
+<.> xref:#snapshotInclusions[snapshotInclusions]
 +
 --
 Paths to include in the snapshot.
 --
 
+== Members
+
+[#snapshotInclusions]
+=== snapshotInclusions
+
+Paths to include in the snapshot.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/spec/AbstractSpecification.adoc b/antora/components/system/modules/generated/pages/index/applib/spec/AbstractSpecification.adoc
index 63ea956..0f07208 100644
--- a/antora/components/system/modules/generated/pages/index/applib/spec/AbstractSpecification.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/spec/AbstractSpecification.adoc
@@ -19,9 +19,16 @@ class AbstractSpecification {
 }
 ----
 
-<.> `[teal]#*satisfies*#(Object obj)` : `String`
+<.> xref:#satisfies[satisfies]
 +
 --
 Checks not null and is correct type, and delegates to _#satisfiesSafely(Object)_ .
 --
 
+== Members
+
+[#satisfies]
+=== satisfies
+
+Checks not null and is correct type, and delegates to _#satisfiesSafely(Object)_ .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/spec/AbstractSpecification2.adoc b/antora/components/system/modules/generated/pages/index/applib/spec/AbstractSpecification2.adoc
index fd099b6..a2889ae 100644
--- a/antora/components/system/modules/generated/pages/index/applib/spec/AbstractSpecification2.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/spec/AbstractSpecification2.adoc
@@ -20,9 +20,16 @@ class AbstractSpecification2 {
 }
 ----
 
-<.> `[teal]#*satisfiesTranslatable*#(Object obj)` : `xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString]`
+<.> xref:#satisfiesTranslatable[satisfiesTranslatable]
 +
 --
 Checks not null and is correct type, and delegates to _#satisfiesTranslatableSafely(Object)_ .
 --
 
+== Members
+
+[#satisfiesTranslatable]
+=== satisfiesTranslatable
+
+Checks not null and is correct type, and delegates to _#satisfiesTranslatableSafely(Object)_ .
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/spec/Specification.adoc b/antora/components/system/modules/generated/pages/index/applib/spec/Specification.adoc
index 4e5eb0d..7625447 100644
--- a/antora/components/system/modules/generated/pages/index/applib/spec/Specification.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/spec/Specification.adoc
@@ -12,9 +12,16 @@ interface Specification {
 }
 ----
 
-<.> `[teal]#*satisfies*#(Object obj)` : `String`
+<.> xref:#satisfies[satisfies]
 +
 --
 If `null` then satisfied, otherwise is reason why the specification is not satisfied.
 --
 
+== Members
+
+[#satisfies]
+=== satisfies
+
+If `null` then satisfied, otherwise is reason why the specification is not satisfied.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/spec/Specification2.adoc b/antora/components/system/modules/generated/pages/index/applib/spec/Specification2.adoc
index 453cc53..52f5295 100644
--- a/antora/components/system/modules/generated/pages/index/applib/spec/Specification2.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/spec/Specification2.adoc
@@ -14,9 +14,16 @@ interface Specification2 {
 }
 ----
 
-<.> `[teal]#*satisfiesTranslatable*#(Object obj)` : `xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString]`
+<.> xref:#satisfiesTranslatable[satisfiesTranslatable]
 +
 --
 If `null` then satisfied, otherwise is the reason (as a xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] translatable string) as to why the specification is not satisfied.
 --
 
+== Members
+
+[#satisfiesTranslatable]
+=== satisfiesTranslatable
+
+If `null` then satisfied, otherwise is the reason (as a xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] translatable string) as to why the specification is not satisfied.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/util/ReasonBuffer.adoc b/antora/components/system/modules/generated/pages/index/applib/util/ReasonBuffer.adoc
index 48a1b29..150eec7 100644
--- a/antora/components/system/modules/generated/pages/index/applib/util/ReasonBuffer.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/util/ReasonBuffer.adoc
@@ -2,7 +2,7 @@
 
 Helper class to create properly concatenated reason string for use in method that return _String_ s with reasons.
 
-If no reasons are specified _#getReason()_ will return `null, otherwise it will return a _String_ with all the valid reasons concatenated with a semi-colon separating each one.
+If no reasons are specified _#getReason()_ will return `null` , otherwise it will return a _String_ with all the valid reasons concatenated with a semi-colon separating each one.
 
 An alternative is to use the xref:system:generated:index/applib/util/Reasons.adoc[Reasons] class.
 
@@ -19,19 +19,36 @@ class ReasonBuffer {
 }
 ----
 
-<.> `[teal]#*append*#(String reason)` : `void`
+<.> xref:#append[append]
 +
 --
 Append a reason to the list of existing reasons.
 --
-<.> `[teal]#*appendOnCondition*#(boolean condition, String reason)` : `void`
+<.> xref:#appendOnCondition[appendOnCondition]
 +
 --
 Append a reason to the list of existing reasons if the condition flag is true.
 --
-<.> `[teal]#*getReason*#()` : `String`
+<.> xref:#getReason[getReason]
 +
 --
-Return the combined set of reasons, or `nullif there are none.
+Return the combined set of reasons, or `null` if there are none.
 --
 
+== Members
+
+[#append]
+=== append
+
+Append a reason to the list of existing reasons.
+
+[#appendOnCondition]
+=== appendOnCondition
+
+Append a reason to the list of existing reasons if the condition flag is true.
+
+[#getReason]
+=== getReason
+
+Return the combined set of reasons, or `null` if there are none.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/util/ReasonBuffer2.adoc b/antora/components/system/modules/generated/pages/index/applib/util/ReasonBuffer2.adoc
index f2a235c..9258fe1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/util/ReasonBuffer2.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/util/ReasonBuffer2.adoc
@@ -24,34 +24,66 @@ class ReasonBuffer2 {
 }
 ----
 
-<.> `[teal]#*append*#(String reason)` : `xref:system:generated:index/applib/util/ReasonBuffer2.adoc[ReasonBuffer2]`
+<.> xref:#append[append]
 +
 --
 Append a reason to the list of existing reasons.
 --
-<.> `[teal]#*append*#(boolean condition, String reason)` : `xref:system:generated:index/applib/util/ReasonBuffer2.adoc[ReasonBuffer2]`
+<.> xref:#append[append]
 +
 --
 Append a reason to the list of existing reasons if the condition flag is true.
 --
-<.> `[teal]#*append*#(Condition condition, String reason)` : `xref:system:generated:index/applib/util/ReasonBuffer2.adoc[ReasonBuffer2]`
+<.> xref:#append[append]
 +
 --
 Append a reason to the list of existing reasons if the condition flag is true.
 --
-<.> `[teal]#*getReason*#()` : `String`
+<.> xref:#getReason[getReason]
 +
 --
-Return the combined set of reasons, or `nullif there are none.
+Return the combined set of reasons, or `null` if there are none.
 --
-<.> `[teal]#*appendReason*#(StringBuilder buf)` : `String`
+<.> xref:#appendReason[appendReason]
 +
 --
 Appends reasons.
 --
-<.> `[teal]#*plus*#(xref:system:generated:index/applib/util/ReasonBuffer2.adoc[ReasonBuffer2] other)` : `xref:system:generated:index/applib/util/ReasonBuffer2.adoc[ReasonBuffer2]`
+<.> xref:#plus[plus]
 +
 --
 Combines sets of reasons from another.
 --
 
+== Members
+
+[#append]
+=== append
+
+Append a reason to the list of existing reasons.
+
+[#append]
+=== append
+
+Append a reason to the list of existing reasons if the condition flag is true.
+
+[#append]
+=== append
+
+Append a reason to the list of existing reasons if the condition flag is true.
+
+[#getReason]
+=== getReason
+
+Return the combined set of reasons, or `null` if there are none.
+
+[#appendReason]
+=== appendReason
+
+Appends reasons.
+
+[#plus]
+=== plus
+
+Combines sets of reasons from another.
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/util/TitleBuffer.adoc b/antora/components/system/modules/generated/pages/index/applib/util/TitleBuffer.adoc
index cf58ad5..1bb1632 100644
--- a/antora/components/system/modules/generated/pages/index/applib/util/TitleBuffer.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/util/TitleBuffer.adoc
@@ -37,130 +37,240 @@ class TitleBuffer {
 }
 ----
 
-<.> `[teal]#*TitleBuffer*#()`
+<.> xref:#TitleBuffer[TitleBuffer]
 +
 --
 Creates a new, empty, xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] .
 --
-<.> `[teal]#*TitleBuffer*#(Object object)`
+<.> xref:#TitleBuffer[TitleBuffer]
 +
 --
 Creates a new xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] , containing the title of the specified object.
-
-Note: this method only obtains the title using either `title()` or `toString()` ; it doesn't honour other mechanisms for specifying the title, such as _org.apache.isis.applib.annotation.Title_ annotation. If that functionality is required, first call _TitleService#titleOf(Object)_ on the object and pass in the resultant string.
 --
-<.> `[teal]#*TitleBuffer*#(Object object, String defaultTitle)`
+<.> xref:#TitleBuffer[TitleBuffer]
 +
 --
 Creates a new title object, containing the title of the specified object.
-
-Note: this method only obtains the title using either `title()` or `toString()` ; it doesn't honour other mechanisms for specifying the title, such as _org.apache.isis.applib.annotation.Title_ annotation. If that functionality is required, first call _TitleService#titleOf(Object)_ on the object and pass in the resultant string.
 --
-<.> `[teal]#*TitleBuffer*#(String text)`
+<.> xref:#TitleBuffer[TitleBuffer]
 +
 --
 Creates a new title object, containing the specified text.
 --
-<.> `[teal]#*_isEmpty_*#(Object object)` : `boolean`
+<.> xref:#isEmpty[isEmpty]
 +
 --
 Determines if the specified object's title is empty (or null).
-
-Note: this method only obtains the title using either `title()` or `toString()` ; it doesn't honour other mechanisms for specifying the title, such as _org.apache.isis.applib.annotation.Title_ annotation. If that functionality is required, first call _TitleService#titleOf(Object)_ on the object and pass in the resultant string.
 --
-<.> `[teal]#*_isEmpty_*#(String text)` : `boolean`
+<.> xref:#isEmpty[isEmpty]
 +
 --
 Determines if the specified text is empty. Will return true if either: the specified reference is null; or if the reference is an empty string.
 --
-<.> `[teal]#*append*#(int number)` : `xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer]`
-<.> `[teal]#*append*#(Object object)` : `xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer]`
+<.> xref:#append[append]
+<.> xref:#append[append]
 +
 --
 Append the title of the specified object to this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] .
-
-Note: this method only obtains the title using either `title()` or `toString()` ; it doesn't honour other mechanisms for specifying the title, such as _org.apache.isis.applib.annotation.Title_ annotation. If that functionality is required, first call _TitleService#titleOf(Object)_ on the object and pass in the resultant string.
 --
-<.> `[teal]#*append*#(Object object, String defaultValue)` : `xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer]`
+<.> xref:#append[append]
 +
 --
 Appends the title of the specified object, or the specified text if the objects title is null or empty. Prepends a space if there is already some text in this title object.
-
-Note: this method only obtains the title using either `title()` or `toString()` ; it doesn't honour other mechanisms for specifying the title, such as _org.apache.isis.applib.annotation.Title_ annotation. If that functionality is required, first call _TitleService#titleOf(Object)_ on the object and pass in the resultant string.
 --
-<.> `[teal]#*append*#(String text)` : `xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer]`
+<.> xref:#append[append]
 +
... 7412 lines suppressed ...


[isis] 07/12: ISIS-2526: refactoring is all

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 9334707e27950d527131692d04b4a8af12cfaef3
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Feb 6 15:17:53 2021 +0000

    ISIS-2526: refactoring is all
---
 .../cli/adocfix/OrphanedIncludeStatementFixer.java |   2 +-
 .../isis/tooling/cli/projdoc/ProjectDocWriter.java |  12 ++-
 .../apache/isis/tooling/j2adoc/J2AdocContext.java  |   6 +-
 .../j2adoc/format/UnitFormatterAbstract.java       | 118 ++++++++++-----------
 .../isis/tooling/javamodel/ast/Javadocs.java       |  56 +++++-----
 5 files changed, 99 insertions(+), 95 deletions(-)

diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
index 8d36b7e..0e77eb4 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
@@ -92,7 +92,7 @@ public final class OrphanedIncludeStatementFixer {
                     val includeLineShouldBe = expected.toAdocAsString();
 
                     if(!includeLineShouldBe.equals(include.getMatchingLine())) {
-                        System.out.printf("mismatch\n %s\n %s\n", includeLineShouldBe, include.getMatchingLine());
+                        log.warn("mismatch\n {}\n {}\n", includeLineShouldBe, include.getMatchingLine());
                         correctedIncludeStatement.setValue(expected);
                         fixedCounter.inc();
                     }
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
index 33a028f..8305783 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocWriter.java
@@ -33,7 +33,9 @@ import org.apache.isis.tooling.model4adoc.AsciiDocWriter;
 import lombok.NonNull;
 import lombok.SneakyThrows;
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
+@Log4j2
 final class ProjectDocWriter {
 
     @SneakyThrows
@@ -64,7 +66,7 @@ final class ProjectDocWriter {
 
                 // write system overview
                 val overviewFile = new File(pagesFolder, overview.getSystemOverviewFilename());
-                System.out.printf("writing system overview: %s%n", overviewFile.getName());
+                log.info("writing system overview: {}", overviewFile.getName());
                 docWriter.accept(systemSummaryAdoc, overviewFile);
                 ++writeCount;
             }
@@ -78,7 +80,7 @@ final class ProjectDocWriter {
                            !fileName.equals(overview.getSystemOverviewFilename());
                 })
                 .stream()
-                .peek(adocFile->System.out.printf("deleting file: %s%n", adocFile.getName()))
+                .peek(adocFile->log.debug("deleting file: {}", adocFile.getName()))
                 .peek(__->deleteCount.inc())
                 .forEach(_Files::deleteFile);
 
@@ -90,7 +92,7 @@ final class ProjectDocWriter {
 
                     val adocIndexFile = adocDestinationFileForUnit(unit, global, overview, index);
 
-                    System.out.printf("writing file: %s%n", adocIndexFile.getName());
+                    log.info("writing file: {}", adocIndexFile.getName());
 
                     docWriter.accept(
                             unit.toAsciiDoc(j2aContext),
@@ -100,8 +102,8 @@ final class ProjectDocWriter {
                 }
 
                 // summary
-                System.out.printf(
-                        "ProjectDocWriter: all done. (deleted: %d, written: %d)%n",
+                log.info(
+                        "ProjectDocWriter: all done. (deleted: {}, written: {})",
                         deleteCount.getValue(), writeCount);
             }
 
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
index a6f1829..6df2109 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
@@ -272,10 +272,10 @@ public class J2AdocContext {
 
     private static void logIfEmptyOrAmbiguous(Can<J2AdocUnit> units, String doingWhat) {
         if(units.isEmpty()) {
-            System.out.printf("%s yielded no match %n", doingWhat);
+            log.warn("{} yielded no match %n", doingWhat);
         } else if(units.isCardinalityMultiple()) {
-            System.err.printf("%s was ambiguous with results: %n", doingWhat);
-            units.forEach(unit->System.err.printf("\t%s%n", unit.toString()));
+            log.warn("{} was ambiguous with results: ", doingWhat);
+            units.forEach(unit->log.warn("\t{}", unit.toString()));
         }
     }
 
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
index 7e6fba0..a10716c3 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
@@ -19,11 +19,18 @@
 package org.apache.isis.tooling.j2adoc.format;
 
 import java.util.Optional;
+import java.util.function.Function;
+
+import com.github.javaparser.ast.body.BodyDeclaration;
+import com.github.javaparser.ast.body.EnumConstantDeclaration;
+import com.github.javaparser.ast.body.FieldDeclaration;
+import com.github.javaparser.ast.nodeTypes.NodeWithJavadoc;
 
 import org.asciidoctor.ast.Document;
 import org.asciidoctor.ast.List;
 import org.asciidoctor.ast.StructuralNode;
 
+import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.base._Strings;
 import org.apache.isis.tooling.j2adoc.J2AdocContext;
 import org.apache.isis.tooling.j2adoc.J2AdocUnit;
@@ -81,13 +88,23 @@ implements UnitFormatter {
 
     protected Optional<String> title(final J2AdocUnit unit) {
         return Optional.of(
-                String.format("%s : _%s_",
-                        unit.getFriendlyName(),
-                        unit.getDeclarationKeywordFriendlyName().toLowerCase()));
+                String.format(formatFor(unit),
+                        unit.getFriendlyName()));
+    }
+
+    private static String formatFor(J2AdocUnit unit) {
+        switch (unit.getTypeDeclaration().getKind()) {
+            case ANNOTATION: return "@%s";
+            case CLASS: return "%s";
+            case ENUM: return "%s _(enum)_";
+            case INTERFACE: return "%s _(interface)_";
+            default:
+                throw new IllegalArgumentException(String.format(
+                    "unknown kind: %s", unit.getTypeDeclaration().getKind()));
+        }
     }
 
     protected void intro(final J2AdocUnit unit, final StructuralNode parent) {
-
         unit.getJavadoc()
         .filter(javadoc->!Javadocs.hasHidden(javadoc))
         .map(javadoc->getConverter().javadoc(javadoc, unit))
@@ -107,74 +124,49 @@ implements UnitFormatter {
         javaDocBlock.getBlocks().addAll(javadoc.getBlocks());
     }
 
-    protected void memberDescriptions(final J2AdocUnit unit, final StructuralNode parent) {
+    protected void memberDescriptions(final J2AdocUnit unit, final StructuralNode doc) {
 
-        val ul = getMemberDescriptionContainer(parent);
+        val ul = getMemberDescriptionContainer(doc);
 
-        unit.getTypeDeclaration().getEnumConstantDeclarations().stream()
-        .filter(Javadocs::presentAndNotHidden)
-        .forEach(ecd->{
-            ecd.getJavadoc()
-            .ifPresent(javadoc->{
-
-                appendMemberDescription(ul,
-                                getConverter().enumConstantDeclaration(ecd),
-                                getConverter().javadoc(javadoc, unit));
-            });
-        });
-
-        unit.getTypeDeclaration().getPublicFieldDeclarations().stream()
-        .filter(Javadocs::presentAndNotHidden)
-        .forEach(fd->{
-
-            fd.getJavadoc()
-            .ifPresent(javadoc->{
-
-                appendMemberDescription(ul,
-                        getConverter().fieldDeclaration(fd, unit),
-                        getConverter().javadoc(javadoc, unit));
-            });
-
-        });
+        appendMemberDescriptions(ul, unit,
+                unit.getTypeDeclaration().getEnumConstantDeclarations(),
+                decl -> getConverter().enumConstantDeclaration(decl));
 
-        unit.getTypeDeclaration().getAnnotationMemberDeclarations().stream()
-        .filter(Javadocs::presentAndNotHidden)
-        .forEach(ecd->{
-            ecd.getJavadoc()
-            .ifPresent(javadoc->{
+        appendMemberDescriptions(ul, unit,
+                unit.getTypeDeclaration().getPublicFieldDeclarations(),
+                decl -> getConverter().fieldDeclaration(decl, unit));
 
-                appendMemberDescription(ul,
-                                getConverter().annotationMemberDeclaration(ecd, unit),
-                                getConverter().javadoc(javadoc, unit));
-            });
-        });
+        appendMemberDescriptions(ul, unit,
+                unit.getTypeDeclaration().getAnnotationMemberDeclarations(),
+                decl -> getConverter().annotationMemberDeclaration(decl, unit));
 
-        unit.getTypeDeclaration().getPublicConstructorDeclarations().stream()
-        .filter(Javadocs::presentAndNotHidden)
-        .forEach(cd->{
+        appendMemberDescriptions(ul, unit,
+                unit.getTypeDeclaration().getPublicConstructorDeclarations(),
+                decl -> getConverter().constructorDeclaration(decl, unit));
 
-            cd.getJavadoc()
-            .ifPresent(javadoc->{
+        appendMemberDescriptions(ul, unit,
+                unit.getTypeDeclaration().getPublicMethodDeclarations(),
+                decl -> getConverter().methodDeclaration(decl, unit));
 
-                appendMemberDescription(ul,
-                        getConverter().constructorDeclaration(cd, unit),
-                        getConverter().javadoc(javadoc, unit));
-            });
+        val titleBlock = block(doc);
+        titleBlock.setSource("== Members");
+    }
 
-        });
+    private <T extends NodeWithJavadoc<?>> void appendMemberDescriptions(
+            final StructuralNode container,
+            final J2AdocUnit unit,
+            final Can<T> declarations,
+            final Function<T, String> memberDescriber) {
 
-        unit.getTypeDeclaration().getPublicMethodDeclarations().stream()
+        declarations.stream()
         .filter(Javadocs::presentAndNotHidden)
-        .forEach(md->{
-
-            md.getJavadoc()
+        .forEach(nwj->{
+            nwj.getJavadoc()
             .ifPresent(javadoc->{
-
-                appendMemberDescription(ul,
-                        getConverter().methodDeclaration(md, unit),
-                        getConverter().javadoc(javadoc, unit));
+                appendMemberDescription(container,
+                                memberDescriber.apply(nwj),
+                                getConverter().javadoc(javadoc, unit));
             });
-
         });
     }
 
@@ -190,7 +182,6 @@ implements UnitFormatter {
         val doc = AsciiDocFactory.doc();
 
         // -- title
-
         if(!j2aContext.isSkipTitleHeader()) {
             title(unit)
             .ifPresent(doc::setTitle);
@@ -201,10 +192,15 @@ implements UnitFormatter {
         _Strings.nonEmpty(getContext().getLicenseHeader())
         .ifPresent(notice->AsciiDocFactory.attrNotice(doc, notice));
 
+
         // -- intro
 
         intro(unit, doc);
 
+        // == API
+        val titleBlock = block(doc);
+        titleBlock.setSource("== API");
+
         // -- java source
 
         javaSource(unit)
diff --git a/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/Javadocs.java b/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/Javadocs.java
index ef839a6..c5ae360 100644
--- a/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/Javadocs.java
+++ b/tooling/javamodel/src/main/java/org/apache/isis/tooling/javamodel/ast/Javadocs.java
@@ -22,10 +22,12 @@ import java.util.Optional;
 import java.util.stream.Stream;
 
 import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
+import com.github.javaparser.ast.body.BodyDeclaration;
 import com.github.javaparser.ast.body.ConstructorDeclaration;
 import com.github.javaparser.ast.body.EnumConstantDeclaration;
 import com.github.javaparser.ast.body.FieldDeclaration;
 import com.github.javaparser.ast.body.MethodDeclaration;
+import com.github.javaparser.ast.nodeTypes.NodeWithJavadoc;
 import com.github.javaparser.javadoc.Javadoc;
 import com.github.javaparser.javadoc.JavadocBlockTag;
 import com.github.javaparser.javadoc.description.JavadocDescription;
@@ -37,88 +39,92 @@ public final class Javadocs {
     public static Stream<JavadocBlockTag> streamTagsByName(
             final @NonNull Javadoc javadoc,
             final @NonNull String tagName) {
-        
+
         return javadoc.getBlockTags().stream()
         .filter(tag->tag.getTagName().equals(tagName));
     }
-    
+
     public static Stream<JavadocDescription> streamTagContent(
             final @NonNull Javadoc javadoc,
             final @NonNull String tagName) {
-        
+
         return streamTagsByName(javadoc, tagName)
         .map(tag->tag.getContent());
     }
-    
+
     // -- PREDICATES FOR STREAMS (PRESENT AND NOT HIDDEN)
-    
+
+    public static boolean presentAndNotHidden(final @NonNull NodeWithJavadoc<?> nwj) {
+        return presentAndNotHidden(nwj.getJavadoc());
+    }
+
     public static boolean presentAndNotHidden(final @NonNull AnnotationMemberDeclaration amd) {
         return presentAndNotHidden(amd.getJavadoc());
     }
-    
+
     public static boolean presentAndNotHidden(final @NonNull FieldDeclaration fd) {
         return presentAndNotHidden(fd.getJavadoc());
     }
-    
+
     public static boolean presentAndNotHidden(final @NonNull EnumConstantDeclaration ecd) {
         return presentAndNotHidden(ecd.getJavadoc());
     }
-    
+
     public static boolean presentAndNotHidden(final @NonNull ConstructorDeclaration cd) {
         return presentAndNotHidden(cd.getJavadoc());
     }
-    
+
     public static boolean presentAndNotHidden(final @NonNull MethodDeclaration md) {
         return presentAndNotHidden(md.getJavadoc());
     }
-    
+
     // -- PREDICATES FOR STREAMS (NOT EXPLICITLY HIDDEN)
-    
+
     public static boolean notExplicitlyHidden(final @NonNull AnnotationMemberDeclaration amd) {
         return !hasHidden(amd.getJavadoc());
     }
-    
+
     public static boolean notExplicitlyHidden(final @NonNull FieldDeclaration fd) {
         return !hasHidden(fd.getJavadoc());
     }
-    
+
     public static boolean notExplicitlyHidden(final @NonNull EnumConstantDeclaration ecd) {
         return !hasHidden(ecd.getJavadoc());
     }
-    
+
     public static boolean notExplicitlyHidden(final @NonNull ConstructorDeclaration cd) {
         return !hasHidden(cd.getJavadoc());
     }
-    
+
     public static boolean notExplicitlyHidden(final @NonNull MethodDeclaration md) {
         return !hasHidden(md.getJavadoc());
     }
-    
-    // -- 
-    
+
+    // --
+
     public static boolean hasDeprecated(final @NonNull Javadoc javadoc) {
-        return streamTagsByName(javadoc, "deprecated") 
+        return streamTagsByName(javadoc, "deprecated")
         .findAny()
         .isPresent();
     }
-    
+
     public static boolean hasHidden(final @NonNull Javadoc javadoc) {
-        return streamTagsByName(javadoc, "hidden") 
+        return streamTagsByName(javadoc, "hidden")
         .findAny()
         .isPresent();
     }
-    
+
     public static boolean hasHidden(final @NonNull Optional<Javadoc> javadocOptional) {
         return javadocOptional
         .map(Javadocs::hasHidden)
         .orElse(false);
     }
-    
+
     public static boolean presentAndNotHidden(final @NonNull Optional<Javadoc> javadocOptional) {
         return javadocOptional
         .map(jd->!hasHidden(jd))
         .orElse(false);
     }
-    
-    
+
+
 }


[isis] 02/12: ISIS-2444: further doc improvements

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit ce649d52281289aa217f878299fb7166976dc2f5
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Fri Feb 5 06:52:29 2021 +0000

    ISIS-2444: further doc improvements
---
 .../modules/applib-svc/pages/ClockService.adoc     |  6 +--
 .../pages/CommandDtoProcessorService.adoc          | 48 +---------------------
 2 files changed, 4 insertions(+), 50 deletions(-)

diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
index 283eb78..8b0e273 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
@@ -24,11 +24,9 @@ Apache Isis provides such a facade through the `ClockService`.
 include::system:generated:page$index/applib/services/clock/ClockService.adoc[leveloffset=+2]
 
 
-Note that this domain service is also used by the framework itself to obtain the time, so it acts as an SPI as well.
+include::system:generated:page$index/applib/clock/VirtualClock.adoc[leveloffset=+2]
 
+Note that this domain service is also used by the framework itself to obtain the time, so it acts as an SPI as well.
 
-== Implementation
 
-This class (`o.a.i.applib.services.clock.ClockService`) is also the default implementation.
-The time provided by this default implementation is based on the system clock.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc
index 178495a..21e03da 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc
@@ -18,57 +18,13 @@ Another use case is to strip out large blobs for performance reasons.
 
 include::system:generated:page$index/applib/services/commanddto/processor/spi/CommandDtoProcessorService.adoc[leveloffset=+2]
 
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-== API
-
-The API defined by `CommandDtoProcessorService` is:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/commanddto/processor/spi/CommandDtoProcessorService.java[tags="refguide"]
-----
-
-
-
-================================
-
-== Implementation
-
-As noted in the introduction, the framework provides a default implementation, namely `o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandDto`.
-
-
-== API
-
-include::system:generated:page$index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[leveloffset=+2]
-
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-== Related Classes
 
 The `CommandDtoProcessorService` is a global fallback for serializing actions of commands into a DTO.
-However, this can be overridden on on an action-by-action basis using  xref:refguide:applib-ant:Action.adoc#commanddtoprocessor[`@Action#commandDtoProcessor`], and on a property-by-property basis using xref:refguide:applib-ant:Property.adoc#commanddtoprocessor[`@Command#commandDtoProcessor()`].
+However, this can be overridden on on an action-by-action basis using  xref:refguide:applib-ant:Action.adoc[`@Action#commandDtoProcessor`], and on a property-by-property basis using xref:refguide:applib-ant:Property.adoc[`@Command#commandDtoProcessor()`].
 The main use case is to allow certain actions/property edits to be ignored:
 
-[source,java]
-----
-include::refguide:applib-svc:example$services/commanddto/processor/CommandDtoProcessor.java[tags="refguide"]
-----
-<.> Returning `null` means that the command's DTO is effectively ignored.
 
+include::system:generated:page$index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[leveloffset=+2]
 
-================================
-
-== Related Services
 
-* the `CommandDtoProcessorService` is used by xref:refguide:applib-svc:ContentMappingService.adoc[`ContentMappingService`] to serialize ``Command``s over the REST API provided by xref:vro:ROOT:about.adoc[Restful Objects viewer].
-All implementations are used.
 


[isis] 03/12: ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 6a006ba7366a275ed7e81cac04aafd4d7d26f1ba
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Feb 6 14:28:19 2021 +0000

    ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'
    
    This must have happened a few weeks back when working on the XmlSnapshotService
---
 .../modules/ROOT/pages/cutting-a-release.adoc      |  2 +-
 .../modules/ROOT/pages/key-generation.adoc         |  4 ++--
 .../comguide/modules/ROOT/pages/pmc-notes.adoc     | 10 ++++-----
 .../ROOT/pages/post-release-successful.adoc        |  4 ++--
 .../ROOT/pages/post-release-unsuccessful.adoc      |  2 +-
 .../modules/ROOT/pages/verifying-releases.adoc     |  6 ++---
 .../pages/what-is-apache-isis/screencasts.adoc     |  2 +-
 .../pages/2020/2.0.0-M3/migrating-to-2.0.0.adoc    |  2 +-
 .../modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc |  4 ++--
 .../modules/intellij/pages/hints-and-tips.adoc     |  4 ++--
 .../hooks/introductory_notes.adoc                  | 26 ++++++++++++++++++++++
 .../AcceptHeaderService/hooks/usage_notes.adoc     | 26 ++++++++++++++++++++++
 .../pages/AcceptHeaderService/implementation.adoc  |  8 +++++++
 .../hooks/see_also.adoc                            | 26 ++++++++++++++++++++++
 .../implementation.adoc                            |  5 +++++
 .../BookmarkService/hooks/introductory_notes.adoc  |  5 +++++
 .../pages/BookmarkService/hooks/see_also.adoc      | 13 +++++++++++
 .../pages/BookmarkService/hooks/usage_notes.adoc   | 26 ++++++++++++++++++++++
 .../ClockService/hooks/introductory_notes.adoc     | 13 +++++++++++
 .../pages/ClockService/hooks/see_also.adoc         |  4 ++++
 .../pages/ClockService/hooks/usage_notes.adoc      |  0
 .../hooks/usage_notes.adoc                         | 17 ++++++++++++++
 .../CommandExecutorService/hooks/usage_notes.adoc  |  4 ++++
 .../XmlSnapshotService/hooks/implementation.adoc   |  5 +++++
 24 files changed, 198 insertions(+), 20 deletions(-)

diff --git a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
index 4f47ec9..edda475 100644
--- a/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/cutting-a-release.adoc
@@ -540,7 +540,7 @@ Wait a minute or two; the site should be available at link:https://isis.staged.a
 
 Once the artifacts have been uploaded, you can call a vote.
 
-In all cases, votes last for 72 hours and require a +3 (binding) vote from pathsToInclude.
+In all cases, votes last for 72 hours and require a +3 (binding) vote from members.
 
 
 === Start voting thread on dev mailing list
diff --git a/antora/components/comguide/modules/ROOT/pages/key-generation.adoc b/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
index d560307..2ea766a 100644
--- a/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/key-generation.adoc
@@ -9,7 +9,7 @@
 
 
 
-In order that a contributor can make a release it is necessary for them to have generated a key and had that key recognized by other pathsToInclude of the Apache Software Foundation.
+In order that a contributor can make a release it is necessary for them to have generated a key and had that key recognized by other members of the Apache Software Foundation.
 
 For further background information on this topic, see the http://www.apache.org/dev/release-signing.html[release signing page] and the http://www.apache.org/dev/openpgp.html#generate-key[openpgp page] on the Apache wiki.
 
@@ -540,7 +540,7 @@ Log onto `id.apache.org` and ensure that the finger print of your public key is
 
 == Attend Key Signing Party (Apache web of trust)
 
-It is strongly advised that the contributor attend a key signing party at an Apache event, in order that other Apache committers/pathsToInclude can in person verify their identity against the key.
+It is strongly advised that the contributor attend a key signing party at an Apache event, in order that other Apache committers/members can in person verify their identity against the key.
 The process for this is described http://www.apache.org/dev/release-signing.html#key-signing-party[here] and http://wiki.apache.org/apachecon/PgpKeySigning[here].
 
 == Update Maven Settings file (`~/.m2/settings.xml`)
diff --git a/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc b/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
index b1d1333..637158c 100644
--- a/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/pmc-notes.adoc
@@ -13,7 +13,7 @@ More information about PMCs can be found link:http://www.apache.org/dev/pmc.html
 
 In Apache Isis, every committer is a member of the PMC.
 
-This page contains some general notes on maintenance activities required by PMC pathsToInclude.
+This page contains some general notes on maintenance activities required by PMC members.
 
 == Prereqs
 
@@ -34,9 +34,9 @@ To set up ssh in the first place, take a look at https://www.apache.org/dev/new-
 
 == New Committer/PMC member
 
-Currently we don't distinguish between committers and PMC pathsToInclude: every committer is automatically invited to also be a member of the PMC.
+Currently we don't distinguish between committers and PMC members: every committer is automatically invited to also be a member of the PMC.
 
-Further notes on the steps for new PMC pathsToInclude can be found http://www.apache.org/dev/pmc.html#newpmc[here].
+Further notes on the steps for new PMC members can be found http://www.apache.org/dev/pmc.html#newpmc[here].
 
 === Start a vote thread on private@
 
@@ -179,10 +179,10 @@ with body:
 The Apache Isis PMC has voted Joe Bloggs as a committer and also member of the PMC.     <1>
 
 Voting thread:
-https://mail-search.apache.org/pathsToInclude/private-arch/isis-private/xxx                    <1>
+https://mail-search.apache.org/members/private-arch/isis-private/xxx                    <1>
 
 Results announcement:
-https://mail-search.apache.org/pathsToInclude/private-arch/isis-private/xxx                    <1>
+https://mail-search.apache.org/members/private-arch/isis-private/xxx                    <1>
 
 The committee-info.txt file has been updated, as have the LDAP groups (modify_unix_group.pl,  modify_committee.pl).
 ----
diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
index a4f3865..0afdf84 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-successful.adoc
@@ -7,11 +7,11 @@ The release process consists of:
 
 * the release manager xref:comguide:ROOT:cutting-a-release.adoc[cutting the release]
 
-* pathsToInclude of the Apache Isis PMC xref:comguide:ROOT:verifying-releases.adoc[verifying] and voting on the release
+* members of the Apache Isis PMC xref:comguide:ROOT:verifying-releases.adoc[verifying] and voting on the release
 
 * the release manager performing post-release tasks, for either a successful or an xref:comguide:ROOT:post-release-unsuccessful.adoc[unsuccessful] vote (former documented below)
 
-For a vote to succeed, there must be +3 votes from PMC pathsToInclude, and the vote must have been open at least 72 hours.
+For a vote to succeed, there must be +3 votes from PMC members, and the vote must have been open at least 72 hours.
 If there are not +3 votes after this time then it is perfectly permissible to keep the vote open longer.
 
 This section describes the steps to perform if the vote has been successful.
diff --git a/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc b/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
index 6e528ca..5281897 100644
--- a/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/post-release-unsuccessful.adoc
@@ -6,7 +6,7 @@
 The release process consists of:
 
 * the release manager xref:comguide:ROOT:cutting-a-release.adoc[cutting the release]
-* pathsToInclude of the Apache Isis PMC xref:comguide:ROOT:verifying-releases.adoc[verifying] and voting on the release
+* members of the Apache Isis PMC xref:comguide:ROOT:verifying-releases.adoc[verifying] and voting on the release
 * the release manager performing post-release tasks, for either a xref:comguide:ROOT:post-release-successful.adoc[successful] or an unsuccessful vote (latter documented below).
 
 If the vote did not succeed (did not achieve +3 votes after 72 hours and/or is unlikely to do so), then the vote should be closed and the following steps performed.
diff --git a/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc b/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
index 444c400..43ddafa 100644
--- a/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
+++ b/antora/components/comguide/modules/ROOT/pages/verifying-releases.adoc
@@ -9,15 +9,15 @@
 The release process consists of:
 
 * the release manager xref:comguide:ROOT:cutting-a-release.adoc[cutting the release]
-* pathsToInclude of the Apache Isis PMC verifying and voting on the release (documented below)
+* members of the Apache Isis PMC verifying and voting on the release (documented below)
 * the release manager performing post-release tasks, for either a xref:comguide:ROOT:post-release-successful.adoc[successful] or an xref:comguide:ROOT:post-release-unsuccessful.adoc[unsuccessful] vote.
 
-This section describes some guidance on what a voter (pathsToInclude of the Apache Isis PMC and anyone else who wishes) is expected to do before casting their vote in order to verify a release.
+This section describes some guidance on what a voter (members of the Apache Isis PMC and anyone else who wishes) is expected to do before casting their vote in order to verify a release.
 
 == Background
 
 Whenever a release manager announces a vote on a release (as per the [release process]) on the xref:docs:support:mailing-list.adoc#mailing-lists[dev mailing list], it is the responsibility of the project's PMC to cast their vote on the release.
-Anyone else can also vote, but only pathsToInclude of the Apache Isis PMC's vote are binding.
+Anyone else can also vote, but only members of the Apache Isis PMC's vote are binding.
 
 Per this http://www.apache.org/dev/release.html[ASF documentation], the legal requirements for an ASF release are:
 
diff --git a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
index f5ef431..3b7ef2d 100644
--- a/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
+++ b/antora/components/docs/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
@@ -91,7 +91,7 @@ Using xref:testing:fixtures:about.adoc[fixture scripts] to initialize the databa
 
 
 |link:https://www.youtube.com/watch?v=dXtmxmYxa30[006^] +
-Implementing xref:userguide:fun:business-rules.adoc[business rules]for domain object pathsToInclude, using supporting methods ("see it, use it, do it")
+Implementing xref:userguide:fun:business-rules.adoc[business rules]for domain object members, using supporting methods ("see it, use it, do it")
 |x||||||||||
 
 |link:https://www.youtube.com/watch?v=imHfxQGUgV8[007^] +
diff --git a/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M3/migrating-to-2.0.0.adoc b/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M3/migrating-to-2.0.0.adoc
index ebaad84..9c18943 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M3/migrating-to-2.0.0.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M3/migrating-to-2.0.0.adoc
@@ -727,7 +727,7 @@ isis.value-types. +
 === Annotations
 
 Collections are no longer editable.
-The `@Collection#editing()` and `@Collection#editingDisabledReason()` pathsToInclude have been removed.
+The `@Collection#editing()` and `@Collection#editingDisabledReason()` members have been removed.
 
 
 === No longer any archetypes
diff --git a/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc
index e8bb639..e21bacc 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc
@@ -28,7 +28,7 @@ isis.core.metaModel.validator.mixins-only=true        // <.>
 ----
 <.> `@DomainService(natureOfService=VIEW/REST)` is now solely used for UI menu action providers and REST end-points.
 There is no longer the need to validate uses of `natureOfService=DOMAIN` as this option was removed.
-<.> Support for services that contribute pathsToInclude to other `DomainObjects` was removed. Use `Mixins` instead.
+<.> Support for services that contribute members to other `DomainObjects` was removed. Use `Mixins` instead.
 
 See the former java-doc for hints on how to migrate the previous options.
 
@@ -92,7 +92,7 @@ VIEW_CONTRIBUTIONS_ONLY,
 spring.datasource.platform=h2
 spring.datasource.url=jdbc:h2:mem:...
 ----
-configure Datanucleus settings using 
+configure Datanucleus settings using
 [source]
 ----
 datanucleus. ...
diff --git a/antora/components/setupguide/modules/intellij/pages/hints-and-tips.adoc b/antora/components/setupguide/modules/intellij/pages/hints-and-tips.adoc
index 8469c95..0206d77 100644
--- a/antora/components/setupguide/modules/intellij/pages/hints-and-tips.adoc
+++ b/antora/components/setupguide/modules/intellij/pages/hints-and-tips.adoc
@@ -49,8 +49,8 @@ Navigating around:
 * find superclasses/interface/declaration: `ctrl-B`
 
 Viewing the structure (ie outline) of a class
-* `ctrl-F12` will pop-up a dialog showing all pathsToInclude
-** hit `ctrl-F12` again to also see inherited pathsToInclude
+* `ctrl-F12` will pop-up a dialog showing all members
+** hit `ctrl-F12` again to also see inherited members
 
 == Editing
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/introductory_notes.adoc
new file mode 100644
index 0000000..3d8ef4b
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/introductory_notes.adoc
@@ -0,0 +1,26 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+:page-partial:
+
+
+The intended use of this service is where there are multiple concurrent versions of a REST API, for backward compatibility of existing clients.
+The `AcceptHeaderService` allows the responsibility for content negotiation (determining which version of the REST API is to be used) to be performed by logic in the domain objects themselves.
+
+The diagram below illustrated this:
+
+image::reference-services-api/acceptheaderservice.png[width="700px"]
+
+The REST request is submitted to a domain service with a xref:refguide:applib-ant:DomainService.adoc#nature[nature] of `VIEW_REST_ONLY` (`MyRestApi` in the diagram).
+This uses the `AcceptHeaderService` to obtain the values of the HTTP `Accept` header.
+Based on this it delegates to the appropriate underlying domain service (with a nature of `DOMAIN` so that they are not exposed in the REST API at all).
+
+[TIP]
+====
+The service does not define any conventions as to the format of the media types.
+The option is to use the media type's type/subtype, eg `application/vnd.myrestapi-v1+json`; an alternative is to use a media type parameter as a hint, eg `application/json;x-my-rest-api-version=1` (where `x-my-rest-api-version` is the media type parameter).
+
+The Restful Objects specification does this something similar with its own `x-ro-domain-type` media type parameter; this is used by the xref:refguide:applib-svc:ContentMappingService.adoc[`ContentMappingService`] to determine how to map domain objects to view models/DTOs.
+====
+
+
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/usage_notes.adoc
new file mode 100644
index 0000000..3d8ef4b
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/usage_notes.adoc
@@ -0,0 +1,26 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+:page-partial:
+
+
+The intended use of this service is where there are multiple concurrent versions of a REST API, for backward compatibility of existing clients.
+The `AcceptHeaderService` allows the responsibility for content negotiation (determining which version of the REST API is to be used) to be performed by logic in the domain objects themselves.
+
+The diagram below illustrated this:
+
+image::reference-services-api/acceptheaderservice.png[width="700px"]
+
+The REST request is submitted to a domain service with a xref:refguide:applib-ant:DomainService.adoc#nature[nature] of `VIEW_REST_ONLY` (`MyRestApi` in the diagram).
+This uses the `AcceptHeaderService` to obtain the values of the HTTP `Accept` header.
+Based on this it delegates to the appropriate underlying domain service (with a nature of `DOMAIN` so that they are not exposed in the REST API at all).
+
+[TIP]
+====
+The service does not define any conventions as to the format of the media types.
+The option is to use the media type's type/subtype, eg `application/vnd.myrestapi-v1+json`; an alternative is to use a media type parameter as a hint, eg `application/json;x-my-rest-api-version=1` (where `x-my-rest-api-version` is the media type parameter).
+
+The Restful Objects specification does this something similar with its own `x-ro-domain-type` media type parameter; this is used by the xref:refguide:applib-svc:ContentMappingService.adoc[`ContentMappingService`] to determine how to map domain objects to view models/DTOs.
+====
+
+
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/implementation.adoc
new file mode 100644
index 0000000..e53b262
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/implementation.adoc
@@ -0,0 +1,8 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
+
+The xref:vro:ROOT:about.adoc[Restful Objects] viewer provides an implementation of this API, `o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest`.
+
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/see_also.adoc
new file mode 100644
index 0000000..3d8ef4b
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/see_also.adoc
@@ -0,0 +1,26 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+:page-partial:
+
+
+The intended use of this service is where there are multiple concurrent versions of a REST API, for backward compatibility of existing clients.
+The `AcceptHeaderService` allows the responsibility for content negotiation (determining which version of the REST API is to be used) to be performed by logic in the domain objects themselves.
+
+The diagram below illustrated this:
+
+image::reference-services-api/acceptheaderservice.png[width="700px"]
+
+The REST request is submitted to a domain service with a xref:refguide:applib-ant:DomainService.adoc#nature[nature] of `VIEW_REST_ONLY` (`MyRestApi` in the diagram).
+This uses the `AcceptHeaderService` to obtain the values of the HTTP `Accept` header.
+Based on this it delegates to the appropriate underlying domain service (with a nature of `DOMAIN` so that they are not exposed in the REST API at all).
+
+[TIP]
+====
+The service does not define any conventions as to the format of the media types.
+The option is to use the media type's type/subtype, eg `application/vnd.myrestapi-v1+json`; an alternative is to use a media type parameter as a hint, eg `application/json;x-my-rest-api-version=1` (where `x-my-rest-api-version` is the media type parameter).
+
+The Restful Objects specification does this something similar with its own `x-ro-domain-type` media type parameter; this is used by the xref:refguide:applib-svc:ContentMappingService.adoc[`ContentMappingService`] to determine how to map domain objects to view models/DTOs.
+====
+
+
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/implementation.adoc
new file mode 100644
index 0000000..e4852a7
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/implementation.adoc
@@ -0,0 +1,5 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/introductory_notes.adoc
new file mode 100644
index 0000000..e4852a7
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/introductory_notes.adoc
@@ -0,0 +1,5 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/see_also.adoc
new file mode 100644
index 0000000..c256f6d
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/see_also.adoc
@@ -0,0 +1,13 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
+For example, a `Customer` object with an xref:refguide:applib-ant:DomainObject.adoc#objectType[object type] of "custmgmt.Customer" and an id of 123
+would correspond to a xref:BookmarkService.adoc#bookmark[`Bookmark`] with a string representation of "custmgmt.Customer|123".
+
+Bookmarks are useful to store a reference to an arbitrary object, although be aware that there is no referential integrity.
+
+Several of the extension libraries use bookmarks.
+For example the xref:refguide:applib-svc:AuditerService.adoc[`AuditerService`] uses bookmarks to identify the object that is being modified.
+
+Serialized form of bookmarks also appear within  xref:refguide:schema:about.adoc[schema] instances, for example as used by xref:refguide:applib-svc:CommandServiceInternal.adoc[`CommandService`] and the xref:refguide:applib-svc:ExecutionSubscriber.adoc[`PublisherService`].
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/usage_notes.adoc
new file mode 100644
index 0000000..3d8ef4b
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/usage_notes.adoc
@@ -0,0 +1,26 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+:page-partial:
+
+
+The intended use of this service is where there are multiple concurrent versions of a REST API, for backward compatibility of existing clients.
+The `AcceptHeaderService` allows the responsibility for content negotiation (determining which version of the REST API is to be used) to be performed by logic in the domain objects themselves.
+
+The diagram below illustrated this:
+
+image::reference-services-api/acceptheaderservice.png[width="700px"]
+
+The REST request is submitted to a domain service with a xref:refguide:applib-ant:DomainService.adoc#nature[nature] of `VIEW_REST_ONLY` (`MyRestApi` in the diagram).
+This uses the `AcceptHeaderService` to obtain the values of the HTTP `Accept` header.
+Based on this it delegates to the appropriate underlying domain service (with a nature of `DOMAIN` so that they are not exposed in the REST API at all).
+
+[TIP]
+====
+The service does not define any conventions as to the format of the media types.
+The option is to use the media type's type/subtype, eg `application/vnd.myrestapi-v1+json`; an alternative is to use a media type parameter as a hint, eg `application/json;x-my-rest-api-version=1` (where `x-my-rest-api-version` is the media type parameter).
+
+The Restful Objects specification does this something similar with its own `x-ro-domain-type` media type parameter; this is used by the xref:refguide:applib-svc:ContentMappingService.adoc[`ContentMappingService`] to determine how to map domain objects to view models/DTOs.
+====
+
+
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/introductory_notes.adoc
new file mode 100644
index 0000000..c256f6d
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/introductory_notes.adoc
@@ -0,0 +1,13 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
+For example, a `Customer` object with an xref:refguide:applib-ant:DomainObject.adoc#objectType[object type] of "custmgmt.Customer" and an id of 123
+would correspond to a xref:BookmarkService.adoc#bookmark[`Bookmark`] with a string representation of "custmgmt.Customer|123".
+
+Bookmarks are useful to store a reference to an arbitrary object, although be aware that there is no referential integrity.
+
+Several of the extension libraries use bookmarks.
+For example the xref:refguide:applib-svc:AuditerService.adoc[`AuditerService`] uses bookmarks to identify the object that is being modified.
+
+Serialized form of bookmarks also appear within  xref:refguide:schema:about.adoc[schema] instances, for example as used by xref:refguide:applib-svc:CommandServiceInternal.adoc[`CommandService`] and the xref:refguide:applib-svc:ExecutionSubscriber.adoc[`PublisherService`].
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/see_also.adoc
new file mode 100644
index 0000000..21f4ba4
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/see_also.adoc
@@ -0,0 +1,4 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/usage_notes.adoc
new file mode 100644
index 0000000..e69de29
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/usage_notes.adoc
new file mode 100644
index 0000000..3db7848
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/usage_notes.adoc
@@ -0,0 +1,17 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
+
+
+Most applications deal with dates and times in one way or another.
+For example, if an `Order` is placed, then the `Customer` may have 30 days to pay the `Invoice`, otherwise a penalty may be levied.
+
+However, such date/time related functionality can quickly complicate automated testing: "today+30" will be a different value every time the test is run.
+
+Even disregarding testing, there may be a requirement to ensure that date/times are obtained from an NNTP server (rather than the system PC).
+While instantiating a `java.util.Date` to current the current time is painless enough, we would not want complex technical logic for querying an NNTP server spread around domain logic code.
+
+Therefore it's common to provide a domain service whose responsibility is to provide the current time.
+This service can be injected into any domain object (and can be mocked out for unit testing).
+Apache Isis provides such a facade through the `ClockService`.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/usage_notes.adoc
new file mode 100644
index 0000000..21f4ba4
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/usage_notes.adoc
@@ -0,0 +1,4 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/implementation.adoc
new file mode 100644
index 0000000..e4852a7
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/implementation.adoc
@@ -0,0 +1,5 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
+


[isis] 06/12: ISIS-2526: suppresses title

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 10601ed68986820a75aa99a1b7f6f747d117caae
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Feb 6 14:30:38 2021 +0000

    ISIS-2526: suppresses title
---
 tooling/cli/pom.xml                                |  33 ++++++
 .../main/java/org/apache/isis/tooling/cli/Cli.java |  32 ++----
 .../isis/tooling/cli/CliCommandAbstract.java       |  17 +++
 .../org/apache/isis/tooling/cli/CliConfig.java     |  10 +-
 .../cli/adocfix/OrphanedIncludeStatementFixer.java |  12 ++-
 .../isis/tooling/cli/projdoc/ProjectDocModel.java  |   1 +
 tooling/cli/src/main/resources/log4j2.xml          |   2 +-
 .../apache/isis/tooling/j2adoc/J2AdocContext.java  | 118 +++++++++++----------
 .../tooling/j2adoc/convert/HtmlToAsciiDoc.java     |  75 ++++++-------
 .../j2adoc/format/UnitFormatterAbstract.java       | 108 ++++++++++---------
 .../UnitFormatterWithSourceAndFootNotes.java       |  78 +++++++-------
 tooling/model4adoc/README.adoc                     |  31 +++---
 .../apache/isis/tooling/model4adoc/NodeWriter.java |  52 ++++-----
 .../projectmodel/ProjectNodeFactory_maven.java     |  52 ++++-----
 14 files changed, 334 insertions(+), 287 deletions(-)

diff --git a/tooling/cli/pom.xml b/tooling/cli/pom.xml
index e8a6dac..fdef05b 100644
--- a/tooling/cli/pom.xml
+++ b/tooling/cli/pom.xml
@@ -32,6 +32,7 @@
 
 	<build>
 		<plugins>
+<!--
 			<plugin>
 				<groupId>org.apache.maven.plugins</groupId>
 				<artifactId>maven-assembly-plugin</artifactId>
@@ -58,6 +59,38 @@
 					</execution>
 				</executions>
 			</plugin>
+-->
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-shade-plugin</artifactId>
+				<version>3.2.4</version>
+				<executions>
+					<execution>
+						<id>shade-my-jar</id>
+						<phase>package</phase>
+						<goals>
+							<goal>shade</goal>
+						</goals>
+						<configuration>
+							<transformers>
+								<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
+									<mainClass>org.apache.isis.tooling.cli.Cli</mainClass>
+								</transformer>
+							</transformers>
+							<finalName>isis-tooling-cli</finalName>
+							<filters>
+								<filter>
+									<artifact>*:*</artifact>
+									<excludes>
+										<exclude>**/Log4j2Plugins.dat</exclude>
+									</excludes>
+								</filter>
+							</filters>
+							<minimizeJar>true</minimizeJar>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
 		</plugins>
 	</build>
 
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java
index dace871..5bf16f0 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/Cli.java
@@ -24,7 +24,6 @@ import java.util.concurrent.Callable;
 import org.apache.isis.commons.internal.base._Lazy;
 import org.apache.isis.commons.internal.context._Context;
 import org.apache.isis.tooling.cli.projdoc.ProjectDocModel;
-import org.apache.isis.tooling.projectmodel.ProjectNodeFactory;
 
 import lombok.val;
 
@@ -90,16 +89,10 @@ class Cli implements Callable<Integer> {
 
         @Override
         public Integer call() throws Exception {
-
-            if(getOutputPath()!=null) {
-                getConfig().getGlobal().setOutputRootFolder(getOutputPath());
-            }
-
-            val projTree = ProjectNodeFactory.maven(getProjectRoot());
-            val projectDocModel = new ProjectDocModel(projTree);
-            projectDocModel.generateAsciiDoc(getConfig(), ProjectDocModel.Mode.OVERVIEW);
+            generateAsciidoc(ProjectDocModel.Mode.OVERVIEW);
             return 0;
         }
+
     }
 
     @Command(
@@ -107,19 +100,12 @@ class Cli implements Callable<Integer> {
             description = "Writes a Global Index (AsciiDoc) to given output.")
     static class GlobalIndexCommand extends CliCommandAbstract {
 
-
         @Override
         public Integer call() throws Exception {
-
-            if(getOutputPath() != null) {
-                getConfig().getGlobal().setOutputRootFolder(getOutputPath());
-            }
-
-            val projTree = ProjectNodeFactory.maven(getProjectRoot());
-            val projectDocModel = new ProjectDocModel(projTree);
-            projectDocModel.generateAsciiDoc(getConfig(), ProjectDocModel.Mode.INDEX);
+            generateAsciidoc(ProjectDocModel.Mode.INDEX);
             return 0;
         }
+
     }
 
     @Command(
@@ -129,16 +115,10 @@ class Cli implements Callable<Integer> {
 
         @Override
         public Integer call() throws Exception {
-
-            if(getOutputPath() != null) {
-                getConfig().getGlobal().setOutputRootFolder(getOutputPath());
-            }
-
-            val projTree = ProjectNodeFactory.maven(getProjectRoot());
-            val projectDocModel = new ProjectDocModel(projTree);
-            projectDocModel.generateAsciiDoc(getConfig(), ProjectDocModel.Mode.ALL);
+            generateAsciidoc(ProjectDocModel.Mode.ALL);
             return 0;
         }
+
     }
 
 
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliCommandAbstract.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliCommandAbstract.java
index c2956f9..432a1cc 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliCommandAbstract.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliCommandAbstract.java
@@ -22,6 +22,10 @@ import java.io.File;
 import java.util.concurrent.Callable;
 
 import org.apache.isis.commons.internal.context._Context;
+import org.apache.isis.tooling.cli.projdoc.ProjectDocModel;
+import org.apache.isis.tooling.projectmodel.ProjectNodeFactory;
+
+import lombok.val;
 
 abstract class CliCommandAbstract implements Callable<Integer> {
 
@@ -37,5 +41,18 @@ abstract class CliCommandAbstract implements Callable<Integer> {
         return _Context.getElseFail(Cli.class).getOutputPath();
     }
 
+    /**
+     * factor out common logic
+     * @param mode
+     */
+    protected void generateAsciidoc(ProjectDocModel.Mode mode) {
+        if (getOutputPath() != null) {
+            getConfig().getGlobal().setOutputRootFolder(getOutputPath());
+        }
+
+        val projTree = ProjectNodeFactory.maven(getProjectRoot());
+        val projectDocModel = new ProjectDocModel(projTree);
+        projectDocModel.generateAsciiDoc(getConfig(), mode);
+    }
 
 }
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
index d0be900..30f514f 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
@@ -22,6 +22,8 @@ import java.io.File;
 import java.util.LinkedHashMap;
 import java.util.Optional;
 
+import org.yaml.snakeyaml.constructor.ConstructorException;
+
 import org.apache.isis.commons.internal.resources._Yaml;
 
 import lombok.Data;
@@ -89,6 +91,7 @@ public class CliConfig {
             private String documentGlobalIndexXrefPageIdFormat = "system:generated:index/%s.adoc";
 
             private boolean fixOrphanedAdocIncludeStatements = false;
+            private boolean skipTitleHeader = false;
 
             public File getDocumentIndexFolder(File outputRootFolder) {
                 return Optional.ofNullable(outputRootFolder)
@@ -105,7 +108,12 @@ public class CliConfig {
     public static CliConfig read(final @NonNull File file) {
         return _Yaml.readYaml(CliConfig.class, file)
         .ifFailure(e->{
-            System.err.println(String.format("config file '%s' not readable, using defaults", file.getAbsolutePath()));
+            if(e instanceof ConstructorException) {
+                final ConstructorException ce = (ConstructorException) e;
+                throw new RuntimeException(String.format("config file '%s' not readable\n%s", file.getAbsolutePath(), ce.getProblem()));
+            } else {
+                throw new RuntimeException(String.format("config file '%s' not readable\n%s", file.getAbsolutePath(), e));
+            }
         })
         .presentElseGet(CliConfig::new);
     }
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
index c14b324..8d36b7e 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/adocfix/OrphanedIncludeStatementFixer.java
@@ -32,7 +32,9 @@ import org.apache.isis.tooling.model4adoc.include.IncludeStatements;
 
 import lombok.NonNull;
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
+@Log4j2
 public final class OrphanedIncludeStatementFixer {
 
     public static void fixIncludeStatements(
@@ -41,16 +43,16 @@ public final class OrphanedIncludeStatementFixer {
             final @NonNull J2AdocContext j2aContext) {
 
         if(cliConfig.getGlobal().isDryRun()) {
-            System.out.println("IncludeStatementFixer: skip (dry-run)");
+            log.debug("IncludeStatementFixer: skip (dry-run)");
             return;
         }
 
         if(!cliConfig.getCommands().getIndex().isFixOrphanedAdocIncludeStatements()) {
-            System.out.println("IncludeStatementFixer: skip (disabled via config, fixOrphandedAdocIncludeStatements=false)");
+            log.debug("IncludeStatementFixer: skip (disabled via config, fixOrphandedAdocIncludeStatements=false)");
             return;
         }
 
-        System.out.println(String.format("IncludeStatementFixer: about to process %d adoc files", adocFiles.size()));
+        log.debug("IncludeStatementFixer: about to process {} adoc files", adocFiles.size());
 
         val totalFixed = _Refs.intRef(0);
 
@@ -96,7 +98,7 @@ public final class OrphanedIncludeStatementFixer {
                     }
 
                 });
-                
+
                 return correctedIncludeStatement
                         .getValue()
                         .orElse(null); // keep original line, don't mangle
@@ -113,7 +115,7 @@ public final class OrphanedIncludeStatementFixer {
 
         });
 
-        System.out.println(String.format("IncludeStatementFixer: all done. (%d orphanded inlcudes fixed)", totalFixed.getValue()));
+        log.debug("IncludeStatementFixer: all done. ({} orphanded inlcudes fixed)", totalFixed.getValue());
 
     }
 
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
index 0f42006..9254cc7 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
@@ -108,6 +108,7 @@ public class ProjectDocModel {
                 .licenseHeader(cliConfig.getGlobal().getLicenseHeader())
                 .xrefPageIdFormat(cliConfig.getCommands().getIndex().getDocumentGlobalIndexXrefPageIdFormat())
                 .namespacePartsSkipCount(cliConfig.getGlobal().getNamespacePartsSkipCount())
+                .skipTitleHeader(cliConfig.getCommands().getIndex().isSkipTitleHeader())
                 .build();
 
         val doc = doc();
diff --git a/tooling/cli/src/main/resources/log4j2.xml b/tooling/cli/src/main/resources/log4j2.xml
index 02f72cb..492c207 100644
--- a/tooling/cli/src/main/resources/log4j2.xml
+++ b/tooling/cli/src/main/resources/log4j2.xml
@@ -23,4 +23,4 @@
             <appender-ref ref="console" />
         </Root>
     </Loggers>
-</Configuration>
\ No newline at end of file
+</Configuration>
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
index 9404831..a6f1829 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
@@ -46,126 +46,130 @@ import lombok.Getter;
 import lombok.NonNull;
 import lombok.Value;
 import lombok.val;
+import lombok.extern.log4j.Log4j2;
 
-@Value @Builder
+@Value @Builder @Log4j2
 public class J2AdocContext {
 
     private final @NonNull String xrefPageIdFormat;
     private final @Nullable String licenseHeader;
-    
+
     @Builder.Default
     private final int namespacePartsSkipCount = 0;
-    
+
+    @Builder.Default
+    private final boolean skipTitleHeader = false;
+
     @Builder.Default
     private final @NonNull String memberNameFormat = "[teal]#*%s*#";
-    
+
     @Builder.Default
     private final @NonNull String staticMemberNameFormat = "[teal]#*_%s_*#";
-    
+
     @Builder.Default
     private final @NonNull String deprecatedMemberNameFormat = "[line-through gray]#*%s*#";
-    
+
     @Builder.Default
     private final @NonNull String deprecatedStaticMemberNameFormat = "[line-through gray]#*_%s_*#";
-    
+
     // -- CONVERTER
-    
+
     private final @NonNull Function<J2AdocContext, J2AdocConverter> converterFactory;
-    
+
     @Getter(lazy=true)
     private final J2AdocConverter converter = getConverterFactory().apply(this);
-    
+
     // -- FORMATTER
-    
+
     private final @NonNull Function<J2AdocContext, UnitFormatter> formatterFactory;
-    
+
     @Getter(lazy=true)
     private final UnitFormatter formatter = getFormatterFactory().apply(this);
 
     // -- UNIT INDEX
-    
+
     private final Map<LookupKey, J2AdocUnit> unitIndex = _Maps.newTreeMap();
     private final ListMultimap<String, J2AdocUnit> unitsByTypeSimpleName = _Multimaps.newListMultimap();
-    
+
     public J2AdocContext add(final @NonNull J2AdocUnit unit) {
         val unitKey = LookupKey.of(unit.getResourceCoordinates());
         val previousKey = unitIndex.put(unitKey, unit);
         if(previousKey!=null) {
             throw _Exceptions.unrecoverableFormatted(
                     "J2AUnit index entries must be unique, "
-                    + "index key collision on \nexists: %s\nnew:    %s", 
+                    + "index key collision on \nexists: %s\nnew:    %s",
                     previousKey,
                     unit);
         }
         unitsByTypeSimpleName.putElement(unit.getName().stream().collect(Collectors.joining(".")), unit);
         return this;
     }
-    
+
     public Stream<J2AdocUnit> add(final @NonNull File sourceFile) {
         return J2AdocUnit.parse(sourceFile)
         .peek(this::add)
-        // ensure the stream is consumed here, 
+        // ensure the stream is consumed here,
         // optimized for 1 result per source file, but can be more
-        .collect(Collectors.toCollection(()->new ArrayList<>(1))) 
+        .collect(Collectors.toCollection(()->new ArrayList<>(1)))
         .stream();
     }
-    
+
     /**
      * Find the J2AdocUnit by given search parameters.
      * @param partialName - can be anything, originating eg. from java-doc {@literal link} tags.
      * @param unit - the referring (originating) unit, that is currently processed
      */
     public Optional<J2AdocUnit> findUnit(
-            final @Nullable String partialName, 
+            final @Nullable String partialName,
             final @NonNull  J2AdocUnit unit) {
-        
+
         if(_Strings.isNullOrEmpty(partialName)) {
             return Optional.empty();
         }
-        
+
         val partialNameNoWhiteSpaces = partialName.split("\\s")[0];
-        
-        
+
+
         if(partialNameNoWhiteSpaces.contains("#")) {
             // skip member reference lookup
-            //XXX reserved for future extensions ... 
+            //XXX reserved for future extensions ...
             //val partialNameWithoutMember = _Refs.stringRef(partialName).cutAtIndexOf("#");
-            return Optional.empty();  
+            return Optional.empty();
         }
-        
+
         //XXX debug entry point (keep)
 //        if(unit.getFriendlyName().contains("")
 //                && partialNameNoWhiteSpaces.equals("Blob")) {
-//            System.out.println("!!! debug entry point");
+//            log.debug("!!! debug entry point");
 //        }
-        
+
         // given the partialNameNoWhiteSpaces, we split it into parts delimited by '.'
-        // any possible ordered subset reachable through removing only leading parts 
+        // any possible ordered subset reachable through removing only leading parts
         // is a candidate representation of the typeSimpleName
         // eg. given a.b.c.d the candidates are in order of likelihood ...
         // d
         // c.d
         // b.c.d
         // a.b.c.d
-        
+
         final Can<String> nameDiscriminator = Can.ofStream(
                 _Strings.splitThenStream(partialNameNoWhiteSpaces, "."));
-        
+
         val nameDiscriminatorPartIterator = nameDiscriminator.reverseIterator();
-        
+
         val typeSimpleNameCandidates = Stream.iterate(
-                Can.ofSingleton(nameDiscriminatorPartIterator.next()), 
+                Can.ofSingleton(nameDiscriminatorPartIterator.next()),
                 parts->parts.add(nameDiscriminatorPartIterator.next()))
         .limit(nameDiscriminator.size())
         .collect(Can.toCan());
-        
-        // each Can<String> represents a fully qualified name, where all its String parts are 
-        // collected; which are the Java package-name parts and the Java simple-name parts combined 
+
+        // each Can<String> represents a fully qualified name, where all its String parts are
+        // collected; which are the Java package-name parts and the Java simple-name parts combined
         // note: Java simple-name parts, are multiple when the class is nested
         final Can<Can<String>> potentialFqns = Can.ofStream(
                 ImportDeclarations
                 .streamPotentialFqns(nameDiscriminator, unit.getImportDeclarations()));
-        
+
         // for performance reasons we only search the units that are hash mapped
         // by the typeSimpleNameCandidates using the unitsByTypeSimpleName map
         val searchResult = typeSimpleNameCandidates.stream()
@@ -176,16 +180,16 @@ public class J2AdocContext {
                 .stream())
         // we have a match if either the candidate unit's namespace matches the one of the potentialFqns
         // or otherwise if candidate unit and originating unit share the same Java package;
-        // that is, in Java sources, types may refer to other types within the same package without the 
+        // that is, in Java sources, types may refer to other types within the same package without the
         // need for declaring an import statement, hence the second option is a fallback
         .filter((J2AdocUnit referredUnit)->potentialFqns.stream()
                 .anyMatch(potentialFqn->potentialFqn.isEqualTo(referredUnit.getFqnParts()))
                 || unit.getNamespace().equals(referredUnit.getNamespace()) //same package
         )
         .collect(Can.toCan());
-        
+
         // what's left to do at this point is to log empty or ambiguous search results
-        // while also trying to suppress cases that are of no interest   
+        // while also trying to suppress cases that are of no interest
 
         val skipLog = searchResult.isEmpty() && (
                 unit.getFqnParts().endsWith(nameDiscriminator) // self referential
@@ -206,62 +210,62 @@ public class J2AdocContext {
                 || nameDiscriminator.isEqualTo(Can.of("Math"))
                 || nameDiscriminator.isEqualTo(Can.of("Thread"))
                 || potentialFqns.stream().anyMatch(fqn->
-                    // known packages, we'll never find in the index                    
+                    // known packages, we'll never find in the index
                     fqn.startsWith(Can.of("java"))
                     || fqn.startsWith(Can.of("javax")))
         );
 
         // don't log self-referential lookups, as these are not an issue
         if(!skipLog) {
-            logIfEmptyOrAmbiguous(searchResult, 
+            logIfEmptyOrAmbiguous(searchResult,
                     String.format("while processing %s searching referenced unit by partial name '%s'",
                             unit.getFriendlyName(),
                             partialNameNoWhiteSpaces));
         }
-        
+
         return searchResult.getSingleton();
     }
-    
+
     public Optional<J2AdocUnit> findUnitByTypeSimpleName(final @Nullable String typeSimpleName) {
-        
+
         if(_Strings.isNullOrEmpty(typeSimpleName)) {
             return Optional.empty();
         }
-        
+
         val searchResult = Can.ofCollection(unitsByTypeSimpleName.getOrElseEmpty(typeSimpleName));
-        
-        logIfEmptyOrAmbiguous(searchResult, 
+
+        logIfEmptyOrAmbiguous(searchResult,
                 String.format("searching unit by type-simple-name '%s'", typeSimpleName));
-        
+
         return searchResult.getSingleton();
     }
-    
+
     public Stream<J2AdocUnit> streamUnits() {
         return unitIndex.values().stream();
     }
 
     /**
-     * @param key - unique key for types 
+     * @param key - unique key for types
      * @return optionally the unit available for given key
      */
     public Optional<J2AdocUnit> getUnit(final @NonNull LookupKey key) {
         return Optional.ofNullable(unitIndex.get(key));
     }
-    
+
     // -- PREDEFINED FORMATS
-    
+
     public static J2AdocContextBuilder javaSourceWithFootnotesFormat() {
         return J2AdocContext.builder()
                 .converterFactory(J2AdocConverter::createDefault)
                 .formatterFactory(UnitFormatterWithSourceAndFootNotes::new)
                 ;
     }
-    
+
     public static J2AdocContextBuilder compactFormat() {
         return J2AdocContext.builder()
                 .converterFactory(J2AdocConverter::createDefault)
                 .formatterFactory(UnitFormatterCompact::new)
-                ;        
+                ;
     }
 
     // -- LOG
@@ -275,5 +279,5 @@ public class J2AdocContext {
         }
     }
 
-    
+
 }
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/HtmlToAsciiDoc.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/HtmlToAsciiDoc.java
index 875bc94..1619a50 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/HtmlToAsciiDoc.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/HtmlToAsciiDoc.java
@@ -36,35 +36,35 @@ import lombok.SneakyThrows;
 import lombok.val;
 
 final class HtmlToAsciiDoc {
-    
+
     @SneakyThrows
     public static Document body(Element body) {
-        
+
         val adoc = AsciiDocFactory.doc();
-        
+
         val helper = new BlockHelper(adoc);
-        
+
         NodeTraversor.traverse(new NodeVisitor() {
-            
+
             @Override
             public void head(Node node, int depth) {
-                
+
                 val tag = _Strings.nullToEmpty(node.nodeName()).toLowerCase();
-                
+
                 if(node instanceof TextNode) {
-                    
+
                     val textNode = (TextNode)node;
-                    
+
                     val text = helper.isPreFormatted()
                             ? textNode.getWholeText()
                             : textNode.text().trim();
-                            
+
                     if(!text.isBlank()) {
-                        helper.blockAppend(text);    
+                        helper.blockAppend(text);
                     }
                     return;
-                } 
-                
+                }
+
                 switch(tag) {
                 case "ul":
                     helper.nextList();
@@ -84,6 +84,7 @@ final class HtmlToAsciiDoc {
                     helper.blockAppend(" *");
                     return;
                 case "tt":
+                case "code":
                     helper.blockAppend(" `");
                     return;
                 case "i":
@@ -91,12 +92,12 @@ final class HtmlToAsciiDoc {
                     return;
                 }
             }
-            
+
             @Override
             public void tail(Node node, int depth) {
-                
+
                 val tag = _Strings.nullToEmpty(node.nodeName()).toLowerCase();
-                
+
                 switch(tag) {
                 case "ul":
                     helper.popList();
@@ -118,63 +119,63 @@ final class HtmlToAsciiDoc {
                     helper.blockAppend("_ ");
                     return;
                 }
-                
+
             }
-            
-            
+
+
         }, body);
 
         return adoc;
     }
-    
+
     // -- HELPER
-    
+
     private final static class BlockHelper {
-        
+
         private final Stack<StructuralNode> nodeStack = new Stack<>();
         private final Stack<org.asciidoctor.ast.List> listStack = new Stack<>();
-        
+
 
         // first element on the stack is the document, that is the the root of the adoc abstract syntax tree
         BlockHelper(Document adoc){
-            nodeStack.push(adoc);  
+            nodeStack.push(adoc);
         }
-        
+
         void pop() {
             nodeStack.pop();
         }
-        
+
         void popList() {
             nodeStack.pop();
             listStack.pop();
         }
-        
+
         // create a new block on top of the current stack
         Block nextBlock() {
             val block = AsciiDocFactory.block(nodeStack.peek());
             nodeStack.push(block);
             return block;
         }
-        
+
         // create a new block on top of the current stack
         Block nextListingBlock() {
             val block = AsciiDocFactory.listingBlock(nodeStack.peek(), "");
             nodeStack.push(block);
             return block;
         }
-        
+
         // if the stack top is already a block reuse it or create a new one
         Block getBlock() {
             return (nodeStack.peek() instanceof Block)
                     ? (Block) nodeStack.peek()
                     : nextBlock();
         }
-        
+
         void blockAppend(String source) {
             val block = getBlock();
             block.setSource(block.getSource()+source);
         }
-        
+
         org.asciidoctor.ast.List nextList() {
             val nextList = AsciiDocFactory.list(nodeStack.peek());
             nodeStack.push(nextList);
@@ -186,7 +187,7 @@ final class HtmlToAsciiDoc {
             val list = listStack.isEmpty()
                     ? nextList()
                     : listStack.peek();
-            
+
             // pop until stack top points to list
             while(!list.equals(nodeStack.peek())) {
                 nodeStack.pop();
@@ -195,23 +196,23 @@ final class HtmlToAsciiDoc {
             val openBlock = AsciiDocFactory.openBlock(listItem);
             nodeStack.push(openBlock);
         }
-        
+
         // -- PRE HANDLING
-        
+
         int preDepth = 0;
 
         void onPreHead() {
             ++preDepth;
         }
-        
+
         void onPreTail() {
             --preDepth;
         }
-        
+
         boolean isPreFormatted() {
             return preDepth>0;
         }
-        
+
     }
 
 }
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
index a587325..7e6fba0 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
@@ -39,31 +39,31 @@ import lombok.RequiredArgsConstructor;
 import lombok.val;
 
 @RequiredArgsConstructor(access = AccessLevel.PROTECTED)
-public abstract class UnitFormatterAbstract 
+public abstract class UnitFormatterAbstract
 implements UnitFormatter {
-    
+
     private final @NonNull J2AdocContext j2aContext;
-    
+
     @Override
     public String getEnumConstantFormat() {
         return "`%s`";
     }
-    
+
     @Override
     public String getAnnotationMemberFormat() {
         return "`%2$s` : `%1$s`";
     }
-    
+
     @Override
     public String getFieldFormat() {
         return "`%2$s` : `%1$s`";
     }
-    
+
     @Override
     public String getConstructorFormat() {
         return "`%1$s(%2$s)`";
     }
-    
+
     @Override
     public String getGenericConstructorFormat() {
         return "`%2$s%1$s(%3$s)`";
@@ -78,14 +78,14 @@ implements UnitFormatter {
     public String getGenericMethodFormat() {
         return "`%3$s%1$s(%4$s)` : `%2$s`";
     }
-    
+
     protected Optional<String> title(final J2AdocUnit unit) {
         return Optional.of(
-                String.format("%s : _%s_", 
+                String.format("%s : _%s_",
                         unit.getFriendlyName(),
                         unit.getDeclarationKeywordFriendlyName().toLowerCase()));
     }
-    
+
     protected void intro(final J2AdocUnit unit, final StructuralNode parent) {
 
         unit.getJavadoc()
@@ -93,139 +93,141 @@ implements UnitFormatter {
         .map(javadoc->getConverter().javadoc(javadoc, unit))
         .ifPresent(doc->parent.getBlocks().addAll(doc.getBlocks()));
     }
-    
+
     protected Optional<String> javaSource(final J2AdocUnit unit) {
         return Optional.empty();
     }
-    
+
     protected abstract StructuralNode getMemberDescriptionContainer(StructuralNode parent);
-    
+
     protected void appendMemberDescription(StructuralNode ul, String member, Document javadoc) {
         val li = AsciiDocFactory.listItem((List) ul, member);
         val openBlock = AsciiDocFactory.openBlock(li);
         val javaDocBlock = AsciiDocFactory.block(openBlock);
         javaDocBlock.getBlocks().addAll(javadoc.getBlocks());
     }
-    
+
     protected void memberDescriptions(final J2AdocUnit unit, final StructuralNode parent) {
-        
+
         val ul = getMemberDescriptionContainer(parent);
-        
+
         unit.getTypeDeclaration().getEnumConstantDeclarations().stream()
         .filter(Javadocs::presentAndNotHidden)
         .forEach(ecd->{
             ecd.getJavadoc()
             .ifPresent(javadoc->{
-                
-                appendMemberDescription(ul, 
+
+                appendMemberDescription(ul,
                                 getConverter().enumConstantDeclaration(ecd),
                                 getConverter().javadoc(javadoc, unit));
             });
         });
-        
+
         unit.getTypeDeclaration().getPublicFieldDeclarations().stream()
         .filter(Javadocs::presentAndNotHidden)
         .forEach(fd->{
-            
+
             fd.getJavadoc()
             .ifPresent(javadoc->{
-                
+
                 appendMemberDescription(ul,
                         getConverter().fieldDeclaration(fd, unit),
                         getConverter().javadoc(javadoc, unit));
             });
-            
+
         });
-        
+
         unit.getTypeDeclaration().getAnnotationMemberDeclarations().stream()
         .filter(Javadocs::presentAndNotHidden)
         .forEach(ecd->{
             ecd.getJavadoc()
             .ifPresent(javadoc->{
-                
-                appendMemberDescription(ul, 
+
+                appendMemberDescription(ul,
                                 getConverter().annotationMemberDeclaration(ecd, unit),
                                 getConverter().javadoc(javadoc, unit));
             });
         });
-        
+
         unit.getTypeDeclaration().getPublicConstructorDeclarations().stream()
         .filter(Javadocs::presentAndNotHidden)
         .forEach(cd->{
-            
+
             cd.getJavadoc()
             .ifPresent(javadoc->{
-                
+
                 appendMemberDescription(ul,
                         getConverter().constructorDeclaration(cd, unit),
                         getConverter().javadoc(javadoc, unit));
             });
-            
+
         });
-        
+
         unit.getTypeDeclaration().getPublicMethodDeclarations().stream()
         .filter(Javadocs::presentAndNotHidden)
         .forEach(md->{
-            
+
             md.getJavadoc()
             .ifPresent(javadoc->{
-                
+
                 appendMemberDescription(ul,
                         getConverter().methodDeclaration(md, unit),
                         getConverter().javadoc(javadoc, unit));
             });
-            
+
         });
     }
-    
+
 
     protected Optional<String> outro(final J2AdocUnit unit) {
         return Optional.empty();
     }
-    
+
 
     @Override
     public Document apply(final J2AdocUnit unit) {
-        
+
         val doc = AsciiDocFactory.doc();
-        
+
         // -- title
-        
-        title(unit)
-        .ifPresent(doc::setTitle);
-        
+
+        if(!j2aContext.isSkipTitleHeader()) {
+            title(unit)
+            .ifPresent(doc::setTitle);
+        }
+
         // -- license
-        
+
         _Strings.nonEmpty(getContext().getLicenseHeader())
         .ifPresent(notice->AsciiDocFactory.attrNotice(doc, notice));
 
         // -- intro
-        
+
         intro(unit, doc);
-        
+
         // -- java source
-        
+
         javaSource(unit)
         .ifPresent(block(doc)::setSource);
-            
+
         // -- member descriptions
-        
+
         memberDescriptions(unit, doc);
-        
+
         // -- outro
-        
+
         outro(unit)
         .ifPresent(block(doc)::setSource);
-        
+
         return doc;
     }
-    
+
     // -- DEPENDENCIES
-    
+
     protected final J2AdocContext getContext() {
         return j2aContext;
     }
-    
+
     protected final J2AdocConverter getConverter() {
         return j2aContext.getConverter();
     }
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndFootNotes.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndFootNotes.java
index 0760c06..f539e5f 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndFootNotes.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndFootNotes.java
@@ -34,86 +34,86 @@ import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
 
 import lombok.val;
 
-public class UnitFormatterWithSourceAndFootNotes 
+public class UnitFormatterWithSourceAndFootNotes
 extends UnitFormatterAbstract {
 
     public UnitFormatterWithSourceAndFootNotes(final J2AdocContext j2aContext) {
         super(j2aContext);
     }
-    
+
     protected Optional<String> javaSource(final J2AdocUnit unit) {
-        
+
         val java = new StringBuilder();
-        
-        java.append(String.format("%s %s {\n", 
-                unit.getDeclarationKeyword(), 
+
+        java.append(String.format("%s %s {\n",
+                unit.getDeclarationKeyword(),
                 unit.getSimpleName()));
-        
+
         unit.getTypeDeclaration().getEnumConstantDeclarations().stream()
         .filter(Javadocs::notExplicitlyHidden)
         .forEach(ecd->{
-            
+
             val memberFormat = javaSourceMemberFormat(ecd.getJavadoc().isPresent());
-            
-            java.append(String.format(memberFormat, 
+
+            java.append(String.format(memberFormat,
                     EnumConstantDeclarations.asNormalized(ecd)));
-            
+
         });
-        
+
         unit.getTypeDeclaration().getPublicFieldDeclarations().stream()
         .filter(Javadocs::notExplicitlyHidden)
         .forEach(fd->{
-            
+
             val memberFormat = javaSourceMemberFormat(fd.getJavadoc().isPresent());
-            
-            java.append(String.format(memberFormat, 
+
+            java.append(String.format(memberFormat,
                     FieldDeclarations.asNormalized(fd)));
-            
+
         });
-        
+
         unit.getTypeDeclaration().getAnnotationMemberDeclarations().stream()
         .filter(Javadocs::notExplicitlyHidden)
         .forEach(fd->{
-            
+
             val memberFormat = javaSourceMemberFormat(fd.getJavadoc().isPresent());
-            
-            java.append(String.format(memberFormat, 
+
+            java.append(String.format(memberFormat,
                     AnnotationMemberDeclarations.asNormalized(fd)));
-            
+
         });
-        
+
         unit.getTypeDeclaration().getPublicConstructorDeclarations().stream()
         .filter(Javadocs::notExplicitlyHidden)
         .forEach(cd->{
-            
+
             val memberFormat = javaSourceMemberFormat(cd.getJavadoc().isPresent());
-            
-            java.append(String.format(memberFormat, 
+
+            java.append(String.format(memberFormat,
                     ConstructorDeclarations.asNormalized(cd)));
-            
+
         });
-        
+
         unit.getTypeDeclaration().getPublicMethodDeclarations().stream()
         .filter(Javadocs::notExplicitlyHidden)
         .forEach(md->{
-            
+
             val memberFormat = javaSourceMemberFormat(md.getJavadoc().isPresent());
 
-            java.append(String.format(memberFormat, 
+            java.append(String.format(memberFormat,
                     MethodDeclarations.asNormalized(md)));
-            
+
         });
 
         java.append("}\n");
-        
-        
+
+
         return Optional.of(
-                AsciiDocFactory.SourceFactory.java(java.toString(), "Java Sources"));
-            
+                AsciiDocFactory.SourceFactory.java(java.toString(), unit.getCanonicalName() + ".java"));
+
     }
 
 //XXX java language syntax (for footnote text), but not used any more
-//    
+//
 //    @Override
 //    public String getEnumConstantFormat() {
 //        return "`%s`";
@@ -123,7 +123,7 @@ extends UnitFormatterAbstract {
 //    public String getFieldFormat() {
 //        return "`%s %s`";
 //    }
-//    
+//
 //    @Override
 //    public String getConstructorFormat() {
 //        return "`%s(%s)`";
@@ -149,14 +149,14 @@ extends UnitFormatterAbstract {
         val ul = AsciiDocFactory.footnotes(parent);
         return ul;
     }
-    
+
     // -- HELPER
-    
+
     private String javaSourceMemberFormat(boolean addFootnote) {
         return addFootnote
                 ? "\n  %s // <.>\n"
                 : "\n  %s\n";
     }
-    
+
 
 }
diff --git a/tooling/model4adoc/README.adoc b/tooling/model4adoc/README.adoc
index 32690ea..7af9f71 100644
--- a/tooling/model4adoc/README.adoc
+++ b/tooling/model4adoc/README.adoc
@@ -1,14 +1,14 @@
 = Tooling - Model for AsciiDoc
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-Allows for programmatic generation of ascii-doc representing document models. 
+Allows for programmatic generation of ascii-doc representing document models.
 
 NOTE: The _AsciiDoc_ name is trademarked by the https://www.eclipse.org/[_Eclipse Foundation_].
-This project is *not* part of the specification effort for _AsciiDoc_ under the 
+This project is *not* part of the specification effort for _AsciiDoc_ under the
 _AsciiDoc Working Group_. See https://projects.eclipse.org/proposals/asciidoc-language[]
-and https://accounts.eclipse.org/mailing-list/asciidoc-wg[]. However, we are happy to 
-help with transfer of source code, if any project (under the umbrella of the 
-_AsciiDoc Working Group_) is willing to take over.   
+and https://accounts.eclipse.org/mailing-list/asciidoc-wg[]. However, we are happy to
+help with transfer of source code, if any project (under the umbrella of the
+_AsciiDoc Working Group_) is willing to take over.
 
 WARNING: This is work-in-progress, no official Maven artifacts are published yet at the time of writing.
 However, snapshots are available with our nightly-builds:
@@ -20,10 +20,10 @@ Say we have a list of employees, which we want to express as ascii-doc table.
 
 [source,java]
 ----
-public static class Employee {  
-    private int id;  
-    private String firstName;  
-    private String sirName;
+public static class Employee {
+    private int id;
+    private String firstName;
+    private String surName;
     ...
 }
 
@@ -33,7 +33,7 @@ List<Employee> employees = List.of(
 );
 ----
 
-Lets generate a _Document_ model programmatically, then print it to _System.out_. 
+Lets generate a _Document_ model programmatically, then print it to _System.out_.
 
 [source,java]
 ----
@@ -58,14 +58,14 @@ Row headRow = headRow(table);
 
 cell(table, headRow, "ID");
 cell(table, headRow, "Firstname");
-cell(table, headRow, "Sirname");
+cell(table, headRow, "Surname");
 
 for(Employee employee : employees) {
-    
+
     Row row = row(table);
     cell(table, row, "" + employee.getId());
     cell(table, row, employee.getFirstName());
-    cell(table, row, employee.getSirName());
+    cell(table, row, employee.getSurName());
 }
 
 System.out.println(AsciiDocWriter.toString(doc));
@@ -83,7 +83,7 @@ A simple block corresponds to a normal paragraph.
 .Employees
 [cols="1m,3,3", options="header"]
 |===
-|ID |Firstname |Sirname 
+|ID |Firstname |Surname
 
 |1
 |Alice
@@ -104,7 +104,7 @@ A simple block corresponds to a normal paragraph.
 .Employees
 [cols="1m,3,3", options="header"]
 |===
-|ID |Firstname |Sirname 
+|ID |Firstname |Surname
 
 |1
 |Alice
@@ -130,4 +130,3 @@ https://github.com/apache-isis-committers/isis-nightly#maven[]
 ----
 
 
- 
\ No newline at end of file
diff --git a/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/NodeWriter.java b/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/NodeWriter.java
index 750d4e8..730375d 100644
--- a/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/NodeWriter.java
+++ b/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/NodeWriter.java
@@ -70,7 +70,7 @@ final class NodeWriter implements StructuralNodeVisitor {
                 .ifPresent(attrValue->printfln(":%s: %s", knownAttrKey, attrValue));
             }
         }
-        
+
         return true; // continue visit
     }
 
@@ -117,7 +117,7 @@ final class NodeWriter implements StructuralNodeVisitor {
     @Override
     public boolean blockHead(Block block, int depth) {
 
-        val style = Style.parse(block);        
+        val style = Style.parse(block);
 
         if(style.isOpenBlock()) {
             pushNewWriter(); // write the open block to a StringWriter, such that can handle empty blocks
@@ -129,13 +129,13 @@ final class NodeWriter implements StructuralNodeVisitor {
         } else if(!isContinuation) {
             if(newLineCount<=1) {
                 printNewLine();
-            }    
+            }
         }
 
         if(style.isAdmonition()) {
             if(block.getBlocks().size()>0) {
                 printfln("[%s]", block.getStyle());
-                println("====");    
+                println("====");
                 isContinuation = true; // set continuation flag, so other blocks don't add newlines
             } else {
                 printf("%s: ", block.getStyle());
@@ -162,14 +162,14 @@ final class NodeWriter implements StructuralNodeVisitor {
             bulletCount = bulletCountStack.pop();
         } else if(style.isAdmonition()){
             if(block.getBlocks().size()>0) {
-                println("====");    
+                println("====");
             }
         } else if(style.isListingBlock()) {
             println("----");
         }
     }
 
-    // -_ LIST 
+    // -_ LIST
 
     @Override
     public boolean listHead(org.asciidoctor.ast.List list, int depth) {
@@ -182,7 +182,7 @@ final class NodeWriter implements StructuralNodeVisitor {
 
         _Strings.nonEmpty(list.getTitle())
         .ifPresent(this::printBlockTitle);
-        
+
         return true; // continue visit
     }
 
@@ -195,7 +195,7 @@ final class NodeWriter implements StructuralNodeVisitor {
     public boolean listItemHead(ListItem listItem, int depth) {
 
         val isFootnoteStyle = Style.parse((org.asciidoctor.ast.List)(listItem.getParent()))
-                .isFootnoteList(); 
+                .isFootnoteList();
 
         val bullets = isFootnoteStyle
                 ? "<.>"
@@ -206,19 +206,19 @@ final class NodeWriter implements StructuralNodeVisitor {
             printfln("%s %s", bullets, listItemSource);
             return true; // continue visit
         }
-        
+
         if(_NullSafe.isEmpty(listItem.getBlocks())) {
             printfln("%s _missing listitem text_", bullets);
             return true; // continue visit
         }
-        
+
         //there is a special case, if source is blank
         //the first block replaces the source
-        
+
         //find the first block that has a source, use it and blank it out, so is not written twice
-        
-        val isFixed = _Refs.booleanRef(false); 
-        
+
+        val isFixed = _Refs.booleanRef(false);
+
         StructuralNodeTraversor.depthFirst(new BlockVisitor(block->{
             val blockSource = _Strings.nullToEmpty(block.getSource()).trim();
             if(!blockSource.isEmpty()) {
@@ -229,7 +229,7 @@ final class NodeWriter implements StructuralNodeVisitor {
             }
             return true; // continue the visit
         }), listItem);
-        
+
         if(isFixed.isFalse()) {
             printfln("%s _missing listitem text_", bullets);
         }
@@ -245,7 +245,7 @@ final class NodeWriter implements StructuralNodeVisitor {
 
     //  [cols="3m,2a", options="header"]
     //  |===
-    //  |Name of Column 1 |Name of Column 2 |Name of Column 3 
+    //  |Name of Column 1 |Name of Column 2 |Name of Column 3
     //
     //  |Cell in column 1, row 1
     //  |Cell in column 2, row 1
@@ -269,7 +269,7 @@ final class NodeWriter implements StructuralNodeVisitor {
 
         for(val headRow : table.getHeader()) {
             for(val cell : headRow.getCells()) {
-                printf("|%s ", cell.getSource());    
+                printf("|%s ", cell.getSource());
             }
             printNewLine();
         }
@@ -278,12 +278,12 @@ final class NodeWriter implements StructuralNodeVisitor {
             printNewLine(); // empty line before each row
             for(val cell : row.getCells()) {
                 //bypass newline tracking
-                printfln("|%s", cell.getSource());    
+                printfln("|%s", cell.getSource());
             }
         }
 
         println("|===");
-        
+
         return true; // continue visit
     }
 
@@ -341,15 +341,15 @@ final class NodeWriter implements StructuralNodeVisitor {
 
     private boolean hasWrittenAnythingYet = false;
     private boolean isContinuation = false;
-    private Stack<Integer> bulletCountStack = new Stack<>();
+    private final Stack<Integer> bulletCountStack = new Stack<>();
+
 
-    
     // -- EMPTY CONTINUATION BLOCK HANDLING
 
     private final static int EMPTY_CONTINUATION_BLOCK_SIZE = 8;
-    
-    private Stack<StringWriter> stringWriterStack = new Stack<>();
-    
+
+    private final Stack<StringWriter> stringWriterStack = new Stack<>();
+
     private Writer currentWriter;
     private Writer currentWriter() {
         if(currentWriter == null) {
@@ -370,7 +370,7 @@ final class NodeWriter implements StructuralNodeVisitor {
                 : stringWriterStack.peek();
         val continuationBlockAsString = sw.toString();
         if(continuationBlockAsString.length()>EMPTY_CONTINUATION_BLOCK_SIZE) {
-            writer.append(continuationBlockAsString); // write directly to the current writer, no side-effects wanted    
+            writer.append(continuationBlockAsString); // write directly to the current writer, no side-effects wanted
         }
     }
 
@@ -391,7 +391,7 @@ final class NodeWriter implements StructuralNodeVisitor {
         if(line.contains("\n")) {
             val lineIter = _Text.normalize(_Text.getLines(line)).iterator();
             while(lineIter.hasNext()) {
-                val nextLine = lineIter.next(); 
+                val nextLine = lineIter.next();
                 currentWriter().append(nextLine);
                 if(!nextLine.isEmpty()) {
                     hasWrittenAnythingYet = true;
diff --git a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_maven.java b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_maven.java
index 07fcda1..7cb98f0 100644
--- a/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_maven.java
+++ b/tooling/projectmodel/src/main/java/org/apache/isis/tooling/projectmodel/ProjectNodeFactory_maven.java
@@ -45,7 +45,7 @@ class ProjectNodeFactory_maven {
         val rootModel = modelResolver.getRootModel();
         val interpolate = false; //XXX interpolation is experimental
         val projTree = visitMavenProject(null, rootModel, modelResolver, interpolate);
-        
+
         postProcessDependencyLocation(projTree);
         postProcessDependencyVersion(projTree);
         return projTree;
@@ -60,21 +60,21 @@ class ProjectNodeFactory_maven {
         projTree.depthFirst(projModel->{
             localArtifacts.add(projModel.getArtifactCoordinates().toStringWithGroupAndId());
         });
-        
+
         projTree.depthFirst(projModel->{
             projModel.getDependencies().stream()
             .filter(dep->localArtifacts.contains(dep.getArtifactCoordinates().toStringWithGroupAndId()))
             .forEach(localDep->localDep.setLocation(Location.LOCAL));
         });
     }
-    
+
     private static void postProcessDependencyVersion(final @NonNull ProjectNode projTree) {
-        
+
         // first pass: collect external artifacts, that provide a non-empty version
         // second pass: update all external dependencies' versions
         val externalVersionByArtifact = new HashMap<String, String>();
         projTree.depthFirst(projModel->{
-            
+
             projModel.getDependencies().stream()
             .filter(dependency->dependency.getLocation().isExternal())
             .map(Dependency::getArtifactCoordinates)
@@ -84,20 +84,20 @@ class ProjectNodeFactory_maven {
                         coors.toStringWithGroupAndId(),
                         coors.getVersion());
             });
-            
+
         });
 
-        System.out.println("externalVersionbyArtifact " + externalVersionByArtifact);
+        // log.debug("externalVersionbyArtifact {}",  externalVersionByArtifact);
 
     }
-    
+
     private static ProjectNode visitMavenProject(
-            final @Nullable ProjectNode parent, 
-            final @NonNull Model mavenProj, 
+            final @Nullable ProjectNode parent,
+            final @NonNull Model mavenProj,
             final @NonNull SimpleModelResolver modelResolver,
             boolean interpolate) {
-        
-        val interpolatedProj = interpolate 
+
+        val interpolatedProj = interpolate
                 ? MavenModelFactory.interpolateModel(mavenProj, modelResolver)
                 : mavenProj;
         val projNode = toProjectNode(parent, interpolatedProj);
@@ -106,9 +106,9 @@ class ProjectNodeFactory_maven {
         }
         return projNode;
     }
-    
+
     private static ProjectNode toProjectNode(
-            final @Nullable ProjectNode parent, 
+            final @Nullable ProjectNode parent,
             final @NonNull Model mavenProj) {
         val projNode = ProjectNode.builder()
                 .parent(parent)
@@ -117,34 +117,34 @@ class ProjectNodeFactory_maven {
                 .description(_Strings.nullToEmpty(mavenProj.getDescription()))
                 .projectDirectory(mavenProj.getProjectDirectory())
                 .build();
-        
+
         mavenProj.getDependencies()
         .stream()
         .map(ProjectNodeFactory_maven::toDependency)
         .forEach(projNode.getDependencies()::add);
-        
+
         if(parent!=null) {
             parent.getChildren().add(projNode);
         }
 
         return projNode;
     }
-    
+
     private static Dependency toDependency(final @NonNull org.apache.maven.model.Dependency dependency) {
         val artifactCoordinates = ArtifactCoordinates.of(
-                dependency.getGroupId(), 
+                dependency.getGroupId(),
                 dependency.getArtifactId(),
                 dependency.getType(),
                 Optional.ofNullable(dependency.getVersion()).orElse(ArtifactCoordinates.MANAGED_VERSION) //TODO to resolve this requires interpolation
                 );
-        
+
         return Dependency.builder()
                 .artifactCoordinates(artifactCoordinates)
                 .location(Location.EXTERNAL) // just priming here to be overwritten in post-processing if required
                 .shortName(ArtifactShortNameFactory.toShortName(artifactCoordinates))
                 .build();
     }
-    
+
     static ArtifactCoordinates artifactCoordinatesOf(final @NonNull Model mavenProj) {
         val groupId = MavenModelFactory.getGroupId(mavenProj);
         val artifactId = mavenProj.getArtifactId();
@@ -152,11 +152,11 @@ class ProjectNodeFactory_maven {
         val version = MavenModelFactory.getVersion(mavenProj);
         return ArtifactCoordinates.of(groupId, artifactId, type, version);
     }
-    
+
     private static Iterable<Model> childrenOf(
-            final @NonNull Model mavenProj, 
+            final @NonNull Model mavenProj,
             final @NonNull SimpleModelResolver modelResolver) {
-        
+
         return Stream.<String>concat(
                 mavenProj.getProfiles().stream().flatMap(profile->profile.getModules().stream()),
                 mavenProj.getModules().stream())
@@ -165,8 +165,8 @@ class ProjectNodeFactory_maven {
         .filter(Objects::nonNull)
         .collect(Collectors.toList());
     }
-    
-    
 
-    
+
+
+
 }


[isis] 01/12: ISIS-2444: updating docs to use generated index

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 77ae5f7f479b41e7d60d229558595a42a0b26361
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Thu Feb 4 22:36:18 2021 +0000

    ISIS-2444: updating docs to use generated index
---
 .../modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc |  35 ++-
 .../modules/generated/pages/system-overview.adoc   |  46 +--
 .../domain-services.adoc                           |   4 +-
 .../inject-services.adoc                           |   2 +-
 .../pages/overview/types-of-domain-objects.adoc    |   4 -
 .../userguide/modules/fun/pages/view-models.adoc   |   1 -
 .../Action/associateWith.adoc                      |   0
 .../Action/commandPublishing.adoc                  |   0
 .../Action/domainEvent.adoc                        |   0
 .../Action/executionPublishing.adoc                |   0
 .../Action/hidden.adoc                             |   0
 .../Action/restrictTo.adoc                         |   0
 .../Action/semantics.adoc                          |   0
 .../Action/typeOf.adoc                             |   0
 .../ActionLayout/bookmarking.adoc                  |   0
 .../ActionLayout/cssClass.adoc                     |   0
 .../ActionLayout/cssClassFa.adoc                   |   0
 .../ActionLayout/describedAs.adoc                  |   0
 .../ActionLayout/hidden.adoc                       |   0
 .../ActionLayout/named.adoc                        |   0
 .../ActionLayout/position.adoc                     |   0
 .../ActionLayout/promptStyle.adoc                  |   0
 .../ActionLayout/redirect.adoc                     |   0
 .../Collection/domainEvent.adoc                    |   0
 .../Collection/hidden.adoc                         |   0
 .../Collection/typeOf.adoc                         |   0
 .../CollectionLayout/cssClass.adoc                 |   0
 .../CollectionLayout/defaultView.adoc              |   0
 .../CollectionLayout/describedAs.adoc              |   0
 .../CollectionLayout/hidden.adoc                   |   0
 .../CollectionLayout/named.adoc                    |   0
 .../CollectionLayout/paged.adoc                    |   0
 .../CollectionLayout/sortedBy.adoc                 |   0
 .../DomainObject/actionDomainEvent.adoc            |   0
 .../DomainObject/autoCompleteRepository.adoc       |   0
 .../DomainObject/bounding.adoc                     |   0
 .../DomainObject/collectionDomainEvent.adoc        |   0
 .../DomainObject/createdLifecycleEvent.adoc        |   0
 .../DomainObject/editing.adoc                      |   0
 .../DomainObject/entityChangePublishing.adoc       |   0
 .../DomainObject/loadedLifecycleEvent.adoc         |   0
 .../DomainObject/mixinMethod.adoc                  |   0
 .../DomainObject/nature.adoc                       |   2 +-
 .../DomainObject/objectType.adoc                   |   0
 .../DomainObject/persistedLifecycleEvent.adoc      |   0
 .../DomainObject/persistingLifecycleEvent.adoc     |   0
 .../DomainObject/propertyDomainEvent.adoc          |   0
 .../DomainObject/removingLifecycleEvent.adoc       |   0
 .../DomainObject/updatedLifecycleEvent.adoc        |   0
 .../DomainObject/updatingLifecycleEvent.adoc       |   0
 .../DomainObjectLayout/bookmarking.adoc            |   0
 .../DomainObjectLayout/cssClass.adoc               |   0
 .../DomainObjectLayout/cssClassFa.adoc             |   0
 .../DomainObjectLayout/cssClassUiEvent.adoc        |   0
 .../DomainObjectLayout/describedAs.adoc            |   0
 .../DomainObjectLayout/iconUiEvent.adoc            |   0
 .../DomainObjectLayout/layoutUiEvent.adoc          |   0
 .../DomainObjectLayout/named.adoc                  |   0
 .../DomainObjectLayout/paged.adoc                  |   0
 .../DomainObjectLayout/plural.adoc                 |   0
 .../DomainObjectLayout/titleUiEvent.adoc           |   0
 .../DomainService/nature.adoc                      |   0
 .../DomainService/objectType.adoc                  |   0
 .../DomainServiceLayout/menuBar.adoc               |   0
 .../DomainServiceLayout/named.adoc                 |   0
 .../MemberOrder/name.adoc                          |   0
 .../MemberOrder/sequence.adoc                      |   0
 .../Parameter/fileAccept.adoc                      |   0
 .../Parameter/maxLength.adoc                       |   0
 .../Parameter/mustSatisfy.adoc                     |   0
 .../Parameter/optionality.adoc                     |   0
 .../Parameter/regexPattern.adoc                    |   0
 .../ParameterLayout/cssClass.adoc                  |   0
 .../ParameterLayout/describedAs.adoc               |   0
 .../ParameterLayout/labelPosition.adoc             |   0
 .../ParameterLayout/multiLine.adoc                 |   0
 .../ParameterLayout/named.adoc                     |   0
 .../ParameterLayout/renderDay.adoc                 |   0
 .../ParameterLayout/typicalLength.adoc             |   0
 .../Property/commandPublishing.adoc                |   0
 .../Property/domainEvent.adoc                      |   0
 .../Property/editing.adoc                          |   0
 .../Property/executionPublishing.adoc              |   0
 .../Property/fileAccept.adoc                       |   0
 .../Property/hidden.adoc                           |   0
 .../Property/maxLength.adoc                        |   0
 .../Property/mustSatisfy.adoc                      |   0
 .../Property/optionality.adoc                      |   0
 .../Property/projecting.adoc                       |   0
 .../Property/regexPattern.adoc                     |   0
 .../Property/snapshot.adoc                         |   0
 .../PropertyLayout/cssClass.adoc                   |   0
 .../PropertyLayout/describedAs.adoc                |   0
 .../PropertyLayout/hidden.adoc                     |   0
 .../PropertyLayout/labelPosition.adoc              |   0
 .../PropertyLayout/multiLine.adoc                  |   0
 .../PropertyLayout/named.adoc                      |   0
 .../PropertyLayout/navigable.adoc                  |   0
 .../PropertyLayout/promptStyle.adoc                |   0
 .../PropertyLayout/renderDay.adoc                  |   0
 .../PropertyLayout/repainting.adoc                 |   0
 .../PropertyLayout/typicalLength.adoc              |   0
 .../main/adoc/modules/applib-ant/pages/Action.adoc | 116 ++++----
 .../modules/applib-ant/pages/ActionLayout.adoc     |  91 +++---
 .../adoc/modules/applib-ant/pages/Collection.adoc  |  42 ++-
 .../modules/applib-ant/pages/CollectionLayout.adoc |  97 ++++---
 .../modules/applib-ant/pages/DomainObject.adoc     | 316 ++++++++++++---------
 .../applib-ant/pages/DomainObjectLayout.adoc       | 176 ++++++------
 .../modules/applib-ant/pages/DomainService.adoc    |  36 ++-
 .../applib-ant/pages/DomainServiceLayout.adoc      |  54 ++--
 .../main/adoc/modules/applib-ant/pages/Facets.adoc |   9 +-
 .../adoc/modules/applib-ant/pages/HomePage.adoc    |   9 +-
 .../modules/applib-ant/pages/InteractionScope.adoc |  28 ++
 .../modules/applib-ant/pages/IsisSessionScope.adoc |  28 --
 .../adoc/modules/applib-ant/pages/MemberOrder.adoc |  32 +--
 .../adoc/modules/applib-ant/pages/MinLength.adoc   |   9 +-
 .../modules/applib-ant/pages/NotPersistent.adoc    |   2 +-
 .../adoc/modules/applib-ant/pages/Parameter.adoc   |  84 +++---
 .../modules/applib-ant/pages/ParameterLayout.adoc  | 112 ++++----
 .../adoc/modules/applib-ant/pages/Property.adoc    | 184 ++++++------
 .../modules/applib-ant/pages/PropertyLayout.adoc   | 156 +++++-----
 .../main/adoc/modules/applib-ant/pages/Title.adoc  |  12 +-
 .../main/adoc/modules/applib-ant/pages/about.adoc  |   1 +
 .../adoc/modules/applib-ant/pages/about/jdo.adoc   |   5 +-
 .../pages/about/jpa.adoc}                          |   7 +-
 .../adoc/modules/applib-ant/pages/view-models.adoc |  74 -----
 .../modules/applib-ant/partials/module-nav.adoc    |   2 +-
 .../modules/applib-classes/pages/ViewModel.adoc    |   8 +-
 .../AuditerService.adoc                            |   0
 .../applib-svc/pages/AcceptHeaderService.adoc      |  24 +-
 .../pages/ApplicationFeatureRepository.adoc        |  31 +-
 .../modules/applib-svc/pages/BookmarkService.adoc  |  58 +---
 .../applib-svc/pages/BookmarkUiService.adoc        |  20 --
 .../modules/applib-svc/pages/ClockService.adoc     |  16 --
 .../modules/applib-svc/pages/LocaleProvider.adoc   |   2 +-
 .../modules/applib-svc/pages/MetricsService.adoc   |   2 +-
 .../adoc/modules/applib-svc/pages/Scratchpad.adoc  |   2 +-
 .../org/apache/isis/applib/annotation/Action.java  |   6 +-
 .../apache/isis/applib/annotation/Parameter.java   |   4 +-
 .../isis/applib/annotation/ParameterLayout.java    |   5 +-
 .../apache/isis/applib/annotation/Property.java    |   6 +-
 .../isis/applib/annotation/PropertyLayout.java     |   2 +-
 .../org/apache/isis/applib/annotation/Title.java   |  10 +-
 .../services/acceptheader/AcceptHeaderService.java |   8 +
 .../services/bookmarkui/BookmarkUiService.java     |   7 +-
 145 files changed, 909 insertions(+), 1078 deletions(-)

diff --git a/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc b/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc
index 56d1c38..e8bb639 100644
--- a/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc
+++ b/antora/components/relnotes/modules/ROOT/pages/2020/2.0.0-M5/mignotes.adoc
@@ -216,7 +216,7 @@ CommandServiceInternal -> CommandPublisher
 * Interaction related classes have been moved to module `core/interaction`.
 * Transaction related classes have been moved to module `core/transaction`.
 * JDO classes have been split up into several modules under `persistence/jdo/`.
-* Multiple `Exception` classes have been relocated at `org.apache.isis.applib.exceptions`  
+* Multiple `Exception` classes have been relocated at `org.apache.isis.applib.exceptions`
 
 [cols="3m,3m", options="header"]
 
@@ -225,7 +225,7 @@ CommandServiceInternal -> CommandPublisher
 | was
 | new
 
-| ApplicationException (removed) 
+| ApplicationException (removed)
 | removed, adds no new semantics compared to the already existing RecoverableException
 
 | AuthenticationSession
@@ -234,10 +234,10 @@ CommandServiceInternal -> CommandPublisher
 | AuthenticationSessionStrategy
 | AuthenticationStrategy
 
-| AuthenticationSessionStrategyBasicAuth (*1*)
+| AuthenticationSessionStrategyBasicAuth.footnote:[These might be in use with configuration files, check yours!]
 | AuthenticationStrategyBasicAuth
 
-| AuthenticationSessionStrategyDefault (*1*)
+| AuthenticationSessionStrategyDefault.footnote:[These might be in use with configuration files, check yours!]
 | AuthenticationStrategyDefault
 
 | AuthenticationSessionTracker#getInteraction : Interaction
@@ -246,12 +246,12 @@ CommandServiceInternal -> CommandPublisher
 | Clock (moved from applib module to fixture-applib module)
 | VirtualClock (introduced)
 
-| FatalException (removed) 
+| FatalException (removed)
 | removed, adds no new semantics compared to the already existing UnrecoverableException
 
 | HoldsUpdatedBy, HoldsUpdatedAt, Timestampable
 | moved to 'commons' and renamed:
- HasUpdatedBy, 
+ HasUpdatedBy,
  HasUpdatedAt,
  HasUpdatedByAndAt
 
@@ -262,7 +262,7 @@ CommandServiceInternal -> CommandPublisher
 | removed, use IsisModuleJdoDatanucleus instead (symmetry with JPA/IsisModuleJpaEclipselink)
 
 | IsisJdoSupport, IsisJdoSupport_v3_2
-| removed, use JdoSupportService instead (symmetry with JPA/JpaSupportService) 
+| removed, use JdoSupportService instead (symmetry with JPA/JpaSupportService)
 
 | InteractionClosure
 | AuthenticationLayer
@@ -317,7 +317,6 @@ Query.named(CommandJdo.class, "findByParent") +
 
 |===
 
-<1> These might be in use with configuration files, check yours!
 
 == Deprecations
 
@@ -332,7 +331,7 @@ validity of the used constructor rather than doing construction reflective at ru
 
 == Extensions
 
-Object type namespaces have been renamed. 
+Object type namespaces have been renamed.
 
 WARNING: check menubars.layout.xml for any occurrences
 
@@ -365,7 +364,7 @@ WARNING: check menubars.layout.xml for any occurrences
 
 === SecMan (Extension)
 
-Permission are now matched against logical packages, logical object types or logical object member names and use the former fully qualified names only as fallback. 
+Permission are now matched against logical packages, logical object types or logical object member names and use the former fully qualified names only as fallback.
 
 [cols="3m,3m,3a", options="header"]
 |===
@@ -381,26 +380,26 @@ Permission are now matched against logical packages, logical object types or log
 WARNING: check menubars.layout.xml for any occurrences
 
 | Default Regular User Role Name
-| isis-module-security-regular-user 
+| isis-module-security-regular-user
 | secman-regular-user
 
-| Default Fixture Role Name 
-| isis-module-security-fixtures 
+| Default Fixture Role Name
+| isis-module-security-fixtures
 | secman-fixtures
 
 | Default Admin Role Name
-| isis-module-security-admin 
+| isis-module-security-admin
 | secman-admin
 
 | Default Admin User Name
-| isis-module-security-admin 
+| isis-module-security-admin
 | secman-admin
 
-| Class 
-| SecurityModuleConfig 
+| Class
+| SecurityModuleConfig
 | SecmanConfiguration
 
-| Option 
+| Option
 | SecurityModuleConfig#adminAdditionalPackagePermission
 | SecmanConfiguration#adminAdditionalNamespacePermission
 
diff --git a/antora/components/system/modules/generated/pages/system-overview.adoc b/antora/components/system/modules/generated/pages/system-overview.adoc
index 5b18b1e..96fb4c3 100644
--- a/antora/components/system/modules/generated/pages/system-overview.adoc
+++ b/antora/components/system/modules/generated/pages/system-overview.adoc
@@ -1415,6 +1415,7 @@ _Components_
 * o.a.i.core.config.beans.IsisBeanFactoryPostProcessorForSpring
 * o.a.i.core.config.beans.IsisBeanTypeRegistryDefault
 * o.a.i.core.config.converters.PatternsConverter
+* o.a.i.core.config.datasources.DataSourceIntrospectionService
 * o.a.i.core.config.environment.IsisLocaleInitializer
 * o.a.i.core.config.environment.IsisSystemEnvironment
 * o.a.i.core.config.environment.IsisTimeZoneInitializer
@@ -1547,7 +1548,7 @@ Folder: \core\runtime
 
 _Components_
 
-* o.a.i.core.runtime.events.AppLifecycleEventService
+* o.a.i.core.runtime.events.MetamodelEventService
 * o.a.i.core.runtime.events.TransactionEventEmitter
 
 _Dependencies_
@@ -1576,12 +1577,11 @@ _Components_
 * o.a.i.core.runtimeservices.confmenu.ConfigurationViewServiceDefault
 * o.a.i.core.runtimeservices.email.EmailServiceDefault
 * o.a.i.core.runtimeservices.eventbus.EventBusServiceSpring
-* o.a.i.core.runtimeservices.exceprecog.ExceptionRecognizerServiceDefault
 * o.a.i.core.runtimeservices.executor.MemberExecutorServiceDefault
 * o.a.i.core.runtimeservices.factory.FactoryServiceDefault
 * o.a.i.core.runtimeservices.homepage.HomePageResolverServiceDefault
 * o.a.i.core.runtimeservices.i18n.po.TranslationServicePo
-* o.a.i.core.runtimeservices.ixn.InteractionDtoServiceInternalDefault
+* o.a.i.core.runtimeservices.interaction.InteractionDtoServiceInternalDefault
 * o.a.i.core.runtimeservices.jaxb.JaxbServiceDefault
 * o.a.i.core.runtimeservices.menubars.MenuBarsLoaderServiceDefault
 * o.a.i.core.runtimeservices.menubars.bootstrap3.MenuBarsServiceBS3
@@ -1591,17 +1591,23 @@ _Components_
 * o.a.i.core.runtimeservices.publish.EntityPropertyChangePublisherDefault
 * o.a.i.core.runtimeservices.publish.ExecutionPublisherDefault
 * o.a.i.core.runtimeservices.queryresultscache.QueryResultsCacheDefault
+* o.a.i.core.runtimeservices.recognizer.ExceptionRecognizerServiceDefault
+* o.a.i.core.runtimeservices.recognizer.dae.impl.ExceptionRecognizerForDataAlreadyExists
+* o.a.i.core.runtimeservices.recognizer.dae.impl.ExceptionRecognizerForObjectNotFound
+* o.a.i.core.runtimeservices.recognizer.dae.impl.ExceptionRecognizerForOtherDataAccessProblem
+* o.a.i.core.runtimeservices.recognizer.dae.impl.ExceptionRecognizerForRelatedDataExists
+* o.a.i.core.runtimeservices.recognizer.dae.impl.ExceptionRecognizerForUnableToSaveData
 * o.a.i.core.runtimeservices.repository.RepositoryServiceDefault
 * o.a.i.core.runtimeservices.routing.RoutingServiceDefault
 * o.a.i.core.runtimeservices.scratchpad.ScratchpadDefault
 * o.a.i.core.runtimeservices.session.InteractionFactoryDefault
 * o.a.i.core.runtimeservices.sudo.SudoServiceDefault
+* o.a.i.core.runtimeservices.transaction.TransactionServiceSpring
 * o.a.i.core.runtimeservices.urlencoding.UrlEncodingServiceWithCompression
 * o.a.i.core.runtimeservices.user.UserServiceDefault
 * o.a.i.core.runtimeservices.userprof.UserProfileServiceDefault
 * o.a.i.core.runtimeservices.userreg.EmailNotificationServiceDefault
 * o.a.i.core.runtimeservices.wrapper.WrapperFactoryDefault
-* o.a.i.core.runtimeservices.xactn.TransactionServiceSpring
 * o.a.i.core.runtimeservices.xml.XmlServiceDefault
 * o.a.i.core.runtimeservices.xmlsnapshot.XmlSnapshotServiceDefault
 
@@ -1858,12 +1864,10 @@ Folder: \persistence\jdo\datanucleus
 _Components_
 
 * o.a.i.persistence.jdo.datanucleus.config.DnEntityDiscoveryListener
-* o.a.i.persistence.jdo.datanucleus.config.DnSettings
 * o.a.i.persistence.jdo.datanucleus.entities.DnEntityStateProvider
-* o.a.i.persistence.jdo.datanucleus.exceptions.recognizers.ExceptionRecognizerForJDODataStoreException
-* o.a.i.persistence.jdo.datanucleus.exceptions.recognizers.ExceptionRecognizerForJDODataStoreExceptionIntegrityConstraintViolationForeignKeyNoActionException
-* o.a.i.persistence.jdo.datanucleus.exceptions.recognizers.ExceptionRecognizerForJDOObjectNotFoundException
-* o.a.i.persistence.jdo.datanucleus.exceptions.recognizers.ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException
+* o.a.i.persistence.jdo.datanucleus.jdosupport.JdoSupportServiceDefault
+* o.a.i.persistence.jdo.datanucleus.metamodel.JdoDataNucleusProgrammingModel
+* o.a.i.persistence.jdo.datanucleus.schema.JdoSchemaService
 
 _Dependencies_
 
@@ -1893,12 +1897,6 @@ Folder: \persistence\jdo\integration
 ----
 |JDO Integration (powered by DataNucleus)
 
-_Components_
-
-* o.a.i.persistence.jdo.integration.jdosupport.IsisJdoSupportDN5
-* o.a.i.persistence.jdo.integration.metamodel.JdoIntegrationProgrammingModel
-* o.a.i.persistence.jdo.integration.schema.JdoSchemaService
-
 _Dependencies_
 
 * org.apache.isis.commons:isis-commons:jar:<managed>
@@ -2117,6 +2115,10 @@ Folder: \persistence\jpa\metamodel
 ----
 |JPA Metamodel Facets / Programming Model
 
+_Components_
+
+* o.a.i.persistence.jpa.metamodel.JpaProgrammingModel
+
 _Dependencies_
 
 * org.apache.isis.core:isis-core-internaltestsupport:jar:<managed>
@@ -3508,12 +3510,12 @@ skinparam {
   maxMessageSize 100
 }
 hide stereotype
-skinparam rectangle<<22>> {
+skinparam rectangle<<11>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<11>> {
+skinparam rectangle<<22>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
@@ -3995,7 +3997,15 @@ Artifact: isis-extensions-secman-persistence-jpa
 Type: jar
 Folder: \extensions\security\secman\persistence-jpa
 ----
-|_Dependencies_
+|_Components_
+
+* o.a.i.extensions.secman.jpa.dom.permission.ApplicationPermissionRepository
+* o.a.i.extensions.secman.jpa.dom.role.ApplicationRoleRepository
+* o.a.i.extensions.secman.jpa.dom.tenancy.ApplicationTenancyRepository
+* o.a.i.extensions.secman.jpa.dom.user.ApplicationUserRepository
+* o.a.i.extensions.secman.jpa.seed.SeedSecurityModuleService
+
+_Dependencies_
 
 * org.apache.isis.core:isis-core-runtime:jar:<managed>
 * org.apache.isis.extensions:isis-extensions-secman-api:jar:<managed>
diff --git a/api/adoc/userguide/modules/fun/pages/domain-entities-and-services/domain-services.adoc b/api/adoc/userguide/modules/fun/pages/domain-entities-and-services/domain-services.adoc
index f3452c2..22c817a 100644
--- a/api/adoc/userguide/modules/fun/pages/domain-entities-and-services/domain-services.adoc
+++ b/api/adoc/userguide/modules/fun/pages/domain-entities-and-services/domain-services.adoc
@@ -23,7 +23,7 @@ This section looks at the programming model for writing your own domain services
 == Nature of Service
 
 Apache Isis uses Spring Boot to instantiate and manage the dependency injection of domain services.
-The vast majority of these are singleton (application) scoped; a smaller number are request scoped (using the xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`] annotation).
+The vast majority of these are singleton (application) scoped; a smaller number are request scoped (using the xref:refguide:applib-ant:InteractionScope.adoc[`@IsisSessionScope`] annotation).
 
 Accordingly, all domain services are annotated or meta-annotated using Spring's link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/stereotype/Component.html[`@Component`] annotation.
 
@@ -198,7 +198,7 @@ Sometimes though a service's lifetime is applicable only to a single (http) requ
 The framework has a number of such services, including a xref:refguide:applib-svc:Scratchpad.adoc[`Scratchpad`] service (to share adhoc data between methods), and xref:refguide:applib-svc:QueryResultsCache.adoc[`QueryResultsCache`], which as its name suggests will cache query results.
 Such services _do_ hold state, but that state is scoped per (possibly concurrent) request and should be removed afterwards.
 
-The requirement for request-scoped services is supported using Apache Isis' own xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`] annotation (named because a short-lived `IsisSession` is created for each request).
+The requirement for request-scoped services is supported using Apache Isis' own xref:refguide:applib-ant:InteractionScope.adoc[`@IsisSessionScope`] annotation (named because a short-lived `IsisSession` is created for each request).
 This is used by the framework services and can also be used for user-defined services.
 
 For example:
diff --git a/api/adoc/userguide/modules/fun/pages/domain-entities-and-services/inject-services.adoc b/api/adoc/userguide/modules/fun/pages/domain-entities-and-services/inject-services.adoc
index e33ed38..be0cab6 100644
--- a/api/adoc/userguide/modules/fun/pages/domain-entities-and-services/inject-services.adoc
+++ b/api/adoc/userguide/modules/fun/pages/domain-entities-and-services/inject-services.adoc
@@ -177,7 +177,7 @@ All other implementations available will also be called.
 
 Most domain services are application-scoped, in other words they are stateless global singletons that are shared by all concurrent requests.
 
-A small number of framework-provided services are annotated using xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`].
+A small number of framework-provided services are annotated using xref:refguide:applib-ant:InteractionScope.adoc[`@IsisSessionScope`].
 This means that they are stateful and scoped with each isis session, in other words HTTP request.
 One such service is xref:refguide:applib-svc:QueryResultsCache.adoc[`QueryResultsCache`], used for performance caching.
 
diff --git a/api/adoc/userguide/modules/fun/pages/overview/types-of-domain-objects.adoc b/api/adoc/userguide/modules/fun/pages/overview/types-of-domain-objects.adoc
index 6b60dbb..5de8ce9 100644
--- a/api/adoc/userguide/modules/fun/pages/overview/types-of-domain-objects.adoc
+++ b/api/adoc/userguide/modules/fun/pages/overview/types-of-domain-objects.adoc
@@ -209,10 +209,6 @@ Almost all of these recommend exposing only DTOs (which is to say view models),
 To support this use case, a view model can be defined such that it can act as a DTO.
 This is done by annotating the class using JAXB annotations; this allows the consumer to obtain the DTO in XML format along with a corresponding XSD schema describing the structure of that XML.
 
-//[TIP]
-//====
-//Details of how to consume such DTOs, eg within an ESB such as link:http://camel.apache.org[Apache Camel(TM)], can be found xref:userguide:fun:view-models.adoc#dto-consumers[here].
-//====
 
 These DTOs are still usable as "regular" view models; they will render in the xref:vw:ROOT:about.adoc[Wicket viewer] just like any other.
 In fact (as the xref:userguide:fun:view-models.adoc#jaxb[programming model] section below makes clear), these JAXB-annotated view models are in many regards the most powerful of all the alternative ways of writing view models.
diff --git a/api/adoc/userguide/modules/fun/pages/view-models.adoc b/api/adoc/userguide/modules/fun/pages/view-models.adoc
index fef7075..4f643dc 100644
--- a/api/adoc/userguide/modules/fun/pages/view-models.adoc
+++ b/api/adoc/userguide/modules/fun/pages/view-models.adoc
@@ -138,7 +138,6 @@ public class CompareCustomers {
 }
 ----
 
-// This capability is particularly useful when the JAXB view model is being used as a xref:userguide:fun:view-models.adoc#dto[DTO].
 
 [[joda-datatypes]]
 === JODA Time Datatypes
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/associateWith.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/associateWith.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Action/associateWith.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/associateWith.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/commandPublishing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/commandPublishing.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Action/commandPublishing.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/commandPublishing.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/domainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/domainEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Action/domainEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/domainEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/executionPublishing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/executionPublishing.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Action/executionPublishing.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/executionPublishing.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/hidden.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Action/hidden.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/hidden.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/restrictTo.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/restrictTo.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Action/restrictTo.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/restrictTo.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/semantics.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/semantics.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Action/semantics.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/semantics.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action/typeOf.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/typeOf.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Action/typeOf.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Action/typeOf.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/bookmarking.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/bookmarking.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/bookmarking.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/bookmarking.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/cssClass.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClass.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/cssClass.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClassFa.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/cssClassFa.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/cssClassFa.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/cssClassFa.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/describedAs.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/describedAs.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/describedAs.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/hidden.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/hidden.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/hidden.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/named.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/named.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/named.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/position.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/position.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/position.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/position.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/promptStyle.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/promptStyle.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/promptStyle.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/promptStyle.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/redirect.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/redirect.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout/redirect.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ActionLayout/redirect.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/domainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/domainEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Collection/domainEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/domainEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/hidden.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Collection/hidden.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/hidden.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection/typeOf.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/typeOf.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Collection/typeOf.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Collection/typeOf.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/cssClass.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/cssClass.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/cssClass.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/defaultView.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/defaultView.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/defaultView.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/defaultView.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/describedAs.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/describedAs.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/describedAs.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/hidden.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/hidden.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/hidden.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/named.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/named.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/named.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/paged.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/paged.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/paged.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/paged.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/sortedBy.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/sortedBy.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout/sortedBy.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/CollectionLayout/sortedBy.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/actionDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/actionDomainEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/actionDomainEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/actionDomainEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/autoCompleteRepository.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/autoCompleteRepository.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/autoCompleteRepository.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/autoCompleteRepository.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/bounding.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/bounding.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/bounding.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/bounding.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/collectionDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/collectionDomainEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/collectionDomainEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/collectionDomainEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/createdLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/createdLifecycleEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/createdLifecycleEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/createdLifecycleEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/editing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/editing.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/editing.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/editing.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/entityChangePublishing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/entityChangePublishing.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/entityChangePublishing.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/entityChangePublishing.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/loadedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/loadedLifecycleEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/loadedLifecycleEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/loadedLifecycleEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/mixinMethod.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/mixinMethod.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/mixinMethod.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/mixinMethod.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/nature.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/nature.adoc
similarity index 97%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/nature.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/nature.adoc
index c6bbc65..39d8933 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/nature.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/nature.adoc
@@ -68,7 +68,7 @@ The benefit of `nature()` is that it allows the developer to properly characteri
 
 [NOTE]
 ====
-On the other hand, view models defined in this way do have some limitations; see xref:refguide:applib-ant:view-models.adoc[`View Model`] for further discussion.
+On the other hand, view models defined in this way do have some limitations; see xref:refguide:applib-ant:DomainObject.adoc#view-models[View Models] for further discussion.
 
 These limitations do _not_ apply to xref:userguide:fun:view-models.adoc#jaxb[JAXB] view models.
 If you are using view models heavily, you may wish to restrict yourself to just the JAXB flavour.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/objectType.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/objectType.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/objectType.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/objectType.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/persistedLifecycleEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistedLifecycleEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/persistedLifecycleEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/persistingLifecycleEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/persistingLifecycleEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/persistingLifecycleEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/propertyDomainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/propertyDomainEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/propertyDomainEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/propertyDomainEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/removingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/removingLifecycleEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/removingLifecycleEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/removingLifecycleEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatedLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/updatedLifecycleEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatedLifecycleEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/updatedLifecycleEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatingLifecycleEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/updatingLifecycleEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject/updatingLifecycleEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObject/updatingLifecycleEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/bookmarking.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/bookmarking.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/bookmarking.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/bookmarking.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClass.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClass.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClass.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassFa.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClassFa.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassFa.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClassFa.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClassUiEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/cssClassUiEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/cssClassUiEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/describedAs.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/describedAs.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/describedAs.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/iconUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/iconUiEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/iconUiEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/iconUiEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/layoutUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/layoutUiEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/layoutUiEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/layoutUiEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/named.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/named.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/named.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/paged.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/paged.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/paged.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/paged.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/plural.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/plural.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/plural.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/plural.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/titleUiEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/titleUiEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout/titleUiEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainObjectLayout/titleUiEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/nature.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainService/nature.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/nature.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainService/nature.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/objectType.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainService/objectType.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainService/objectType.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainService/objectType.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuBar.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainServiceLayout/menuBar.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/menuBar.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainServiceLayout/menuBar.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainServiceLayout/named.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout/named.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/DomainServiceLayout/named.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/name.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/MemberOrder/name.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/name.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/MemberOrder/name.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/sequence.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/MemberOrder/sequence.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder/sequence.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/MemberOrder/sequence.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/fileAccept.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/fileAccept.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/fileAccept.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/fileAccept.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/maxLength.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/maxLength.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/maxLength.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/maxLength.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/mustSatisfy.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/mustSatisfy.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/mustSatisfy.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/mustSatisfy.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/optionality.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/optionality.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/optionality.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/optionality.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/regexPattern.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/regexPattern.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Parameter/regexPattern.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Parameter/regexPattern.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/cssClass.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/cssClass.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/cssClass.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/describedAs.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/describedAs.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/describedAs.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/labelPosition.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/labelPosition.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/labelPosition.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/labelPosition.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/multiLine.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/multiLine.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/multiLine.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/multiLine.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/named.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/named.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/named.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/renderDay.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/renderDay.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/renderDay.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/renderDay.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/typicalLength.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/typicalLength.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout/typicalLength.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/ParameterLayout/typicalLength.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/commandPublishing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/commandPublishing.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/commandPublishing.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/commandPublishing.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/domainEvent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/domainEvent.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/domainEvent.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/domainEvent.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/editing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/editing.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/editing.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/editing.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/executionPublishing.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/executionPublishing.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/executionPublishing.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/executionPublishing.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/fileAccept.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/fileAccept.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/fileAccept.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/fileAccept.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/hidden.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/hidden.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/hidden.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/maxLength.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/maxLength.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/maxLength.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/maxLength.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/mustSatisfy.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/mustSatisfy.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/mustSatisfy.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/mustSatisfy.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/optionality.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/optionality.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/optionality.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/optionality.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/projecting.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/projecting.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/projecting.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/projecting.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/regexPattern.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/regexPattern.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/regexPattern.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/regexPattern.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property/snapshot.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/snapshot.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/Property/snapshot.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/Property/snapshot.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/cssClass.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/cssClass.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/cssClass.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/cssClass.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/describedAs.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/describedAs.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/describedAs.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/describedAs.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/hidden.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/hidden.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/hidden.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/hidden.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/labelPosition.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/labelPosition.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/labelPosition.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/labelPosition.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/multiLine.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/multiLine.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/multiLine.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/multiLine.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/named.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/named.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/named.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/named.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/navigable.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/navigable.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/navigable.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/promptStyle.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/promptStyle.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/promptStyle.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/promptStyle.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/renderDay.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/renderDay.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/renderDay.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/renderDay.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/repainting.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/repainting.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/repainting.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/repainting.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/typicalLength.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/typicalLength.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout/typicalLength.adoc
rename to api/applib/src/main/adoc/modules/applib-ant/pages-no-longer-referenced-since-projdoc-tooling/PropertyLayout/typicalLength.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Action.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Action.adoc
index a2923bc..bbd69f1 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Action.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Action.adoc
@@ -1,57 +1,55 @@
-[#Action]
-= `@Action`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
-The `@Action` annotation groups together all domain-specific metadata for an invokable action on a domain object or domain service.
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/Action.java[tags="refguide"]
-----
-
-<.> xref:refguide:applib-ant:Action.adoc#associateWith[`associateWith()`]
-+
-associates an action with another property or collection of the action.
-
-<.> `associateWithSequence()`
-+
-the ordering of multiple actions associated with another property/collection.
-
-<.> `commandDtoProcessor()`
-+
-If the xref:extensions:command-replay:about.adoc[Command Replay] extension is being used (for regression testing), provides a mechanism to process the `CommandDto` before being replicated from primary to secondary system
-
-<.> xref:refguide:applib-ant:Action.adoc#commandPublishing[`commandPublishing()`]
-+
-Whether the action invocation should be published to registered xref:refguide:applib-svc:CommandSubscriber.adoc[`CommandSubscriber`]s as a `Command` object, that captures the details of this invocation. Typically so it can be logged using the xref:extensions:command-log:about.adoc[Command Log] extension (for auditing or for regression testing using xref:extensions:command-replay:about.adoc[Command Replay]).
-
-<.> xref:refguide:applib-ant:Action.adoc#domainEvent[`domainEvent()`]
-+
-The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] to broadcast the action's business rule checking (hide, disable, validate) and its invocation (pre-execute and post-execute).
-
-<.> xref:refguide:applib-ant:Action.adoc#executionPublishing[`executionPublishing()`]
-+
-Whether the action invocation should be published to registered xref:refguide:applib-svc:ExecutionSubscriber.adoc[`ExecutionSubscriber`]s as an `Execution` object, that captures the details of this invocation.
-
-<.> xref:refguide:applib-ant:Action.adoc#hidden[`hidden()`]
-+
-Indicates where (in the UI) the action should be hidden from the user.
-
-<.> xref:refguide:applib-ant:Action.adoc#restrictTo[`restrictTo()`]
-+
-Whether the action is only available in prototyping mode, or whether it is available also in production mode.
-
-<.> xref:refguide:applib-ant:Action.adoc#semantics[`semantics()`]
-+
-The action's semantics (ie whether objects are modified as the result of invoking this action, and if so whether reinvoking the action would result in no further change; if not whether the results can be cached for the remainder of the request).
-+
-The `...ARE_YOU_SURE` variants cause a confirmation dialog to be displayed in the xref:vw:ROOT:about.adoc[Wicket viewer].
-
-<.> xref:refguide:applib-ant:Action.adoc#typeOf[`typeOf()`]
-+
-If the action returns a collection, hints as to the run-time type of the objects within that collection (as a fallback)
+[#Action]
+include::system:generated:page$index/applib/annotation/Action.adoc[]
+
+
+// TODO - v2 to reconcile with .java (or maybe just delete)
+
+//<.> xref:refguide:applib-ant:Action.adoc#associateWith[`associateWith()`]
+//+
+//associates an action with another property or collection of the action.
+//
+//<.> `associateWithSequence()`
+//<.> `associateWithSequence()`
+//+
+//the ordering of multiple actions associated with another property/collection.
+//
+//<.> `commandDtoProcessor()`
+//+
+//If the xref:extensions:command-replay:about.adoc[Command Replay] extension is being used (for regression testing), provides a mechanism to process the `CommandDto` before being replicated from primary to secondary system
+//
+//<.> xref:refguide:applib-ant:Action.adoc#commandPublishing[`commandPublishing()`]
+//+
+//Whether the action invocation should be published to registered xref:refguide:applib-svc:CommandSubscriber.adoc[`CommandSubscriber`]s as a `Command` object, that captures the details of this invocation. Typically so it can be logged using the xref:extensions:command-log:about.adoc[Command Log] extension (for auditing or for regression testing using xref:extensions:command-replay:about.adoc[Command Replay]).
+//
+//<.> xref:refguide:applib-ant:Action.adoc#domainEvent[`domainEvent()`]
+//+
+//The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] to broadcast the action's business rule checking (hide, disable, validate) and its invocation (pre-execute and post-execute).
+//
+//<.> xref:refguide:applib-ant:Action.adoc#executionPublishing[`executionPublishing()`]
+//+
+//Whether the action invocation should be published to registered xref:refguide:applib-svc:ExecutionSubscriber.adoc[`ExecutionSubscriber`]s as an `Execution` object, that captures the details of this invocation.
+//
+//<.> xref:refguide:applib-ant:Action.adoc#hidden[`hidden()`]
+//+
+//Indicates where (in the UI) the action should be hidden from the user.
+//
+//<.> xref:refguide:applib-ant:Action.adoc#restrictTo[`restrictTo()`]
+//+
+//Whether the action is only available in prototyping mode, or whether it is available also in production mode.
+//
+//<.> xref:refguide:applib-ant:Action.adoc#semantics[`semantics()`]
+//+
+//The action's semantics (ie whether objects are modified as the result of invoking this action, and if so whether reinvoking the action would result in no further change; if not whether the results can be cached for the remainder of the request).
+//+
+//The `...ARE_YOU_SURE` variants cause a confirmation dialog to be displayed in the xref:vw:ROOT:about.adoc[Wicket viewer].
+//
+//<.> xref:refguide:applib-ant:Action.adoc#typeOf[`typeOf()`]
+//+
+//If the action returns a collection, hints as to the run-time type of the objects within that collection (as a fallback)
 
 
 For example:
@@ -78,13 +76,13 @@ public class ToDoItem {
 
 
 
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
 
-
-include::Action/associateWith.adoc[leveloffset=+1]
-include::Action/commandPublishing.adoc[leveloffset=+1]
-include::Action/domainEvent.adoc[leveloffset=+1]
-include::Action/executionPublishing.adoc[leveloffset=+1]
-include::Action/hidden.adoc[leveloffset=+1]
-include::Action/restrictTo.adoc[leveloffset=+1]
-include::Action/semantics.adoc[leveloffset=+1]
-include::Action/typeOf.adoc[leveloffset=+1]
+//include::Action/associateWith.adoc[leveloffset=+1]
+//include::Action/commandPublishing.adoc[leveloffset=+1]
+//include::Action/domainEvent.adoc[leveloffset=+1]
+//include::Action/executionPublishing.adoc[leveloffset=+1]
+//include::Action/hidden.adoc[leveloffset=+1]
+//include::Action/restrictTo.adoc[leveloffset=+1]
+//include::Action/semantics.adoc[leveloffset=+1]
+//include::Action/typeOf.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout.adoc
index 39bb9fb..482d291 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ActionLayout.adoc
@@ -1,57 +1,31 @@
-[#ActionLayout]
-= `@ActionLayout`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
-The `@ActionLayout` annotation applies to actions, collecting together all UI hints within a single annotation.
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/ActionLayout.java[tags="refguide"]
-----
-<.> xref:refguide:applib-ant:ActionLayout.adoc#bookmarking[`bookmarking()`]
-+
-Indicates if an action (with safe xref:refguide:applib-ant:Action.adoc#semantics[action semantics]) is automatically bookmarked.
-
-<.> xref:refguide:applib-ant:ActionLayout.adoc#cssClass[`cssClass()`]
-+
-An additional CSS class around the HTML that represents for the action, to allow targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]. +
-
-<.> xref:refguide:applib-ant:ActionLayout.adoc#cssClassFa[`cssClassFa()`]
-+
-Specify a link:http://fortawesome.github.io/Font-Awesome/[Font awesome] icon name for the action's menu link or icon.
-
-<.> `cssClassFaPosition()`
-+
-Positioning of the icon on the button/menu item.
-
-<.> xref:refguide:applib-ant:ActionLayout.adoc#describedAs[`describedAs()`]
-+
-Provides a short description of the action, eg for rendering as a 'tool tip'.
-
-<.> xref:refguide:applib-ant:ActionLayout.adoc#hidden[`hidden()`]
-+
-Indicates where (in the UI) the action should be hidden from the user.
-
-<.> xref:refguide:applib-ant:ActionLayout.adoc#named[`named()`]
-+
-To override the name inferred from the action's name in code. +
-A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
-
-<.> xref:refguide:applib-ant:ActionLayout.adoc#position[`position()`]
-+
-For actions associated (using xref:refguide:applib-ant:MemberOrder.adoc[`@MemberOrder#named`]) with properties, the positioning of the action's button with respect to the property
-
-<.> `promptStyle()`
-+
-How to render the action prompt / property edit form : inline, dialog, sidebar etc.
-
-<.> `redirectPolicy()`
-+
-For the xref:vw:ROOT:about.adoc[Wicket viewer], whether to re-render the page after invoking this action, even if the result is the same.
-+
-Not re-rendering can provide a smoother UI experience.
+[#ActionLayout]
+include::system:generated:page$index/applib/annotation/ActionLayout.adoc[]
+
+
+// TODO - v2 to reconcile with .java (or maybe just delete)
+
+//<.> xref:refguide:applib-ant:ActionLayout.adoc#named[`named()`]
+//+
+//To override the name inferred from the action's name in code. +
+//A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
+//
+//<.> xref:refguide:applib-ant:ActionLayout.adoc#position[`position()`]
+//+
+//For actions associated (using xref:refguide:applib-ant:MemberOrder.adoc[`@MemberOrder#named`]) with properties, the positioning of the action's button with respect to the property
+//
+//<.> `promptStyle()`
+//+
+//How to render the action prompt / property edit form : inline, dialog, sidebar etc.
+//
+//<.> `redirectPolicy()`
+//+
+//For the xref:vw:ROOT:about.adoc[Wicket viewer], whether to re-render the page after invoking this action, even if the result is the same.
+//+
+//Not re-rendering can provide a smoother UI experience.
 
 // TODO: v2 - missing subpages for `promptStyle` and `redirectPolicy`
 
@@ -91,13 +65,14 @@ As an alternative to using the `@ActionLayout` annotation, a xref:userguide:fun:
 
 
 
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
 
 
-include::ActionLayout/bookmarking.adoc[leveloffset=+1]
-include::ActionLayout/contributedAs.adoc[leveloffset=+1]
-include::ActionLayout/cssClass.adoc[leveloffset=+1]
-include::ActionLayout/cssClassFa.adoc[leveloffset=+1]
-include::ActionLayout/describedAs.adoc[leveloffset=+1]
-include::ActionLayout/hidden.adoc[leveloffset=+1]
-include::ActionLayout/named.adoc[leveloffset=+1]
-include::ActionLayout/position.adoc[leveloffset=+1]
+//include::ActionLayout/bookmarking.adoc[leveloffset=+1]
+//include::ActionLayout/contributedAs.adoc[leveloffset=+1]
+//include::ActionLayout/cssClass.adoc[leveloffset=+1]
+//include::ActionLayout/cssClassFa.adoc[leveloffset=+1]
+//include::ActionLayout/describedAs.adoc[leveloffset=+1]
+//include::ActionLayout/hidden.adoc[leveloffset=+1]
+//include::ActionLayout/named.adoc[leveloffset=+1]
+//include::ActionLayout/position.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection.adoc
index 3bbd45f..cc1ad8d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Collection.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Collection.adoc
@@ -1,26 +1,23 @@
-[#Collection]
-= `@Collection`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
+[#Collection]
+include::system:generated:page$index/applib/annotation/Collection.adoc[]
 
-The `@Collection` annotation applies to collections collecting together all domain semantics within a single annotation.
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/Collection.java[tags="refguide"]
-----
-<.> xref:refguide:applib-ant:Collection.adoc#domainEvent[`domainEvent()`]
-+
-The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] to broadcast the collection's business rule checking (hide, disable, validate) and its modification (before and after).
 
-<.> xref:refguide:applib-ant:Collection.adoc#hidden[`hidden()`]
-+
-Indicates where (in the UI) the collection should be hidden from the user.
+// TODO - v2 to reconcile with .java (or maybe just delete)
 
-<.> xref:refguide:applib-ant:Collection.adoc#typeOf[`typeOf()`]
-+
-Hints as to the run-time type of the objects within that collection (as a fallback)
+//<.> xref:refguide:applib-ant:Collection.adoc#domainEvent[`domainEvent()`]
+//+
+//The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] to broadcast the collection's business rule checking (hide, disable, validate) and its modification (before and after).
+//
+//<.> xref:refguide:applib-ant:Collection.adoc#hidden[`hidden()`]
+//+
+//Indicates where (in the UI) the collection should be hidden from the user.
+//
+//<.> xref:refguide:applib-ant:Collection.adoc#typeOf[`typeOf()`]
+//+
+//Hints as to the run-time type of the objects within that collection (as a fallback)
 
 
 For example:
@@ -51,8 +48,8 @@ public class ToDoItem {
 
 [TIP]
 ====
-The annotation is one of a handful (others including xref:refguide:applib-ant:CollectionLayout.adoc[`@CollectionLayout`], xref:refguide:applib-ant:Property.adoc[`@Property`] and xref:refguide:applib-ant:PropertyLayout.adoc[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.  This is specifically
-so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
+The annotation is one of a handful (others including xref:refguide:applib-ant:CollectionLayout.adoc[`@CollectionLayout`], xref:refguide:applib-ant:Property.adoc[`@Property`] and xref:refguide:applib-ant:PropertyLayout.adoc[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.
+This is so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
 ====
 
 
@@ -60,7 +57,8 @@ so that boilerplate-busting tools such as link:https://projectlombok.org/[Projec
 
 
 
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
 
-include::Collection/domainEvent.adoc[leveloffset=+1]
-include::Collection/hidden.adoc[leveloffset=+1]
-include::Collection/typeOf.adoc[leveloffset=+1]
+//include::Collection/domainEvent.adoc[leveloffset=+1]
+//include::Collection/hidden.adoc[leveloffset=+1]
+//include::Collection/typeOf.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout.adoc
index 0734b42..f1b6c68 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/CollectionLayout.adoc
@@ -1,48 +1,44 @@
-[#CollectionLayout]
-= `@CollectionLayout`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-
-The `@CollectionLayout` annotation applies to collections, collecting together all UI hints within a single annotation.
-It is also possible to apply the annotation to actions of domain services that are acting as contributed collections.
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/CollectionLayout.java[tags="refguide"]
-----
-<.> xref:refguide:applib-ant:CollectionLayout.adoc#cssClass[`cssClass()`]
-+
-The css class that a collection should have, to allow more targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]
-
-<.> xref:refguide:applib-ant:CollectionLayout.adoc#defaultView[`defaultView()`]
-+
-Which view is selected by default, if multiple views are available.
-
-<.> xref:refguide:applib-ant:CollectionLayout.adoc#describedAs[`describedAs()`]
-+
-Description of this collection, eg to be rendered in a tooltip.
-
-<.> xref:refguide:applib-ant:CollectionLayout.adoc#hidden[`hidden()`]
-+
-Indicates where (in the UI) the collection should be hidden from the user.
-
-<.> xref:refguide:applib-ant:CollectionLayout.adoc#named[`named()`]
-+
-To override the name inferred from the collection's name in code. +
-A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
-
-<.> `namedEscaped()`
-+
-Whether to HTML escape the name of this property.
-
-<.> xref:refguide:applib-ant:CollectionLayout.adoc#paged[`paged()`]
-+
-The page size for instances of this class when rendered within a table.
-
-<.> xref:refguide:applib-ant:CollectionLayout.adoc#sortedBy[`sortedBy()`]
-+
-Indicates that the elements in the `java.util.SortedSet` collection should be sorted according to a specified `Comparator` rather than their natural sort order.
+[#CollectionLayout]
+include::system:generated:page$index/applib/annotation/CollectionLayout.adoc[]
+
+
+// TODO - v2 to reconcile with .java (or maybe just delete)
+
+//<.> xref:refguide:applib-ant:CollectionLayout.adoc#cssClass[`cssClass()`]
+//+
+//The css class that a collection should have, to allow more targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]
+//
+//<.> xref:refguide:applib-ant:CollectionLayout.adoc#defaultView[`defaultView()`]
+//+
+//Which view is selected by default, if multiple views are available.
+//
+//<.> xref:refguide:applib-ant:CollectionLayout.adoc#describedAs[`describedAs()`]
+//+
+//Description of this collection, eg to be rendered in a tooltip.
+//
+//<.> xref:refguide:applib-ant:CollectionLayout.adoc#hidden[`hidden()`]
+//+
+//Indicates where (in the UI) the collection should be hidden from the user.
+//
+//<.> xref:refguide:applib-ant:CollectionLayout.adoc#named[`named()`]
+//+
+//To override the name inferred from the collection's name in code. +
+//A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
+//
+//<.> `namedEscaped()`
+//+
+//Whether to HTML escape the name of this property.
+//
+//<.> xref:refguide:applib-ant:CollectionLayout.adoc#paged[`paged()`]
+//+
+//The page size for instances of this class when rendered within a table.
+//
+//<.> xref:refguide:applib-ant:CollectionLayout.adoc#sortedBy[`sortedBy()`]
+//+
+//Indicates that the elements in the `java.util.SortedSet` collection should be sorted according to a specified `Comparator` rather than their natural sort order.
 
 
 For example:
@@ -73,10 +69,13 @@ The annotation is one of a handful (others including xref:refguide:applib-ant:Co
 This is specifically so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
 ====
 
-include::CollectionLayout/cssClass.adoc[leveloffset=+1]
-include::CollectionLayout/defaultView.adoc[leveloffset=+1]
-include::CollectionLayout/describedAs.adoc[leveloffset=+1]
-include::CollectionLayout/hidden.adoc[leveloffset=+1]
-include::CollectionLayout/named.adoc[leveloffset=+1]
-include::CollectionLayout/paged.adoc[leveloffset=+1]
-include::CollectionLayout/sortedBy.adoc[leveloffset=+1]
+
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
+
+//include::CollectionLayout/cssClass.adoc[leveloffset=+1]
+//include::CollectionLayout/defaultView.adoc[leveloffset=+1]
+//include::CollectionLayout/describedAs.adoc[leveloffset=+1]
+//include::CollectionLayout/hidden.adoc[leveloffset=+1]
+//include::CollectionLayout/named.adoc[leveloffset=+1]
+//include::CollectionLayout/paged.adoc[leveloffset=+1]
+//include::CollectionLayout/sortedBy.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject.adoc
index f205795..8412152 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObject.adoc
@@ -1,153 +1,215 @@
-[#DomainObject]
-= `@DomainObject`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-CAUTION: TODO: v2 - publishing/auditing got a complete overhaul
 
-The `@DomainObject` annotation applies to domain objects, collecting together all domain semantics within a single annotation.
+[#DomainObject]
+include::system:generated:page$index/applib/annotation/DomainObject.adoc[]
+
+
+// TODO: v2 - previously we split out the discussion of the attributes into separate groups.
+// the global index doesn't suport this, though.
+
+
+//== Main API
+//
+// TODO - v2 to reconcile with .java (or maybe just delete)
+
+
+//<.> xref:refguide:applib-ant:DomainObject.adoc#autoCompleteRepository[`autoCompleteRepository()`]
+//+
+//Nominate a method on a domain service to be used for looking up instances of the domain object
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#autoCompleteAction[`autoCompleteAction()`]
+//+
+//Override the method name to use on the auto-complete repository
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#bounding[`bounding()`]
+//+
+//Whether the number of instances of this domain class is relatively small (a "bounded" set), such that instances could be selected from a drop-down list box or similar.
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#editing[`editing()`]
+//+
+//Whether the object's properties and collections can be edited or not (ie whether the instance should be considered to be immutable)
+//
+//<.> `editingDisabledReason()`
+//+
+//The default reason why the object's properties and collections cannot be edited.
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#entityChangePublishing[`entityChangePublishing()`]
+//+
+//Indicates whether each of the changed properties of an object should be submitted to the registered
+//xref:refguide:applib-svc:AuditerService.adoc[`AuditerService`](s) and
+//whether entity changes, captured as `ChangingEntities` should be published to xref:refguide:applib-svc:EntityChangesSubscriber.adoc[`EntityChangesSubscriber`](s). (Does only apply to entity objects.)
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#mixinMethod[`mixinMethod()`]
+//+
+//How to recognize the "reserved" method name, meaning that the mixin's own name will be inferred from the mixin type.
+//Typical examples are "exec", "execute", "invoke", "apply" and so on.
+//The default "reserved" method name is `$$`.
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#nature[`nature()`]
+//+
+//Whether the domain object logically is an entity (part of the domain layer) or is a view model (part of the application layer); or is a mixin.
+//If an entity, indicates how its persistence is managed.
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#objectType[`objectType()`]
+//+
+//Specify an alias for the domain class used to uniquely identify the object both within the Apache Isis runtime and externally
+
+
+
+//== Entity Lifecycle API
+//
+//These attributes define the events to be fired throughout an the persistence lifecycle of a domain entity:
+
+//[source,java]
+//----
+//include::refguide:applib-ant:example$annotation/DomainObject.java[tags="refguide-lifecycle-events"]
+//----
+//<.> xref:refguide:applib-ant:DomainObject.adoc#createdLifecycleEvent[`createdLifecycleEvent()`]
+//+
+//The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] whenever an instance is created
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#persistingLifecycleEvent[`persistingLifecycleEvent()`]
+//+
+//The event type to be posted to whenever an instance is about to be persisted
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#persistedLifecycleEvent[`persistedLifecycleEvent()`]
+//+
+//The event type to be posted whenever an instance has just been persisted
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#loadedLifecycleEvent[`loadedLifecycleEvent()`]
+//+
+//The event type to be posted whenever an instance has just been loaded from the datastore
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#removingLifecycleEvent[`removingLifecycleEvent()`]
+//+
+//The event type to be posted whenever an instance is about to be deleted
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#updatedLifecycleEvent[`updatedLifecycleEvent()`]
+//+
+//The event type to be posted whenever an instance has just been updated
+//
+//<.> xref:refguide:applib-ant:DomainObject.adoc#updatingLifecycleEvent[`updatingLifecycleEvent()`]
+//+
+//The event type to be posted whenever an instance is about to be updated
+
+
+
+//== Domain Events API
+//
+//These attributes define the events to be fired when a domain object's pathsToInclude (its actions, properties and collections) are interacted with.
+//
+//These attributes define the default event types; they can be overridden for each specific domain member.
+//
+//[source,java]
+//----
+//include::refguide:applib-ant:example$annotation/DomainObject.java[tags="refguide-domain-events"]
+//----
+//<.> `actionDomainEvent()`
+//+
+//The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] whenever an action of the domain object is interacted with (if not overridden using xref:refguide:applib-ant:Action.adoc#domainEvent[`@Action#domainEvent()]`).
+//
+//<.> `propertyDomainEvent()`
+//+
+//The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] whenever a property of the domain object is interacted with (if not overridden using xref:refguide:applib-ant:Property.adoc#domainEvent[`@Property#domainEvent()]`).
+//
+//<.> `collectionDomainEvent()`
+//+
+//The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] whenever a collection of the domain object is interacted with (if not overridden using xref:refguide:applib-ant:Collection.adoc#domainEvent[`@Collection#domainEvent()]`).
+//
+//
+//// TODO: v2: currently missing subpages for these attributes.
+//
+//For example:
+//
+//[source,java]
+//----
+//@DomainObject(
+//    auditing=Auditing.ENABLED,
+//    autoCompleteRepository=CustomerRepository.class
+//    editing=Editing.ENABLED,                            // <.>
+//    updatedLifecycleEvent=Customer.UpdatedEvent.class
+//
+//)
+//public class Customer {
+//    ...
+//}
+//----
+//<.> default value, so could be omitted
+
+
+[#view-models]
+== View Models
+
+The `@DomainObject(nature=VIEW_MODEL)` annotation, applied to a class, indicates that the class is a view model.
+
+View models are not persisted to the database, instead their state is encoded within their identity (ultimately represented in the URL).
 
-== Main API
+
+For example:
 
 [source,java]
 ----
-include::refguide:applib-ant:example$annotation/DomainObject.java[tags="refguide"]
+@DomainObject(nature=VIEW_MODEL)
+public class CustomerViewModel {
+    public CustomerViewModel() {}
+    public CustomerViewModel(String firstName, int lastName) {
+        this.firstName = firstName;
+        this.lastName = lastName;
+    }
+    ...
+}
 ----
-<.> xref:refguide:applib-ant:DomainObject.adoc#autoCompleteRepository[`autoCompleteRepository()`]
-+
-Nominate a method on a domain service to be used for looking up instances of the domain object
-
-<.> xref:refguide:applib-ant:DomainObject.adoc#autoCompleteAction[`autoCompleteAction()`]
-+
-Override the method name to use on the auto-complete repository
-
-<.> xref:refguide:applib-ant:DomainObject.adoc#bounding[`bounding()`]
-+
-Whether the number of instances of this domain class is relatively small (a "bounded" set), such that instances could be selected from a drop-down list box or similar.
-
-<.> xref:refguide:applib-ant:DomainObject.adoc#editing[`editing()`]
-+
-Whether the object's properties and collections can be edited or not (ie whether the instance should be considered to be immutable)
 
-<.> `editingDisabledReason()`
-+
-The default reason why the object's properties and collections cannot be edited.
-
-<.> xref:refguide:applib-ant:DomainObject.adoc#entityChangePublishing[`entityChangePublishing()`]
-+
-Indicates whether each of the changed properties of an object should be submitted to the registered
-xref:refguide:applib-svc:AuditerService.adoc[`AuditerService`](s) and
-whether entity changes, captured as `ChangingEntities` should be published to xref:refguide:applib-svc:EntityChangesSubscriber.adoc[`EntityChangesSubscriber`](s). (Does only apply to entity objects.)
-
-<.> xref:refguide:applib-ant:DomainObject.adoc#mixinMethod[`mixinMethod()`]
-+
-How to recognize the "reserved" method name, meaning that the mixin's own name will be inferred from the mixin type.
-Typical examples are "exec", "execute", "invoke", "apply" and so on.
-The default "reserved" method name is `$$`.
-
-<.> xref:refguide:applib-ant:DomainObject.adoc#nature[`nature()`]
-+
-Whether the domain object logically is an entity (part of the domain layer) or is a view model (part of the application layer); or is a mixin.
-If an entity, indicates how its persistence is managed.
-
-<.> xref:refguide:applib-ant:DomainObject.adoc#objectType[`objectType()`]
-+
-Specify an alias for the domain class used to uniquely identify the object both within the Apache Isis runtime and externally
-
-
-
-== Entity Lifecycle API
-
-These attributes define the events to be fired throughout an the persistence lifecycle of a domain entity:
+Although there are several ways to instantiate a view model, we recommend that they are instantiated using an N-arg constructor that initializes all relevant state.
+The xref:refguide:applib-svc:ServiceRegistry.adoc[`ServiceRegistry`] can then be used to inject dependencies into the view model.
+For example:
 
 [source,java]
 ----
-include::refguide:applib-ant:example$annotation/DomainObject.java[tags="refguide-lifecycle-events"]
+Customer cust = ...
+CustomerViewModel vm = factoryService.viewModel(
+    new CustomerViewModel(cust.getFirstName(), cust.getLastName()));
 ----
-<.> xref:refguide:applib-ant:DomainObject.adoc#createdLifecycleEvent[`createdLifecycleEvent()`]
-+
-The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] whenever an instance is created
 
-<.> xref:refguide:applib-ant:DomainObject.adoc#persistingLifecycleEvent[`persistingLifecycleEvent()`]
-+
-The event type to be posted to whenever an instance is about to be persisted
+[TIP]
+====
+See this xref:userguide:btb:hints-and-tips/view-model-instantiation.adoc[tip] for further discussion about instantiating view models.
+====
 
-<.> xref:refguide:applib-ant:DomainObject.adoc#persistedLifecycleEvent[`persistedLifecycleEvent()`]
-+
-The event type to be posted whenever an instance has just been persisted
+View models must have a no-arg constructor; this is used internally by the framework for subsequent "recreation".
 
-<.> xref:refguide:applib-ant:DomainObject.adoc#loadedLifecycleEvent[`loadedLifecycleEvent()`]
-+
-The event type to be posted whenever an instance has just been loaded from the datastore
+The view model's memento will be derived from the value of the view model object's properties.
+Any properties annotated with xref:refguide:applib-ant:Programmatic.adoc[`@Programmatic`] will be excluded from the memento.
+Properties that are merely xref:refguide:applib-ant:Property.adoc#hidden[hidden] _are_ included in the memento.
 
-<.> xref:refguide:applib-ant:DomainObject.adoc#removingLifecycleEvent[`removingLifecycleEvent()`]
-+
-The event type to be posted whenever an instance is about to be deleted
+View models when defined using `@DomainObject(nature=VIEW_MODEL)` have some limitations:
 
-<.> xref:refguide:applib-ant:DomainObject.adoc#updatedLifecycleEvent[`updatedLifecycleEvent()`]
-+
-The event type to be posted whenever an instance has just been updated
+* view models cannot hold collections other view models (simple properties _are_ supported, though)
+* collections (of either view models or entities) are ignored.
+* not every data type is supported,
 
-<.> xref:refguide:applib-ant:DomainObject.adoc#updatingLifecycleEvent[`updatingLifecycleEvent()`]
-+
-The event type to be posted whenever an instance is about to be updated
+However, these limitations do _not_ apply to xref:userguide:fun:view-models.adoc#jaxb[JAXB] view models.
+If you are using view models heavily, you may wish to restrict yourself to just the JAXB flavour.
 
-== Domain Events API
 
-These attributes define the events to be fired when a domain object's pathsToInclude (its actions, properties and collections) are interacted with.
-
-These attributes define the default event types; they can be overridden for each specific domain member.
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/DomainObject.java[tags="refguide-domain-events"]
-----
-<.> `actionDomainEvent()`
-+
-The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] whenever an action of the domain object is interacted with (if not overridden using xref:refguide:applib-ant:Action.adoc#domainEvent[`@Action#domainEvent()]`).
-
-<.> `propertyDomainEvent()`
-+
-The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] whenever a property of the domain object is interacted with (if not overridden using xref:refguide:applib-ant:Property.adoc#domainEvent[`@Property#domainEvent()]`).
-
-<.> `collectionDomainEvent()`
-+
-The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] whenever a collection of the domain object is interacted with (if not overridden using xref:refguide:applib-ant:Collection.adoc#domainEvent[`@Collection#domainEvent()]`).
-
-
-// TODO: v2: currently missing subpages for these attributes.
-
-For example:
-
-[source,java]
-----
-@DomainObject(
-    auditing=Auditing.ENABLED,
-    autoCompleteRepository=CustomerRepository.class
-    editing=Editing.ENABLED,                            // <.>
-    updatedLifecycleEvent=Customer.UpdatedEvent.class
-
-)
-public class Customer {
-    ...
-}
-----
-<.> default value, so could be omitted
 
 
 
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
 
-include::DomainObject/autoCompleteRepository.adoc[leveloffset=+1]
-include::DomainObject/bounding.adoc[leveloffset=+1]
-include::DomainObject/createdLifecycleEvent.adoc[leveloffset=+1]
-include::DomainObject/editing.adoc[leveloffset=+1]
-include::DomainObject/entityChangePublishing.adoc[leveloffset=+1]
-include::DomainObject/loadedLifecycleEvent.adoc[leveloffset=+1]
-include::DomainObject/mixinMethod.adoc[leveloffset=+1]
-include::DomainObject/nature.adoc[leveloffset=+1]
-include::DomainObject/persistedLifecycleEvent.adoc[leveloffset=+1]
-include::DomainObject/persistingLifecycleEvent.adoc[leveloffset=+1]
-include::DomainObject/objectType.adoc[leveloffset=+1]
-include::DomainObject/removingLifecycleEvent.adoc[leveloffset=+1]
-include::DomainObject/updatingLifecycleEvent.adoc[leveloffset=+1]
-include::DomainObject/updatedLifecycleEvent.adoc[leveloffset=+1]
+//include::DomainObject/autoCompleteRepository.adoc[leveloffset=+1]
+//include::DomainObject/bounding.adoc[leveloffset=+1]
+//include::DomainObject/createdLifecycleEvent.adoc[leveloffset=+1]
+//include::DomainObject/editing.adoc[leveloffset=+1]
+//include::DomainObject/entityChangePublishing.adoc[leveloffset=+1]
+//include::DomainObject/loadedLifecycleEvent.adoc[leveloffset=+1]
+//include::DomainObject/mixinMethod.adoc[leveloffset=+1]
+//include::DomainObject/nature.adoc[leveloffset=+1]
+//include::DomainObject/persistedLifecycleEvent.adoc[leveloffset=+1]
+//include::DomainObject/persistingLifecycleEvent.adoc[leveloffset=+1]
+//include::DomainObject/objectType.adoc[leveloffset=+1]
+//include::DomainObject/removingLifecycleEvent.adoc[leveloffset=+1]
+//include::DomainObject/updatingLifecycleEvent.adoc[leveloffset=+1]
+//include::DomainObject/updatedLifecycleEvent.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout.adoc
index 619e70d..1356ad3 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainObjectLayout.adoc
@@ -1,56 +1,60 @@
-[#DomainObjectLayout]
-= `@DomainObjectLayout`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
-
-The `@DomainObjectLayout` annotation applies to domain classes, collecting together all UI hints within a single annotation.
-
-
-== Main API
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/DomainObjectLayout.java[tags="refguide"]
-----
-<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#bookmarking[`bookmarking`]
-+
-Whether (and how) this domain object should be automatically bookmarked
-
-<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#cssClass[`cssClass`]
-+
-The css class that a domain class (type) should have, to allow more targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]
-
-<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#cssClassFa[`cssClassFa`]
-+
-Any valid link:http://fortawesome.github.io/Font-Awesome/[Font awesome] icon name for the domain object's menu link or icon. +
-
-<.> `cssClassFaPosition()`
-+
-Currently unused.
-
-
-
-<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#describedAs[`describedAs`]
-+
-Description of this class, eg to be rendered in a tooltip.
-
-<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#named[`named`]
-+
-To override the name inferred from the action's name in code. +
-+
-A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
-
-<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#paged[`paged`]
-+
-The page size for instances of this class when rendered within a table (as returned from an action invocation)
-
-
-<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#plural[`plural`]
-+
-The plural name of the class
-
+[#DomainObjectLayout]
+include::system:generated:page$index/applib/annotation/DomainObjectLayout.adoc[]
+
+
+// TODO: v2 - previously we split out the discussion of the attributes into separate groups.
+// the global index doesn't suport this, though.
+
+
+
+
+//== Main API
+//
+//[source,java]
+//----
+//include::refguide:applib-ant:example$annotation/DomainObjectLayout.java[tags="refguide"]
+//----
+//<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#bookmarking[`bookmarking`]
+//+
+//Whether (and how) this domain object should be automatically bookmarked
+//
+//<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#cssClass[`cssClass`]
+//+
+//The css class that a domain class (type) should have, to allow more targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]
+//
+//<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#cssClassFa[`cssClassFa`]
+//+
+//Any valid link:http://fortawesome.github.io/Font-Awesome/[Font awesome] icon name for the domain object's menu link or icon. +
+//
+//<.> `cssClassFaPosition()`
+//+
+//Currently unused.
+//
+//
+//
+//<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#describedAs[`describedAs`]
+//+
+//Description of this class, eg to be rendered in a tooltip.
+//
+//<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#named[`named`]
+//+
+//To override the name inferred from the action's name in code. +
+//+
+//A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
+//
+//<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#paged[`paged`]
+//+
+//The page size for instances of this class when rendered within a table (as returned from an action invocation)
+//
+//
+//<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#plural[`plural`]
+//+
+//The plural name of the class
+//
 
 
 For example:
@@ -75,38 +79,42 @@ public class ToDoItem {
 Note that there is (currently) no support for specifying UI hints for domain objects through the dynamic xref:userguide:fun:ui.adoc#object-layout[`.layout.xml`] file (only for properties, collections and actions are supported).
 ====
 
-== UI Events API
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/DomainObjectLayout.java[tags="refguide-ui-events"]
-----
-<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#cssClassUiEvent[`cssClassUiEvent`]
-+
-The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] to obtain a CSS class for the domain object.
-
-<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#iconUiEvent[`iconUiEvent`]
-+
-The event type to be posted to obtain the icon (name) for the domain object.
-
-<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#layoutUiEvent[`layoutUiEvent`]
-+
-The event type to be posted to obtain the layout (name) for the domain object.
-
-<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#titleUiEvent[`titleUiEvent`]
-+
-The event type to be posted to obtain the title for the domain object.
-
-
-
-include::DomainObjectLayout/bookmarking.adoc[leveloffset=+1]
-include::DomainObjectLayout/cssClass.adoc[leveloffset=+1]
-include::DomainObjectLayout/cssClassFa.adoc[leveloffset=+1]
-include::DomainObjectLayout/cssClassUiEvent.adoc[leveloffset=+1]
-include::DomainObjectLayout/describedAs.adoc[leveloffset=+1]
-include::DomainObjectLayout/iconUiEvent.adoc[leveloffset=+1]
-include::DomainObjectLayout/layoutUiEvent.adoc[leveloffset=+1]
-include::DomainObjectLayout/named.adoc[leveloffset=+1]
-include::DomainObjectLayout/paged.adoc[leveloffset=+1]
-include::DomainObjectLayout/plural.adoc[leveloffset=+1]
-include::DomainObjectLayout/titleUiEvent.adoc[leveloffset=+1]
+//
+//== UI Events API
+//
+//[source,java]
+//----
+//include::refguide:applib-ant:example$annotation/DomainObjectLayout.java[tags="refguide-ui-events"]
+//----
+//<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#cssClassUiEvent[`cssClassUiEvent`]
+//+
+//The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] to obtain a CSS class for the domain object.
+//
+//<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#iconUiEvent[`iconUiEvent`]
+//+
+//The event type to be posted to obtain the icon (name) for the domain object.
+//
+//<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#layoutUiEvent[`layoutUiEvent`]
+//+
+//The event type to be posted to obtain the layout (name) for the domain object.
+//
+//<.> xref:refguide:applib-ant:DomainObjectLayout.adoc#titleUiEvent[`titleUiEvent`]
+//+
+//The event type to be posted to obtain the title for the domain object.
+//
+
+
+
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
+
+//include::DomainObjectLayout/bookmarking.adoc[leveloffset=+1]
+//include::DomainObjectLayout/cssClass.adoc[leveloffset=+1]
+//include::DomainObjectLayout/cssClassFa.adoc[leveloffset=+1]
+//include::DomainObjectLayout/cssClassUiEvent.adoc[leveloffset=+1]
+//include::DomainObjectLayout/describedAs.adoc[leveloffset=+1]
+//include::DomainObjectLayout/iconUiEvent.adoc[leveloffset=+1]
+//include::DomainObjectLayout/layoutUiEvent.adoc[leveloffset=+1]
+//include::DomainObjectLayout/named.adoc[leveloffset=+1]
+//include::DomainObjectLayout/paged.adoc[leveloffset=+1]
+//include::DomainObjectLayout/plural.adoc[leveloffset=+1]
+//include::DomainObjectLayout/titleUiEvent.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService.adoc
index 8cce52f..b610e83 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainService.adoc
@@ -1,26 +1,21 @@
-[#DomainService]
-= `@DomainService`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
+[#DomainService]
+include::system:generated:page$index/applib/annotation/DomainService.adoc[]
 
 
-The `@DomainService` annotation indicates that the (concrete) class should be automatically instantiated as a domain service.
+// TODO - v2 to reconcile with .java (or maybe just delete)
 
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/DomainService.java[tags="refguide"]
-----
-
-<.> xref:refguide:applib-ant:DomainService.adoc#nature[`nature()`]
-+
-Whether the actions of this domain service should be rendered in UI menus only, or the xref:vro:ROOT:about.adoc[RestfulObjects] REST API only, or both
-
-<.> xref:refguide:applib-ant:DomainService.adoc#objectType[`objectType()`]
-+
-Equivalent to xref:refguide:applib-ant:DomainObject.adoc#objectType[`@DomainObject#objectType()`], specifies the objectType of the service.
-+
-The instanceId for services is always "1".
+//<.> xref:refguide:applib-ant:DomainService.adoc#nature[`nature()`]
+//+
+//Whether the actions of this domain service should be rendered in UI menus only, or the xref:vro:ROOT:about.adoc[RestfulObjects] REST API only, or both
+//
+//<.> xref:refguide:applib-ant:DomainService.adoc#objectType[`objectType()`]
+//+
+//Equivalent to xref:refguide:applib-ant:DomainObject.adoc#objectType[`@DomainObject#objectType()`], specifies the objectType of the service.
+//+
+//The instanceId for services is always "1".
 
 
 For example:
@@ -37,6 +32,9 @@ public class LoanRepository {
 }
 ----
 
-include::DomainService/nature.adoc[leveloffset=+1]
-include::DomainService/objectType.adoc[leveloffset=+1]
+
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
+
+//include::DomainService/nature.adoc[leveloffset=+1]
+//include::DomainService/objectType.adoc[leveloffset=+1]
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout.adoc
index 55deaa1..bc1df31 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/DomainServiceLayout.adoc
@@ -1,35 +1,24 @@
-[#DomainServiceLayout]
-= `@DomainServiceLayout`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
+[#DomainServiceLayout]
+include::system:generated:page$index/applib/annotation/DomainServiceLayout.adoc[]
 
 
-The `@DomainServiceLayout` annotation applies to domain services, collecting together all view layout semantics within a single annotation.
+// TODO - v2 to reconcile with .java (or maybe just delete)
 
-[TIP]
-====
-You will also find some additional material in the xref:userguide:fun:ui.adoc#menu-bars-layout[user guide].
-====
-
-The annotation is:
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/DomainServiceLayout.java[tags="refguide"]
-----
-<.> xref:refguide:applib-ant:DomainServiceLayout.adoc#menuBar[`menuBar()`]
-+
-The menubar in which the menu that holds this service's actions should reside:
-+
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/DomainServiceLayout.java[tags="refguide-menu-bar",indent=0]
-----
-
-<.> xref:refguide:applib-ant:DomainServiceLayout.adoc#named[`named()`]
-+
-Name of this class (overriding the name derived from its name in code)
+//<.> xref:refguide:applib-ant:DomainServiceLayout.adoc#menuBar[`menuBar()`]
+//+
+//The menubar in which the menu that holds this service's actions should reside:
+//+
+//[source,java]
+//----
+//include::refguide:applib-ant:example$annotation/DomainServiceLayout.java[tags="refguide-menu-bar",indent=0]
+//----
+//
+//<.> xref:refguide:applib-ant:DomainServiceLayout.adoc#named[`named()`]
+//+
+//Name of this class (overriding the name derived from its name in code)
 
 
 For example:
@@ -46,5 +35,14 @@ public class ToDoItems {
 }
 ----
 
-include::DomainServiceLayout/menuBar.adoc[leveloffset=+1]
-include::DomainServiceLayout/named.adoc[leveloffset=+1]
+
+[TIP]
+====
+You will also find some additional material in the xref:userguide:fun:ui.adoc#menu-bars-layout[user guide].
+====
+
+
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
+
+//include::DomainServiceLayout/menuBar.adoc[leveloffset=+1]
+//include::DomainServiceLayout/named.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Facets.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Facets.adoc
index ee6e770..2554758 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Facets.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Facets.adoc
@@ -1,14 +1,9 @@
-[#Facets]
-= `@Facets`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
+[#Facets]
+include::system:generated:page$index/applib/annotation/Facets.adoc[]
 
-The `@Facets` annotation allows `FacetFactory` implementations and so can be used to run install arbitrary ``Facet``s for a type.
-                                                                                                            Generally this is not needed, but can be useful for overriding a custom programming model where a `FacetFactory` is not typically included.
 
-[NOTE]
-====
 `FacetFactory` is an important internal API that is used by Apache Isis to build the metamodel.
-====
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
index b7fbc67..c926d62 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/HomePage.adoc
@@ -1,15 +1,10 @@
-[#HomePage]
-= `@HomePage`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
+[#HomePage]
+include::system:generated:page$index/applib/annotation/HomePage.adoc[]
 
 
-The `@HomePage` annotation allows a _single_ (no-arg, query-only) view model to be nominated 
-as the default home page.
-This is a view model that acts as some sort of dashboard, 
-presenting key information and making the most commonly used actions easy to invoke.
-
 For example, a todo app could use `@HomePage` on a dashboard of todo items to complete:
 
 image::reference-annotations/HomePage/HomePage.png[width="800px"]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/InteractionScope.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/InteractionScope.adoc
new file mode 100644
index 0000000..de9545a
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/InteractionScope.adoc
@@ -0,0 +1,28 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+[#InteractionScope]
+include::system:generated:page$index/applib/annotation/InteractionScope.adoc[]
+
+
+
+// TODO: v2 - this may no longer be true.
+
+//A number of the built-in domain services uses this annotation, including xref:refguide:applib-svc:Scratchpad.adoc[`Scratchpad`] and
+//xref:refguide:applib-svc:QueryResultsCache.adoc[`QueryResultsCache`].
+//
+//One small wrinkle: these session-scoped services must be injected using the `Provider` idiom, not directly.
+//For example:
+//
+//[source,java]
+//----
+//@DomainService
+//public class SomeRepository {
+//    // ...
+//    @Inject
+//    Provider<QueryResultsCache> queryResultsCacheProvider;
+//}
+//----
+//
+//If the session-scoped service is accidentally injected directly, then the framework will fail-fast with a suitable error message.
+//
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/IsisSessionScope.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/IsisSessionScope.adoc
deleted file mode 100644
index 35520ee..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/IsisSessionScope.adoc
+++ /dev/null
@@ -1,28 +0,0 @@
-[#IsisSessionScope]
-= `@IsisSessionScope`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
-The `@IsisSessionScope` annotation indicates that a xref:refguide:applib-ant:DomainService.adoc[domain service] should be scoped with the Apache Isis session rather than a singleton.
-An Apache Isis session is created for each HTTP request, and so this annotation is conceptually very similar to the link:https://jcp.org/en/jsr/detail?id=299[JSR-299] `@javax.enterprise.context.RequestScoped` annotation.
-
-A number of the built-in domain services uses this annotation, including xref:refguide:applib-svc:Scratchpad.adoc[`Scratchpad`] and
-xref:refguide:applib-svc:QueryResultsCache.adoc[`QueryResultsCache`].
-
-One small wrinkle: these session-scoped services must be injected using the `Provider` idiom, not directly.
-For example:
-
-[source,java]
-----
-@DomainService
-public class SomeRepository {
-    // ...
-    @Inject
-    Provider<QueryResultsCache> queryResultsCacheProvider;
-}
-----
-
-If the session-scoped service is accidentally injected directly, then the framework will fail-fast with a suitable error message.
-
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder.adoc
index 31585e0..e13021d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/MemberOrder.adoc
@@ -1,25 +1,21 @@
-[#MemberOrder]
-= `@MemberOrder`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
+[#MemberOrder]
+include::system:generated:page$index/applib/annotation/MemberOrder.adoc[]
 
-// TODO: v2: replace @MemberOrder#name() with @PropertyLayout#group(); replace @MemberOrder#sequence() with @PropertyLayout#sequence().
 
-The `@MemberOrder` annotation is used to specify the relative order of domain object pathsToInclude, that is: properties, collections and actions.
 
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/MemberOrder.java[tags="refguide"]
-----
-<.> xref:refguide:applib-ant:MemberOrder.adoc#name[`name()`]
-+
-Names a group of (property) pathsToInclude.
-All properties with this name will be grouped together.
+// TODO - v2 to reconcile with .java (or maybe just delete)
 
-<.> xref:refguide:applib-ant:MemberOrder.adoc#sequence[`sequence()`]
-+
-Defines an ordering for pathsToInclude, within their container.
+//<.> xref:refguide:applib-ant:MemberOrder.adoc#name[`name()`]
+//+
+//Names a group of (property) pathsToInclude.
+//All properties with this name will be grouped together.
+//
+//<.> xref:refguide:applib-ant:MemberOrder.adoc#sequence[`sequence()`]
+//+
+//Defines an ordering for pathsToInclude, within their container.
 
 As this is an important topic, there is xref:userguide:fun:ui.adoc#object-layout[chapter] in the user guide that discusses object layout in full.
 
@@ -31,6 +27,8 @@ The annotation is one of a handful (others including xref:refguide:applib-ant:Co
 ====
 
 
-include::MemberOrder/name.adoc[leveloffset=+1]
-include::MemberOrder/sequence.adoc[leveloffset=+1]
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
+
+//include::MemberOrder/name.adoc[leveloffset=+1]
+//include::MemberOrder/sequence.adoc[leveloffset=+1]
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/MinLength.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/MinLength.adoc
index 4d2f5a7..5bb2cdf 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/MinLength.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/MinLength.adoc
@@ -1,15 +1,10 @@
-[#MinLength]
-= `@MinLength`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
-The `@MinLength` annotation is used to specify the minimum number of characters in a search of an xref:refguide:applib-methods:prefixes.adoc#autoComplete[`autoComplete...()`] supporting method.
+[#MinLength]
+include::system:generated:page$index/applib/annotation/MinLength.adoc[]
 
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/MinLength.java[tags="refguide"]
-----
 
 For example:
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/NotPersistent.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/NotPersistent.adoc
index 9be35ae..6cb632f 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/NotPersistent.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/NotPersistent.adoc
@@ -10,7 +10,7 @@ Apache Isis also uses this annotation, though (currently) only in the very minim
 
 [NOTE]
 ====
-Isis parses the `@NotPersistent` annotation from the Java source code; it does not query the JDO metamodel.
+The framework parses the `@NotPersistent` annotation from the Java source code; it does not query the JDO metamodel.
 This means that it the `@NotPersistent` annotation must be used rather than the equivalent `<field>` link:http://www.datanucleus.org/products/accessplatform_4_0/jdo/fields_properties.html[XML metadata].
 
 Moreover, while JDO/DataNucleus will recognize annotations on either the field or the getter method, Apache Isis (currently) only inspects the getter method.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter.adoc
index 4fc8b03..a28863a 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Parameter.adoc
@@ -1,45 +1,43 @@
-[#Parameter]
-= `@Parameter`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
-The `@Parameter` annotation applies to action parameters collecting together all domain semantics within a single annotation.
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/Parameter.java[tags="refguide"]
-----
-<.> xref:refguide:applib-ant:Parameter.adoc#fileAccept[`fileAccept()`]
-+
-Hints the file type (media type or file extension) to be uploaded for xref:applib-classes:value-types.adoc#Blob[`Blob`]
-or xref:applib-classes:value-types.adoc#Clob[`Clob`]. +
- +
-Note that this does not prevent the user from uploading some other file type; rather it merely defaults the file type in the file open dialog.
-
-<.> xref:refguide:applib-ant:Parameter.adoc#maxLength[`maxLength()`]
-+
-Maximum number of characters for string parameters; ignored otherwise
-
-<.> xref:refguide:applib-ant:Parameter.adoc#mustSatisfy[`mustSatisfy()`]
-+
-Implementation of `o.a.i.applib.spec.Specification`, allowing arbitrary validation to be applied.
-
-<.> xref:refguide:applib-ant:Parameter.adoc#optionality[`optionality()`]
-+
-Specifies a parameter is optional rather than mandatory
-
-<.> xref:refguide:applib-ant:Parameter.adoc#regexPattern[regexPattern()]
-+
-Validates the contents of a string parameter against the regular expression pattern
 
-<.> `regexPatternFlags()`
-+
-Value of flags as normally passed to `java.util.regex.Pattern#compile(...)`, modifying the compilation of the regular expression
-
-<.> `regexPatternReplacement()`
-+
-Unused.
+[#Parameter]
+include::system:generated:page$index/applib/annotation/Parameter.adoc[]
+
+// TODO - v2 to reconcile with .java (or maybe just delete)
+
+//<.> xref:refguide:applib-ant:Parameter.adoc#fileAccept[`fileAccept()`]
+//+
+//Hints the file type (media type or file extension) to be uploaded for xref:applib-classes:value-types.adoc#Blob[`Blob`]
+//or xref:applib-classes:value-types.adoc#Clob[`Clob`]. +
+// +
+//Note that this does not prevent the user from uploading some other file type; rather it merely defaults the file type in the file open dialog.
+//
+//<.> xref:refguide:applib-ant:Parameter.adoc#maxLength[`maxLength()`]
+//+
+//Maximum number of characters for string parameters; ignored otherwise
+//
+//<.> xref:refguide:applib-ant:Parameter.adoc#mustSatisfy[`mustSatisfy()`]
+//+
+//Implementation of `o.a.i.applib.spec.Specification`, allowing arbitrary validation to be applied.
+//
+//<.> xref:refguide:applib-ant:Parameter.adoc#optionality[`optionality()`]
+//+
+//Specifies a parameter is optional rather than mandatory
+//
+//<.> xref:refguide:applib-ant:Parameter.adoc#regexPattern[regexPattern()]
+//+
+//Validates the contents of a string parameter against the regular expression pattern
+//
+//<.> `regexPatternFlags()`
+//+
+//Value of flags as normally passed to `java.util.regex.Pattern#compile(...)`, modifying the compilation of the regular expression
+//
+//<.> `regexPatternReplacement()`
+//+
+//Unused.
 
 
 For example:
@@ -71,8 +69,10 @@ public class Customer {
 
 
 
-include::Parameter/fileAccept.adoc[leveloffset=+1]
-include::Parameter/maxLength.adoc[leveloffset=+1]
-include::Parameter/mustSatisfy.adoc[leveloffset=+1]
-include::Parameter/optionality.adoc[leveloffset=+1]
-include::Parameter/regexPattern.adoc[leveloffset=+1]
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
+
+//include::Parameter/fileAccept.adoc[leveloffset=+1]
+//include::Parameter/maxLength.adoc[leveloffset=+1]
+//include::Parameter/mustSatisfy.adoc[leveloffset=+1]
+//include::Parameter/optionality.adoc[leveloffset=+1]
+//include::Parameter/regexPattern.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout.adoc
index 0202e96..f62d130 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/ParameterLayout.adoc
@@ -1,57 +1,56 @@
-[#ParameterLayout]
-= `@ParameterLayout`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
 
-The `@ParameterLayout` annotation applies to action parameters, collecting together all UI hints within a single annotation.
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/ParameterLayout.java[tags="refguide"]
-----
-<.> xref:refguide:applib-ant:ParameterLayout.adoc#cssClass[`cssClass()`]
-+The css class that a parameter should have, to allow more targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]
-
-<.> xref:refguide:applib-ant:ParameterLayout.adoc#describedAs[`describedAs()`]
-+
-Description of this parameter, eg to be rendered in a tooltip.
-
-<.> xref:refguide:applib-ant:ParameterLayout.adoc#labelPosition[`labelPosition()`]
-In forms, the positioning of the label relative to the property value. +
-=
-Default is `LEFT`, unless xref:refguide:applib-ant:ParameterLayout.adoc#multiLine[`multiLine`] in which case `TOP`.
-The value `RIGHT` is only supported for boolean parameters.
-
-<.> xref:refguide:applib-ant:ParameterLayout.adoc#multiLine[`multiLine()`]
-+
-For string parameters, render as a text area over specified number of lines.
-+
-If set > 1, then then xref:refguide:applib-ant:ParameterLayout.adoc#labelPosition[`labelPosition`] defaults to `TOP`.
-
-<.> xref:refguide:applib-ant:ParameterLayout.adoc#named[`named()`]
-+
-The name of this parameter.
-+
-[TIP]
-====
-There's no need to name the action parameters if the code is compiled using the `-parameters` flag to the Java compiler (javac); the framework will then use the name of the parameter itself.
-
-The only reason then to name the parameter is if the desired name is a reserved Java keyword, such as `default` or `package`.
-====
-
-<.> `namedEscaped()`
-+
-Whether to HTML escape the name of this parameter.
-
-<.> xref:refguide:applib-ant:ParameterLayout.adoc#renderDay[`renderDay()`]
-+
-For date parameters only, render the date as one day prior to the actually stored date (eg the end date of an open interval into a closed interval)
-
-<.> xref:refguide:applib-ant:ParameterLayout.adoc#typicalLength[`typicalLength()`]
-+
-The typical entry length of a field, use to determine the optimum width for display
+[#ParameterLayout]
+include::system:generated:page$index/applib/annotation/ParameterLayout.adoc[]
+
+
+// TODO - v2 to reconcile with .java (or maybe just delete)
+
+
+//<.> xref:refguide:applib-ant:ParameterLayout.adoc#cssClass[`cssClass()`]
+//+The css class that a parameter should have, to allow more targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]
+//
+//<.> xref:refguide:applib-ant:ParameterLayout.adoc#describedAs[`describedAs()`]
+//+
+//Description of this parameter, eg to be rendered in a tooltip.
+//
+//<.> xref:refguide:applib-ant:ParameterLayout.adoc#labelPosition[`labelPosition()`]
+//In forms, the positioning of the label relative to the property value. +
+//=
+//Default is `LEFT`, unless xref:refguide:applib-ant:ParameterLayout.adoc#multiLine[`multiLine`] in which case `TOP`.
+//The value `RIGHT` is only supported for boolean parameters.
+//
+//<.> xref:refguide:applib-ant:ParameterLayout.adoc#multiLine[`multiLine()`]
+//+
+//For string parameters, render as a text area over specified number of lines.
+//+
+//If set > 1, then then xref:refguide:applib-ant:ParameterLayout.adoc#labelPosition[`labelPosition`] defaults to `TOP`.
+//
+//<.> xref:refguide:applib-ant:ParameterLayout.adoc#named[`named()`]
+//+
+//The name of this parameter.
+//+
+//[TIP]
+//====
+//There's no need to name the action parameters if the code is compiled using the `-parameters` flag to the Java compiler (javac); the framework will then use the name of the parameter itself.
+//
+//The only reason then to name the parameter is if the desired name is a reserved Java keyword, such as `default` or `package`.
+//====
+//
+//<.> `namedEscaped()`
+//+
+//Whether to HTML escape the name of this parameter.
+//
+//<.> xref:refguide:applib-ant:ParameterLayout.adoc#renderDay[`renderDay()`]
+//+
+//For date parameters only, render the date as one day prior to the actually stored date (eg the end date of an open interval into a closed interval)
+//
+//<.> xref:refguide:applib-ant:ParameterLayout.adoc#typicalLength[`typicalLength()`]
+//+
+//The typical entry length of a field, use to determine the optimum width for display
 
 
 
@@ -87,11 +86,12 @@ Note that there is (currently) no support for specifying UI hints for domain ser
 
 
 
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
 
-include::ParameterLayout/cssClass.adoc[leveloffset=+1]
-include::ParameterLayout/describedAs.adoc[leveloffset=+1]
-include::ParameterLayout/labelPosition.adoc[leveloffset=+1]
-include::ParameterLayout/multiLine.adoc[leveloffset=+1]
-include::ParameterLayout/named.adoc[leveloffset=+1]
-include::ParameterLayout/renderDay.adoc[leveloffset=+1]
-include::ParameterLayout/typicalLength.adoc[leveloffset=+1]
+//include::ParameterLayout/cssClass.adoc[leveloffset=+1]
+//include::ParameterLayout/describedAs.adoc[leveloffset=+1]
+//include::ParameterLayout/labelPosition.adoc[leveloffset=+1]
+//include::ParameterLayout/multiLine.adoc[leveloffset=+1]
+//include::ParameterLayout/named.adoc[leveloffset=+1]
+//include::ParameterLayout/renderDay.adoc[leveloffset=+1]
+//include::ParameterLayout/typicalLength.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Property.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Property.adoc
index b86a33c..1071d2d 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Property.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Property.adoc
@@ -1,89 +1,83 @@
-[#Property]
-= `@Property`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-CAUTION: TODO: v2 - command annotations are out-of-date
-
-The `@Property` annotation applies to properties collecting together all domain semantics within a single annotation.
 
-It is also possible to apply the annotation to actions of domain services that are acting as contributed properties.
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/Property.java[tags="refguide"]
-----
-<.> `commandDtoProcessor()`
-+
-If the xref:extensions:command-replay:about.adoc[Command Replay] extension is being used (for regression testing), provides a mechanism to process the `CommandDto` before being replicated from primary to secondary system
-
-<.> xref:refguide:applib-ant:Property.adoc#commandPublishing[`commandPublishing()`]
-+
-Whether the editing of a property should be published to registered xref:refguide:applib-svc:CommandSubscriber.adoc[`CommandSubscriber`]s as a `Command` object, that captures the details of this edit. Typically so it can be logged using the xref:extensions:command-log:about.adoc[Command Log] extension (for auditing or for regression testing using xref:extensions:command-replay:about.adoc[Command Replay]).
-
-<.> xref:refguide:applib-ant:Property.adoc#domainEvent[`domainEvent()`]
-+
-The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] to broadcast the property's business rule checking (hide, disable, validate) and its modification (before and after).
-
-<.> xref:refguide:applib-ant:Property.adoc#editing[`editing()`]
-+
-Whether a property can be modified or cleared from within the UI
-
-<.> `editingDisabledReason()`
-+
-The reason that this property cannot be modified.
-
-<.> xref:refguide:applib-ant:Property.adoc#executionPublishing[`executionPublishing()`]
-+
-Whether the editing of a property should be published to registered xref:refguide:applib-svc:ExecutionSubscriber.adoc[`ExecutionSubscriber`]s as an `Execution` object, that captures the details of this edit.
-
-<.> xref:refguide:applib-ant:Property.adoc#fileAccept[`fileAccept()`]
-+
-Hints the file type (media type or file extension) to be uploaded to a xref:applib-classes:value-types.adoc#Blob[`Blob`]
- or xref:applib-classes:value-types.adoc#Clob[`Clob`]. +
-+
-Note that this does not prevent the user from uploading some other file type; rather it merely defaults the file type in the file open dialog.
-
-<.> xref:refguide:applib-ant:Property.adoc#hidden[`hidden()`]
-+
-Indicates where (in the UI) the property should be hidden from the user.
-
-<.> xref:refguide:applib-ant:Property.adoc#maxLength[`maxLength()`]
-+
-Maximum number of characters for string parameters; ignored otherwise +
-+
-TIP: In many/most cases you should however use xref:refguide:applib-ant:Column.adoc[`@Column#length()`]
-
-<.> xref:refguide:applib-ant:Property.adoc#snapshot[`snapshot()`]
-+
-Whether to exclude from snapshots. +
-
-<.> xref:refguide:applib-ant:Property.adoc#mustSatisfy[`mustSatisfy()`]
-+
-Implementation of `o.a.i.applib.spec.Specification` that allows arbitrary validation to be applied.
-
-<.> xref:refguide:applib-ant:Property.adoc#optionality[`optionality()`]
-+
-Specifies a property is optional rather than mandatory
-+
-TIP: In many/most cases you should however use xref:refguide:applib-ant:Column.adoc[`@Column#allowsNull()`]
-
-<.> xref:refguide:applib-ant:Property.adoc#projecting[`projecting()`]
-+
-Indicates that owning object is a view model that is acting as a projection of the underlying entity referenced by this property.
-
-<.> xref:refguide:applib-ant:Property.adoc#regexPattern[`regexPattern()`]
-+
-Validates the contents of a string parameter against the regular expression pattern
-
-<.> `regexPatternFlags()`
-+
-Value of flags as normally passed to `java.util.regex.` +
-`Pattern#compile(...)`, modifying the compilation of the regular expression
-
-<.> `regexPatternReplacement()`
-+
-Unused.
+[#Property]
+include::system:generated:page$index/applib/annotation/Property.adoc[]
+
+// TODO - v2 to reconcile with .java (or maybe just delete)
+
+//<.> `commandDtoProcessor()`
+//+
+//If the xref:extensions:command-replay:about.adoc[Command Replay] extension is being used (for regression testing), provides a mechanism to process the `CommandDto` before being replicated from primary to secondary system
+//
+//<.> xref:refguide:applib-ant:Property.adoc#commandPublishing[`commandPublishing()`]
+//+
+//Whether the editing of a property should be published to registered xref:refguide:applib-svc:CommandSubscriber.adoc[`CommandSubscriber`]s as a `Command` object, that captures the details of this edit. Typically so it can be logged using the xref:extensions:command-log:about.adoc[Command Log] extension (for auditing or for regression testing using xref:extensions:command-replay:about.adoc[Command Replay]).
+//
+//<.> xref:refguide:applib-ant:Property.adoc#domainEvent[`domainEvent()`]
+//+
+//The event type to be posted to the xref:refguide:applib-svc:EventBusService.adoc[`EventBusService`] to broadcast the property's business rule checking (hide, disable, validate) and its modification (before and after).
+//
+//<.> xref:refguide:applib-ant:Property.adoc#editing[`editing()`]
+//+
+//Whether a property can be modified or cleared from within the UI
+//
+//<.> `editingDisabledReason()`
+//+
+//The reason that this property cannot be modified.
+//
+//<.> xref:refguide:applib-ant:Property.adoc#executionPublishing[`executionPublishing()`]
+//+
+//Whether the editing of a property should be published to registered xref:refguide:applib-svc:ExecutionSubscriber.adoc[`ExecutionSubscriber`]s as an `Execution` object, that captures the details of this edit.
+//
+//<.> xref:refguide:applib-ant:Property.adoc#fileAccept[`fileAccept()`]
+//+
+//Hints the file type (media type or file extension) to be uploaded to a xref:applib-classes:value-types.adoc#Blob[`Blob`]
+// or xref:applib-classes:value-types.adoc#Clob[`Clob`]. +
+//+
+//Note that this does not prevent the user from uploading some other file type; rather it merely defaults the file type in the file open dialog.
+//
+//<.> xref:refguide:applib-ant:Property.adoc#hidden[`hidden()`]
+//+
+//Indicates where (in the UI) the property should be hidden from the user.
+//
+//<.> xref:refguide:applib-ant:Property.adoc#maxLength[`maxLength()`]
+//+
+//Maximum number of characters for string parameters; ignored otherwise +
+//+
+//TIP: In many/most cases you should however use xref:refguide:applib-ant:Column.adoc[`@Column#length()`]
+//
+//<.> xref:refguide:applib-ant:Property.adoc#snapshot[`snapshot()`]
+//+
+//Whether to exclude from snapshots. +
+//
+//<.> xref:refguide:applib-ant:Property.adoc#mustSatisfy[`mustSatisfy()`]
+//+
+//Implementation of `o.a.i.applib.spec.Specification` that allows arbitrary validation to be applied.
+//
+//<.> xref:refguide:applib-ant:Property.adoc#optionality[`optionality()`]
+//+
+//Specifies a property is optional rather than mandatory
+//+
+//TIP: In many/most cases you should however use xref:refguide:applib-ant:Column.adoc[`@Column#allowsNull()`]
+//
+//<.> xref:refguide:applib-ant:Property.adoc#projecting[`projecting()`]
+//+
+//Indicates that owning object is a view model that is acting as a projection of the underlying entity referenced by this property.
+//
+//<.> xref:refguide:applib-ant:Property.adoc#regexPattern[`regexPattern()`]
+//+
+//Validates the contents of a string parameter against the regular expression pattern
+//
+//<.> `regexPatternFlags()`
+//+
+//Value of flags as normally passed to `java.util.regex.` +
+//`Pattern#compile(...)`, modifying the compilation of the regular expression
+//
+//<.> `regexPatternReplacement()`
+//+
+//Unused.
 
 
 For example:
@@ -124,17 +118,17 @@ so that boilerplate-busting tools such as link:https://projectlombok.org/[Projec
 
 
 
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
 
-
-include::Property/commandPublishing.adoc[leveloffset=+1]
-include::Property/domainEvent.adoc[leveloffset=+1]
-include::Property/editing.adoc[leveloffset=+1]
-include::Property/executionPublishing.adoc[leveloffset=+1]
-include::Property/fileAccept.adoc[leveloffset=+1]
-include::Property/hidden.adoc[leveloffset=+1]
-include::Property/maxLength.adoc[leveloffset=+1]
-include::Property/mustSatisfy.adoc[leveloffset=+1]
-include::Property/snapshot.adoc[leveloffset=+1]
-include::Property/optionality.adoc[leveloffset=+1]
-include::Property/projecting.adoc[leveloffset=+1]
-include::Property/regexPattern.adoc[leveloffset=+1]
+//include::Property/commandPublishing.adoc[leveloffset=+1]
+//include::Property/domainEvent.adoc[leveloffset=+1]
+//include::Property/editing.adoc[leveloffset=+1]
+//include::Property/executionPublishing.adoc[leveloffset=+1]
+//include::Property/fileAccept.adoc[leveloffset=+1]
+//include::Property/hidden.adoc[leveloffset=+1]
+//include::Property/maxLength.adoc[leveloffset=+1]
+//include::Property/mustSatisfy.adoc[leveloffset=+1]
+//include::Property/snapshot.adoc[leveloffset=+1]
+//include::Property/optionality.adoc[leveloffset=+1]
+//include::Property/projecting.adoc[leveloffset=+1]
+//include::Property/regexPattern.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout.adoc
index 57f516e..3fb6325 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/PropertyLayout.adoc
@@ -1,73 +1,72 @@
-[#PropertyLayout]
-= `@PropertyLayout`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
-The `@PropertyLayout` annotation applies to properties collecting together all UI hints within a single annotation.
 
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/PropertyLayout.java[tags="refguide"]
-----
-<.> xref:refguide:applib-ant:PropertyLayout.adoc#cssClass[`cssClass()`]
-+
-The css class that a property should have, to allow more targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]
-
-<.> xref:refguide:applib-ant:PropertyLayout.adoc#describedAs[`describedAs()`]
-+
-Description of this property, eg to be rendered in a tooltip.
-
-<.> xref:refguide:applib-ant:PropertyLayout.adoc#hidden[`hidden()`]
-+
-Indicates where (in the UI) the property should be hidden from the user.
-
-<.> xref:refguide:applib-ant:PropertyLayout.adoc#labelPosition[`labelPosition()`]
-+
-In forms, the positioning of the label relative to the property value. +
-+
-Defaults is `LEFT`, unless xref:refguide:applib-ant:PropertyLayout.adoc#multiLine[`multiLine`] in which case `TOP`.
-The value `RIGHT` is only supported for boolean properties.
-+
-It is also possible to change the default through a xref:refguide:config:configuring-core.adoc#isis-viewers-propertyLayout-labelPosition[configuration property]
-
-<.> xref:refguide:applib-ant:PropertyLayout.adoc#multiLine[`multiLine()`]
-+
-For string properties, render as a text area over multiple lines.  +
-+
-If set > 1, then xref:refguide:applib-ant:PropertyLayout.adoc#labelPosition[`labelPosition`] defaults to TOP.
-
-<.> xref:refguide:applib-ant:PropertyLayout.adoc#named[`named()`]
-+
-To override the name inferred from the collection's name in code. +
-+
-A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
-
-<.> `namedEscaped()`
-+
-Whether to HTML escape the name of this property.
-
-<.> xref:refguide:applib-ant:PropertyLayout.adoc#navigable[`navigable()`]
-+
-Whether a property should be used as the navigable parent (parent breadcrumb) of this object
-
-<.> xref:refguide:applib-ant:PropertyLayout.adoc#promptStyle[`promptStyle()`]
-+
-How a property prompt should be displayed within the UI
-
-<.> xref:refguide:applib-ant:PropertyLayout.adoc#renderDay[`renderDay()`]
-+
-For date properties only, render the date as one day prior to the actually stored date.
-
-<.> xref:refguide:applib-ant:PropertyLayout.adoc#repainting[`repainting()`]
-+
-Indicates that the value held by the property never changes over time (even if other properties of the object do change).
-+
-Used as a hint to the viewer not to redraw the property if possible after an AJAX update.
-
-<.> xref:refguide:applib-ant:PropertyLayout.adoc#typicalLength[`typicalLength()`]
-+
-The typical entry length of a field, use to determine the optimum width for display
+[#PropertyLayout]
+include::system:generated:page$index/applib/annotation/PropertyLayout.adoc[]
+
+
+// TODO - v2 to reconcile with .java (or maybe just delete)
+
+//<.> xref:refguide:applib-ant:PropertyLayout.adoc#cssClass[`cssClass()`]
+//+
+//The css class that a property should have, to allow more targetted styling in xref:refguide:config:application-specific/application-css.adoc[`application.css`]
+//
+//<.> xref:refguide:applib-ant:PropertyLayout.adoc#describedAs[`describedAs()`]
+//+
+//Description of this property, eg to be rendered in a tooltip.
+//
+//<.> xref:refguide:applib-ant:PropertyLayout.adoc#hidden[`hidden()`]
+//+
+//Indicates where (in the UI) the property should be hidden from the user.
+//
+//<.> xref:refguide:applib-ant:PropertyLayout.adoc#labelPosition[`labelPosition()`]
+//+
+//In forms, the positioning of the label relative to the property value. +
+//+
+//Defaults is `LEFT`, unless xref:refguide:applib-ant:PropertyLayout.adoc#multiLine[`multiLine`] in which case `TOP`.
+//The value `RIGHT` is only supported for boolean properties.
+//+
+//It is also possible to change the default through a xref:refguide:config:configuring-core.adoc#isis-viewers-propertyLayout-labelPosition[configuration property]
+//
+//<.> xref:refguide:applib-ant:PropertyLayout.adoc#multiLine[`multiLine()`]
+//+
+//For string properties, render as a text area over multiple lines.  +
+//+
+//If set > 1, then xref:refguide:applib-ant:PropertyLayout.adoc#labelPosition[`labelPosition`] defaults to TOP.
+//
+//<.> xref:refguide:applib-ant:PropertyLayout.adoc#named[`named()`]
+//+
+//To override the name inferred from the collection's name in code. +
+//+
+//A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
+//
+//<.> `namedEscaped()`
+//+
+//Whether to HTML escape the name of this property.
+//
+//<.> xref:refguide:applib-ant:PropertyLayout.adoc#navigable[`navigable()`]
+//+
+//Whether a property should be used as the navigable parent (parent breadcrumb) of this object
+//
+//<.> xref:refguide:applib-ant:PropertyLayout.adoc#promptStyle[`promptStyle()`]
+//+
+//How a property prompt should be displayed within the UI
+//
+//<.> xref:refguide:applib-ant:PropertyLayout.adoc#renderDay[`renderDay()`]
+//+
+//For date properties only, render the date as one day prior to the actually stored date.
+//
+//<.> xref:refguide:applib-ant:PropertyLayout.adoc#repainting[`repainting()`]
+//+
+//Indicates that the value held by the property never changes over time (even if other properties of the object do change).
+//+
+//Used as a hint to the viewer not to redraw the property if possible after an AJAX update.
+//
+//<.> xref:refguide:applib-ant:PropertyLayout.adoc#typicalLength[`typicalLength()`]
+//+
+//The typical entry length of a field, use to determine the optimum width for display
 
 
 
@@ -89,9 +88,6 @@ public class ToDoItem {
 }
 ----
 
-It is also possible to apply the annotation to actions of domain services that are acting as contributed properties.
-
-
 
 [TIP]
 ====
@@ -114,16 +110,16 @@ so that boilerplate-busting tools such as link:https://projectlombok.org/[Projec
 
 
 
+// TODO - to review for v2 (perhaps move into javadoc and make 'projdoc' more sophisticated).
 
-
-include::PropertyLayout/cssClass.adoc[leveloffset=+1]
-include::PropertyLayout/describedAs.adoc[leveloffset=+1]
-include::PropertyLayout/hidden.adoc[leveloffset=+1]
-include::PropertyLayout/labelPosition.adoc[leveloffset=+1]
-include::PropertyLayout/multiLine.adoc[leveloffset=+1]
-include::PropertyLayout/named.adoc[leveloffset=+1]
-include::PropertyLayout/navigable.adoc[leveloffset=+1]
-include::PropertyLayout/promptStyle.adoc[leveloffset=+1]
-include::PropertyLayout/renderDay.adoc[leveloffset=+1]
-include::PropertyLayout/typicalLength.adoc[leveloffset=+1]
-include::PropertyLayout/repainting.adoc[leveloffset=+1]
+//include::PropertyLayout/cssClass.adoc[leveloffset=+1]
+//include::PropertyLayout/describedAs.adoc[leveloffset=+1]
+//include::PropertyLayout/hidden.adoc[leveloffset=+1]
+//include::PropertyLayout/labelPosition.adoc[leveloffset=+1]
+//include::PropertyLayout/multiLine.adoc[leveloffset=+1]
+//include::PropertyLayout/named.adoc[leveloffset=+1]
+//include::PropertyLayout/navigable.adoc[leveloffset=+1]
+//include::PropertyLayout/promptStyle.adoc[leveloffset=+1]
+//include::PropertyLayout/renderDay.adoc[leveloffset=+1]
+//include::PropertyLayout/typicalLength.adoc[leveloffset=+1]
+//include::PropertyLayout/repainting.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/Title.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/Title.adoc
index fbdd8a1..5528cdb 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/Title.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/Title.adoc
@@ -1,16 +1,11 @@
-[#Title]
-= `@Title`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
-The `@Title` annotation is used to indicate which property or properties make up the object title.
-If more than one property is used, the order can be specified (using the same Dewey-decimal notation as used by `@MemberOrder`) and the string to use between the components can also be specified.
 
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/Title.java[tags="refguide"]
-----
+[#Title]
+include::system:generated:page$index/applib/annotation/Title.adoc[]
+
 
 For example:
 
@@ -38,6 +33,7 @@ An additional convention for `@Title` properties is that they are hidden in tabl
 For viewers that support this annotation (for example, the Wicket viewer), this convention excludes any properties whose value is already present in the title column.
 This convention can be overridden using `@Property(where=Where.NOWHERE)`.
 
+
 == Lombok support
 
 If xref:setupguide:hints-and-tips:about.adoc#project-lombok.adoc[Project Lombok] is being used, then `@Title` can be specified on the backing field.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc
index 2638ee6..f9939c1 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about.adoc
@@ -14,6 +14,7 @@ The annotations supported by Apache Isis break out into five categories.
 include::about/main.adoc[leveloffset=+1]
 include::about/other.adoc[leveloffset=+1]
 include::about/jdo.adoc[leveloffset=+1]
+include::about/jpa.adoc[leveloffset=+1]
 include::about/jee.adoc[leveloffset=+1]
 // include::about/partial.adoc[leveloffset=+1]
 
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc
index 790adb5..754b7f5 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jdo.adoc
@@ -4,10 +4,7 @@
 :page-partial:
 
 
-Apache Isis uses an ORM for persistence, specifically xref:pjdo:ROOT:about.adoc[JDO/DataNucleus].
-It infers some of its own metadata from the ORM annotations.
-
-The table below lists the JDO annotations currently recognized by Apache Isis.
+The table below lists the xref:pjdo:ROOT:about.adoc[JDO/DataNucleus] annotations currently recognized by Apache Isis.
 
 
 .JDO Annotations
diff --git a/api/applib/src/main/adoc/modules/applib-classes/pages/ViewModel.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jpa.adoc
similarity index 79%
copy from api/applib/src/main/adoc/modules/applib-classes/pages/ViewModel.adoc
copy to api/applib/src/main/adoc/modules/applib-ant/pages/about/jpa.adoc
index 3c7c71b..ff812d4 100644
--- a/api/applib/src/main/adoc/modules/applib-classes/pages/ViewModel.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/pages/about/jpa.adoc
@@ -1,10 +1,9 @@
-[#ViewModel]
-= `ViewModel`
+= JPA Annotations
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 :page-partial:
 
 
-WARNING: TODO: this content has not yet been updated for v2.0
+TODO: v2 - JPA is now also supported as an ORM.
+(As with JDO), some of JPA's annotations are recognised by Apache Isis.
 
-See also xref:userguide:fun:view-models.adoc#view-model-interface[`ViewModel` interface] in the user guide.
diff --git a/api/applib/src/main/adoc/modules/applib-ant/pages/view-models.adoc b/api/applib/src/main/adoc/modules/applib-ant/pages/view-models.adoc
deleted file mode 100644
index cb115a0..0000000
--- a/api/applib/src/main/adoc/modules/applib-ant/pages/view-models.adoc
+++ /dev/null
@@ -1,74 +0,0 @@
-[view-models]
-= `View Model`
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-WARNING: TODO: v2 - content was copied from former ViewModel.adoc, corresponding annotation which was removed in Nov '20 ...
-
-WARNING: TODO: v2 - not currently supported, need to reinstate MementoService
-
-The `@DomainObject(nature=VIEW_MODEL)` annotation, applied to a class, indicates that the class is a view model.
-
-View models are not persisted to the database, instead their state is encoded within their identity (ultimately represented in the URL).
-
-[source,java]
-----
-include::refguide:applib-ant:example$annotation/DomainObject.java[tags="refguide"]
-----
-
-For example:
-
-[source,java]
-----
-@DomainObject(nature=VIEW_MODEL)
-public class CustomerViewModel {
-    public CustomerViewModel() {}
-    public CustomerViewModel(String firstName, int lastName) {
-        this.firstName = firstName;
-        this.lastName = lastName;
-    }
-    ...
-}
-----
-
-Although there are several ways to instantiate a view model, we recommend that they are instantiated using an N-arg constructor that initializes all relevant state.
-The xref:refguide:applib-svc:ServiceRegistry.adoc[`ServiceRegistry`] can then be used to inject dependencies into the view model.
-For example:
-
-[source,java]
-----
-Customer cust = ...
-CustomerViewModel vm = factoryService.viewModel(
-    new CustomerViewModel(cust.getFirstName(), cust.getLastName()));
-----
-
-[TIP]
-====
-See this xref:userguide:btb:about.adoc#view-model-instantiation[tip] for further discussion about instantiating view models.
-====
-
-View models must have a no-arg constructor; this is used internally by the framework for subsequent "recreation".
-
-The view model's memento will be derived from the value of the view model object's properties.
-Any properties annotated with xref:refguide:applib-ant:Programmatic.adoc[`@Programmatic`] will be excluded from the memento.
-Properties that are merely xref:refguide:applib-ant:Property.adoc#hidden[hidden] _are_ included in the memento.
-
-View models, as defined by `@DomainObject(nature=VIEW_MODEL)` have some limitations:
-
-* view models cannot hold collections other view models (simple properties _are_ supported, though)
-* collections (of either view models or entities) are ignored.
-* not every data type is supported,
-
-However, these limitations do _not_ apply to xref:userguide:fun:view-models.adoc#jaxb[JAXB] view models.
-If you are using view models heavily, you may wish to restrict yourself to just the JAXB flavour.
-
-[NOTE]
-====
-The `@DomainObject` annotation allows the `objectType` to be specified,
-meaning that it is compatible with the metamodel validation check enabled by the
-xref:refguide:config:configuring-core.adoc#metamodel-validation[`explicitObjectType`] configuration property.
-
-Instead, use xref:refguide:applib-ant:DomainObject.adoc#nature[`@DomainObject#nature()`] with `Nature.VIEW_MODEL`, and specify xref:refguide:applib-ant:DomainObject.adoc#objectType[`@DomainObject#objectType()`].
-====
-
-include::DomainObject/objectType.adoc[leveloffset=+1]
diff --git a/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc b/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
index e7cd240..733154e 100644
--- a/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
+++ b/api/applib/src/main/adoc/modules/applib-ant/partials/module-nav.adoc
@@ -29,7 +29,7 @@
 ** xref:refguide:applib-ant:Programmatic.adoc[Programmatic]
 ** xref:refguide:applib-ant:Property.adoc[Property]
 ** xref:refguide:applib-ant:PropertyLayout.adoc[PropertyLayout]
-** xref:refguide:applib-ant:IsisSessionScope.adoc[RequestScoped]
+** xref:refguide:applib-ant:InteractionScope.adoc[RequestScoped]
 ** xref:refguide:applib-ant:Title.adoc[Title]
 ** xref:refguide:applib-ant:ViewModel.adoc[ViewModel]
 ** xref:refguide:applib-ant:XmlJavaTypeAdapter.adoc[XmlJavaTypeAdapter]
diff --git a/api/applib/src/main/adoc/modules/applib-classes/pages/ViewModel.adoc b/api/applib/src/main/adoc/modules/applib-classes/pages/ViewModel.adoc
index 3c7c71b..c428967 100644
--- a/api/applib/src/main/adoc/modules/applib-classes/pages/ViewModel.adoc
+++ b/api/applib/src/main/adoc/modules/applib-classes/pages/ViewModel.adoc
@@ -1,10 +1,10 @@
-[#ViewModel]
-= `ViewModel`
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 :page-partial:
 
 
-WARNING: TODO: this content has not yet been updated for v2.0
+[#ViewModel]
+include::system:generated:page$index/applib/ViewModel.adoc[]
+
 
-See also xref:userguide:fun:view-models.adoc#view-model-interface[`ViewModel` interface] in the user guide.
+See also the xref:userguide:fun:view-models.adoc#view-model-interface[`ViewModel` interface] in the user guide.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AuditerService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages-removed-services/AuditerService.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/AuditerService.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages-removed-services/AuditerService.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
index 7276b78..28a4532 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
@@ -4,7 +4,7 @@
 :page-partial:
 
 
-The `AcceptHeaderService` domain service is a xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`]'d service that simply exposes the HTTP `Accept` header to the domain.
+The `AcceptHeaderService` domain service is a xref:refguide:applib-ant:InteractionScope.adoc[`@IsisSessionScope`]'d service that simply exposes the HTTP `Accept` header to the domain.
 Its intended use is to support multiple versions of a REST API, where the responsibility for content negotiation (determining which version of the REST API is to be used) is managed by logic in the domain objects themselves.
 
 [TIP]
@@ -16,28 +16,6 @@ As an alternative to performing content negotiation within the domain classes, t
 
 include::system:generated:page$index/applib/services/acceptheader/AcceptHeaderService.adoc[leveloffset=+2]
 
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-== API
-
-The API defined by the service is:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/acceptheader/AcceptHeaderService.java[tags=refguide]
-----
-
-<.> returns the list of media types found in the HTTP Accept header.
-
-The intention is that this service only returns a list when the request is initiated through the xref:vro:ROOT:about.adoc[Restful Objects viewer].
-Otherwise the service will likely return `null`.
-
-
-================================
 
 == Implementation
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc
index 8b05e0b..bc17dbb 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc
@@ -11,32 +11,19 @@ The `ApplicationFeatureRepository` provides the access to string representations
 
 include::system:generated:page$index/applib/services/appfeat/ApplicationMemberType.adoc[leveloffset=+2]
 
-TODO example migration
 
-.Deprecated Docs
-[WARNING]
-================================
+// TODO - v2 to reconcile with .java (or maybe just delete)
 
-== API
-
-The API defined by the service is:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/appfeat/ApplicationFeatureRepository.java[tags=refguide]
-----
-
-where `ApplicationMemberType` in turn is:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/appfeat/ApplicationMemberType.java[tags=refguide]
-----
-
-These methods are designed primarily to return lists of strings for use in drop-downs.
+//where `ApplicationMemberType` in turn is:
+//
+//[source,java]
+//----
+//include::refguide:applib-svc:example$services/appfeat/ApplicationMemberType.java[tags=refguide]
+//----
+//
+//These methods are designed primarily to return lists of strings for use in drop-downs.
 
 
-================================
 
 == Implementation
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc
index a9dc0ed..557bbcb 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc
@@ -23,71 +23,17 @@ Serialized form of bookmarks also appear within  xref:refguide:schema:about.adoc
 
 include::system:generated:page$index/applib/services/bookmark/BookmarkService.adoc[leveloffset=+2]
 
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-== API
-
-The API defined by `BookmarkService` is:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/bookmark/BookmarkService.java[tags="refguide"]
-----
-
-
-================================
-
-== API
 
 include::system:generated:page$index/applib/services/bookmark/Bookmark.adoc[leveloffset=+2]
 
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-=== `Bookmark`
-
-The `Bookmark` type is:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/bookmark/Bookmark.java[tags="refguide"]
-----
-
-
-
-================================
 
 == Implementation
 
 The core framework (xref:core:runtime-services:about.adoc[Runtime Services] module) provides a default implementation of this API, namely `o.a.i.core.runtimeservices.bookmarks.BookmarkServiceDefault`.
 
 
-== API
-
-include::system:generated:page$index/applib/services/bookmark/BookmarkHolder.adoc[leveloffset=+2]
+include::system:generated:page$index/applib/services/bookmark/BookmarkHolder.adoc[leveloffset=+1]
 
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-== Related Mixins
-
-The `BookmarkHolder` interface is intended to be implemented by domain objects that use a `Bookmark` to reference a (single) domain object; an example might be a class such as the audit entry, mentioned above.
-The interface is simply:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/bookmark/BookmarkHolder.java[tags="refguide"]
-----
 
 There are two mixins that will contribute to this interface:
 
@@ -102,6 +48,4 @@ which contributes instead an `object` property, being the referenced object.
 Either of these can be suppressed, if required, using a vetoing subscriber that listens to the action or property domain event in order to hide the member.
 
 
-================================
-
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc
index 87b2da0..d790e1f 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc
@@ -7,30 +7,10 @@
 The `BookmarkUiService` provides the ability to programmatically interact with bookmarked pages and breadcrumbs, as rendered by the Wicket viewer.
 
 
-
 == API
 
 include::system:generated:page$index/applib/services/bookmarkui/BookmarkUiService.adoc[leveloffset=+2]
 
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-== API
-
-The API defined by `BookmarkUiService` is:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/bookmarkui/BookmarkUiService.java[tags="refguide"]
-----
-<.> Simply clears the current list of breadcrumbs and bookmarks.
-
-
-
-================================
 
 == Implementation
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
index 7af112d..283eb78 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
@@ -23,26 +23,10 @@ Apache Isis provides such a facade through the `ClockService`.
 
 include::system:generated:page$index/applib/services/clock/ClockService.adoc[leveloffset=+2]
 
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-== API
-
-The API defined by `ClockService` is:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/clock/ClockService.java[tags="refguide"]
-----
 
 Note that this domain service is also used by the framework itself to obtain the time, so it acts as an SPI as well.
 
 
-================================
-
 == Implementation
 
 This class (`o.a.i.applib.services.clock.ClockService`) is also the default implementation.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
index 4201826..795a6a2 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider.adoc
@@ -36,7 +36,7 @@ include::refguide:applib-svc:example$services/i18n/LocaleProvider.java[tags="ref
 ----
 
 This is notionally request-scoped, returning the `Locale` of the current user; _not_ that of the server.
-(Note that the implementation does not required any special scoping such as xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`], for example).
+(Note that the implementation does not required any special scoping such as xref:refguide:applib-ant:InteractionScope.adoc[`@IsisSessionScope`], for example).
 
 
 ================================
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
index c223878..a498a1e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService.adoc
@@ -6,7 +6,7 @@
 
 WARNING: TODO: this content has not yet been reviewed/updated for v2.0
 
-The `MetricsService` is an xref:refguide:applib-ant:IsisSessionScope.adoc[`IsisSessionScope`]d domain service that hooks into the JDO/DataNucleus ObjectStore to provide a number of counters relating to numbers of object loaded, dirtied etc.
+The `MetricsService` is an xref:refguide:applib-ant:InteractionScope.adoc[`IsisSessionScope`]d domain service that hooks into the JDO/DataNucleus ObjectStore to provide a number of counters relating to numbers of object loaded, dirtied etc.
 
 The service tracks entity change metrics for those entities that have `entityChangePublishing` enabled.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
index 764f46b..602e650 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad.adoc
@@ -36,7 +36,7 @@ The key values should obey the general contract for hash maps.
 == Implementation
 
 This framework provides a default implementation of `o.a.i.core.runtimeservices.scratchpad.ScratchpadDefault`.
-This is just an xref:refguide:applib-ant:IsisSessionScope.adoc[`@IsisSessionScope`]'d wrapper around a `java.util.Map`.
+This is just an xref:refguide:applib-ant:InteractionScope.adoc[`@IsisSessionScope`]'d wrapper around a `java.util.Map`.
 
 
 == Usage
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/Action.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/Action.java
index 907a528..14adbde 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/Action.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/Action.java
@@ -37,7 +37,9 @@ import org.apache.isis.applib.value.Blob;
 import org.apache.isis.applib.value.Clob;
 
 /**
- * Domain semantics for domain object collection.
+ * Groups together all domain-specific metadata for an invokable action on a
+ * domain object or domain service.
+ *
  * @since 1.x {@index}
  */
 @Inherited
@@ -136,7 +138,7 @@ public @interface Action {
      */
     Publishing executionPublishing()
             default Publishing.NOT_SPECIFIED;
-    
+
     /**
      * Indicates where (in the UI) the action is not visible to the user.
      *
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java
index dfac135..d86a72d 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/Parameter.java
@@ -30,7 +30,9 @@ import org.apache.isis.applib.value.Blob;
 import org.apache.isis.applib.value.Clob;
 
 /**
- * Domain semantics for domain object collection.
+ * Collects together all domain semantics of an action parameter within a
+ * single annotation.
+ *
  * @since 1.x {@index}
  */
 @Inherited
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
index f149a1a..e9e1171 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/ParameterLayout.java
@@ -26,8 +26,9 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 /**
- * Layout hints for action parameters.
- * 
+ * Collects together all layout hints for action parameters in a single
+ * annotation.
+ *
  * @since 1.x {@index}
  * @see org.apache.isis.applib.annotation.PropertyLayout
  */
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/Property.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/Property.java
index fcc5dec..1bd2227 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/Property.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/Property.java
@@ -37,7 +37,9 @@ import org.apache.isis.applib.value.Blob;
 import org.apache.isis.applib.value.Clob;
 
 /**
- * Domain semantics for domain object property.
+ * Collects together all the domain semantics for the property of a domain
+ * object.
+ *
  * @since 1.x {@index}
  */
 @Inherited
@@ -109,7 +111,7 @@ public @interface Property {
             default "";
 
     /**
-     * Whether 
+     * Whether
      * {@link org.apache.isis.applib.services.iactn.Interaction.Execution}s
      * (triggered property edits), should be dispatched to
      * {@link ExecutionSubscriber}s.
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
index 6917886..7d3eebc 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/PropertyLayout.java
@@ -26,7 +26,7 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 /**
- * Layout hints for properties.
+ * Collects together all layout hints for a property of a domain object.
  *
  * @since 1.x {@index}
  * @see org.apache.isis.applib.annotation.ParameterLayout
diff --git a/api/applib/src/main/java/org/apache/isis/applib/annotation/Title.java b/api/applib/src/main/java/org/apache/isis/applib/annotation/Title.java
index 9851e9c..ac5f3aa 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/annotation/Title.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/annotation/Title.java
@@ -25,8 +25,14 @@ import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 
 /**
- * A title annotation used to annotate methods used to construct the title of a
- * domain object instance. It is used as a marker.
+ * Used to indicate which property or properties make up the object title.
+ *
+ * <p>
+ * If more than one property is used, the order can be specified (using the
+ * same Dewey-decimal notation as used by `@MemberOrder`) and the string to
+ * use between the components can also be specified.
+ * </p>
+ *
  * @since 1.x {@index}
  */
 @Retention(RetentionPolicy.RUNTIME)
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/acceptheader/AcceptHeaderService.java b/api/applib/src/main/java/org/apache/isis/applib/services/acceptheader/AcceptHeaderService.java
index c19d9fc..af947a3 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/acceptheader/AcceptHeaderService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/acceptheader/AcceptHeaderService.java
@@ -26,5 +26,13 @@ import javax.ws.rs.core.MediaType;
  * @since 1.x {@index}
  */
 public interface AcceptHeaderService {
+    /**
+     * The intention is that this service only returns a list when the request
+     * is initiated through the _Restful Objects viewer_.
+     *
+     * <p>
+     * Otherwise the service will likely return `null`.
+     * </p>
+     */
     List<MediaType> getAcceptableMediaTypes();
 }
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/bookmarkui/BookmarkUiService.java b/api/applib/src/main/java/org/apache/isis/applib/services/bookmarkui/BookmarkUiService.java
index 5e0cea3..cb26a98 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/bookmarkui/BookmarkUiService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/bookmarkui/BookmarkUiService.java
@@ -20,9 +20,14 @@
 package org.apache.isis.applib.services.bookmarkui;
 
 /**
- * 
+ * Provides the ability to programmatically interact with bookmarked pages
+ * and breadcrumbs, as rendered by the Wicket viewer.
+ *
  * @since 1.x {@index}
  */
 public interface BookmarkUiService {
+    /**
+     * Simply clears the current list of breadcrumbs and bookmarks.
+     */
     void clear();
 }


[isis] 04/12: ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 39c0cef949b673afbd967e92fc16a0bfe43eb033
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Feb 6 14:29:18 2021 +0000

    ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'
    
    This must have happened a few weeks back when working on the XmlSnapshotService
---
 .../modules/runtime-services/pages/RepresentationService.adoc     | 2 +-
 security/bypass/src/main/adoc/modules/bypass/pages/about.adoc     | 2 +-
 .../adoc/modules/integtestsupport/pages/about.adoc                | 2 +-
 .../restfulobjects/adoc/modules/ROOT/pages/layout-resources.adoc  | 4 ++--
 viewers/restfulobjects/adoc/modules/ROOT/pages/ro-spec.adoc       | 8 ++++----
 5 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/RepresentationService.adoc b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/RepresentationService.adoc
index d801beb..301a643 100644
--- a/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/RepresentationService.adoc
+++ b/core/runtimeservices/src/main/adoc/modules/runtime-services/pages/RepresentationService.adoc
@@ -65,7 +65,7 @@ These methods provide:
 +
 eg `ObjectAdapter`, `ObjectAndProperty`, `ObjectAndCollection` etc
 
-* for pathsToInclude, whether the representation is in read/write mode +
+* for members, whether the representation is in read/write mode +
 +
 ie `MemberReprMode`
 
diff --git a/security/bypass/src/main/adoc/modules/bypass/pages/about.adoc b/security/bypass/src/main/adoc/modules/bypass/pages/about.adoc
index 3556229..e0c5ac8 100644
--- a/security/bypass/src/main/adoc/modules/bypass/pages/about.adoc
+++ b/security/bypass/src/main/adoc/modules/bypass/pages/about.adoc
@@ -13,7 +13,7 @@ This is typically used for integration tests or for prototyping.
 
 The bypass security component consists of an implementation of both the `AuthenticationManager` and `AuthorizationManager` APIs, and are intended for prototyping use only.
 
-The authentication manager allows access with any credentials (in a sense, "bypassing" authentication), while the authorization manager provides access to all class pathsToInclude (in a sense, "bypassing" authorization).
+The authentication manager allows access with any credentials (in a sense, "bypassing" authentication), while the authorization manager provides access to all class members (in a sense, "bypassing" authorization).
 
 
 
diff --git a/testing/integtestsupport/adoc/modules/integtestsupport/pages/about.adoc b/testing/integtestsupport/adoc/modules/integtestsupport/pages/about.adoc
index 50b8a0a..123a595 100644
--- a/testing/integtestsupport/adoc/modules/integtestsupport/pages/about.adoc
+++ b/testing/integtestsupport/adoc/modules/integtestsupport/pages/about.adoc
@@ -451,7 +451,7 @@ We're not sure that's any easier (in fact we're certain it looks rather obscure)
 
 === Using the wrapper
 
-As the wrapper is intended to simulate the UI, only those methods that correspond to the "primary" methods of the domain object's pathsToInclude are allowed to be called.
+As the wrapper is intended to simulate the UI, only those methods that correspond to the "primary" methods of the domain object's members are allowed to be called.
 That means:
 
 * for *_object properties_* the test can call the getter or setter method
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/pages/layout-resources.adoc b/viewers/restfulobjects/adoc/modules/ROOT/pages/layout-resources.adoc
index cb4c331..f1151f4 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/pages/layout-resources.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/pages/layout-resources.adoc
@@ -248,7 +248,7 @@ The representation returned by this resource is essentially exactly the same as
 
 The xref:vro:ROOT:layout-resources.adoc#menu-layout[menu layout] representation includes all possible domain services; it does not follow that the current user has access to all of these actions (some may be hidden or disabled).
 
-Similarly, the xref:vro:ROOT:layout-resources.adoc#domain-object-layout[domain object layout] representation include all _possible_ properties, collections and actions of the domain object; again, the current user may not have access to all of these pathsToInclude.
-It is also often the case that the domain object's internal state will determine which pathsToInclude to make available (eg, show only one of "lock" and "unlock" actions at any given time).
+Similarly, the xref:vro:ROOT:layout-resources.adoc#domain-object-layout[domain object layout] representation include all _possible_ properties, collections and actions of the domain object; again, the current user may not have access to all of these members.
+It is also often the case that the domain object's internal state will determine which members to make available (eg, show only one of "lock" and "unlock" actions at any given time).
 
 To determine what should actually be rendered, the REST client should follow the links to the standard Restful Objects resources.
diff --git a/viewers/restfulobjects/adoc/modules/ROOT/pages/ro-spec.adoc b/viewers/restfulobjects/adoc/modules/ROOT/pages/ro-spec.adoc
index d19747e..509c51e 100644
--- a/viewers/restfulobjects/adoc/modules/ROOT/pages/ro-spec.adoc
+++ b/viewers/restfulobjects/adoc/modules/ROOT/pages/ro-spec.adoc
@@ -134,19 +134,19 @@ The queries that are shown in the screencast include:
 
 * show parent and its children (titles) +
 +
-pass:[<pre>http://localhost:8080/restful/objects/PARENT/0?x-ro-follow-links=pathsToInclude[children\].value]
+pass:[<pre>http://localhost:8080/restful/objects/PARENT/0?x-ro-follow-links=members[children\].value]
 
 * show parent and its children (full details) +
 +
-pass:[<pre>http://localhost:8080/restful/objects/PARENT/0?x-ro-follow-links=pathsToInclude[children\].value.href]
+pass:[<pre>http://localhost:8080/restful/objects/PARENT/0?x-ro-follow-links=members[children\].value.href]
 
 * child's parent (title) +
 +
-pass:[<pre>http://localhost:8080/restful/objects/CHILD/0?x-ro-follow-links=pathsToInclude[parent\].value]
+pass:[<pre>http://localhost:8080/restful/objects/CHILD/0?x-ro-follow-links=members[parent\].value]
 
 * child's siblings (up to its parent, down to children) +
 +
-pass:[<pre>http://localhost:8080/restful/objects/CHILD/0?x-ro-follow-links=pathsToInclude[parent\].value.pathsToInclude[children\].value]
+pass:[<pre>http://localhost:8080/restful/objects/CHILD/0?x-ro-follow-links=members[parent\].value.members[children\].value]
 
 ==== Honor UI hints
 


[isis] 09/12: ISIS-2526: moves J2adocConverter out of J2AdocContext so can pass in different implementations.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit e2823cd0c27af0f8047c89fde0a5cb9b5fd52d0f
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Feb 6 16:46:23 2021 +0000

    ISIS-2526: moves J2adocConverter out of J2AdocContext so can pass in different implementations.
---
 .../main/java/org/apache/isis/tooling/j2adoc/convert/HtmlToAsciiDoc.java | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/HtmlToAsciiDoc.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/HtmlToAsciiDoc.java
index 1619a50..f3c60e5 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/HtmlToAsciiDoc.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/HtmlToAsciiDoc.java
@@ -113,6 +113,7 @@ final class HtmlToAsciiDoc {
                     helper.blockAppend("* ");
                     return;
                 case "tt":
+                case "code":
                     helper.blockAppend("` ");
                     return;
                 case "i":


[isis] 12/12: ISIS-2526: wip, reworking the ref guide services to use generated index.

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit c39415b00bc7249a65089bc923feb55410d5b169
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Feb 7 14:49:38 2021 +0000

    ISIS-2526: wip, reworking the ref guide services to use generated index.
---
 .../applib-svc/pages/AcceptHeaderService.adoc      | 21 +------
 .../{usage_notes.adoc => examples_and_usage.adoc}  |  7 ++-
 .../{ => hooks}/implementation.adoc                |  2 +-
 .../hooks/introductory_notes.adoc                  |  8 ---
 .../pages/AcceptHeaderService/hooks/see_also.adoc  |  4 --
 .../pages/ApplicationFeatureRepository.adoc        | 33 ++--------
 .../hooks/_summary.adoc                            | 11 ++++
 .../{see_also.adoc => examples_and_usage.adoc}     |  4 +-
 .../{ => hooks}/implementation.adoc                |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../hooks/usage_notes.adoc                         |  4 --
 .../modules/applib-svc/pages/BookmarkService.adoc  | 20 +-----
 .../{usage_notes.adoc => examples_and_usage.adoc}  | 24 ++++++++
 .../{ => hooks}/implementation.adoc                |  2 +
 .../BookmarkService/hooks/introductory_notes.adoc  | 13 ----
 .../pages/BookmarkService/hooks/see_also.adoc      |  6 --
 .../applib-svc/pages/BookmarkUiService.adoc        | 13 +---
 .../hooks/examples_and_usage.adoc}                 |  0
 .../{ => hooks}/implementation.adoc                |  2 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/BookmarkUiService/hooks/see_also.adoc    |  4 --
 .../pages/BookmarkUiService/hooks/usage_notes.adoc |  4 --
 .../modules/applib-svc/pages/ClockService.adoc     | 17 +----
 .../{usage_notes.adoc => examples_and_usage.adoc}  |  7 ++-
 .../ClockService/{ => hooks}/implementation.adoc   |  1 +
 .../ClockService/hooks/introductory_notes.adoc     |  2 -
 .../pages/ClockService/hooks/see_also.adoc         |  4 --
 .../pages/CommandDtoProcessorService.adoc          |  9 +--
 .../{usage_notes.adoc => examples_and_usage.adoc}  |  6 ++
 .../{ => hooks}/implementation.adoc                |  3 +
 .../CommandDtoProcessorService/hooks/see_also.adoc |  5 --
 .../applib-svc/pages/CommandExecutorService.adoc   | 45 +-------------
 .../CommandExecutorService/hooks/_summary.adoc     | 10 +++
 .../hooks/examples_and_usage.adoc                  | 18 ++++++
 .../hooks}/implementation.adoc                     |  4 ++
 .../hooks/introductory_notes.adoc                  |  3 -
 .../CommandExecutorService/hooks/see_also.adoc     |  4 --
 .../CommandExecutorService/hooks/usage_notes.adoc  |  4 --
 .../applib-svc/pages/CommandSubscriber.adoc        |  5 +-
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  4 +-
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/CommandSubscriber/hooks/see_also.adoc    |  4 --
 .../pages/CommandSubscriber/hooks/usage_notes.adoc |  4 --
 .../applib-svc/pages/ConfigurationMenu.adoc        | 25 +-------
 .../hooks/examples_and_usage.adoc}                 |  3 +-
 .../hooks}/implementation.adoc                     |  3 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/ConfigurationMenu/hooks/see_also.adoc    |  4 --
 .../pages/ConfigurationMenu/hooks/usage_notes.adoc |  4 --
 .../applib-svc/pages/ConfigurationViewService.adoc | 60 +-----------------
 .../hooks/examples_and_usage.adoc}                 | 42 -------------
 .../hooks}/implementation.adoc                     |  4 +-
 .../hooks/introductory_notes.adoc                  |  3 -
 .../ConfigurationViewService/hooks/see_also.adoc   |  4 --
 .../hooks/usage_notes.adoc                         |  4 --
 .../ConfigurationViewService/implementation.adoc   |  5 --
 .../applib-svc/pages/ContentMappingService.adoc    | 72 +---------------------
 .../ContentMappingService/hooks/_summary.adoc      |  5 ++
 .../hooks/examples_and_usage.adoc                  | 20 ++++++
 .../hooks/implementation.adoc}                     | 49 +--------------
 .../hooks/introductory_notes.adoc                  |  3 -
 .../ContentMappingService/hooks/see_also.adoc      |  4 --
 .../ContentMappingService/hooks/usage_notes.adoc   |  4 --
 .../ContentMappingService/implementation.adoc      |  5 --
 .../modules/applib-svc/pages/DeepLinkService.adoc  |  1 +
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../DeepLinkService/hooks/introductory_notes.adoc  |  3 -
 .../pages/DeepLinkService/hooks/see_also.adoc      |  4 --
 .../pages/DeepLinkService/hooks/usage_notes.adoc   |  4 --
 .../pages/DeepLinkService/implementation.adoc      |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../EmailNotificationService/hooks/see_also.adoc   |  4 --
 .../hooks/usage_notes.adoc                         |  4 --
 .../EmailNotificationService/implementation.adoc   |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../EmailService/hooks/introductory_notes.adoc     |  3 -
 .../pages/EmailService/hooks/see_also.adoc         |  4 --
 .../pages/EmailService/hooks/usage_notes.adoc      |  4 --
 .../pages/EmailService/implementation.adoc         |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../ErrorReportingService/hooks/see_also.adoc      |  4 --
 .../ErrorReportingService/hooks/usage_notes.adoc   |  4 --
 .../ErrorReportingService/implementation.adoc      |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../EventBusService/hooks/introductory_notes.adoc  |  3 -
 .../pages/EventBusService/hooks/see_also.adoc      |  4 --
 .../pages/EventBusService/hooks/usage_notes.adoc   |  4 --
 .../pages/EventBusService/implementation.adoc      |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/ExceptionRecognizer/hooks/see_also.adoc  |  4 --
 .../ExceptionRecognizer/hooks/usage_notes.adoc     |  4 --
 .../pages/ExceptionRecognizer/implementation.adoc  |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../ExceptionRecognizerService/hooks/see_also.adoc |  4 --
 .../hooks/usage_notes.adoc                         |  4 --
 .../ExceptionRecognizerService/implementation.adoc |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/ExecutionSubscriber/hooks/see_also.adoc  |  4 --
 .../ExecutionSubscriber/hooks/usage_notes.adoc     |  4 --
 .../pages/ExecutionSubscriber/implementation.adoc  |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../FactoryService/hooks/introductory_notes.adoc   |  3 -
 .../pages/FactoryService/hooks/see_also.adoc       |  4 --
 .../pages/FactoryService/hooks/usage_notes.adoc    |  4 --
 .../pages/FactoryService/implementation.adoc       |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/GridLoaderService/hooks/see_also.adoc    |  4 --
 .../pages/GridLoaderService/hooks/usage_notes.adoc |  4 --
 .../pages/GridLoaderService/implementation.adoc    |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../GridService/hooks/introductory_notes.adoc      |  3 -
 .../pages/GridService/hooks/see_also.adoc          |  4 --
 .../pages/GridService/hooks/usage_notes.adoc       |  4 --
 .../pages/GridService/implementation.adoc          |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/GridSystemService/hooks/see_also.adoc    |  4 --
 .../pages/GridSystemService/hooks/usage_notes.adoc |  4 --
 .../pages/GridSystemService/implementation.adoc    |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/HealthCheckService/hooks/see_also.adoc   |  4 --
 .../HealthCheckService/hooks/usage_notes.adoc      |  4 --
 .../pages/HealthCheckService/implementation.adoc   |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../pages/HintStore/hooks/introductory_notes.adoc  |  3 -
 .../applib-svc/pages/HintStore/hooks/see_also.adoc |  4 --
 .../pages/HintStore/hooks/usage_notes.adoc         |  4 --
 .../applib-svc/pages/HintStore/implementation.adoc |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../HomePageResolverService/hooks/see_also.adoc    |  4 --
 .../HomePageResolverService/hooks/usage_notes.adoc |  4 --
 .../HomePageResolverService/implementation.adoc    |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/InteractionContext/hooks/see_also.adoc   |  4 --
 .../InteractionContext/hooks/usage_notes.adoc      |  4 --
 .../pages/InteractionContext/implementation.adoc   |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../JaxbService/hooks/introductory_notes.adoc      |  3 -
 .../pages/JaxbService/hooks/see_also.adoc          |  4 --
 .../pages/JaxbService/hooks/usage_notes.adoc       |  4 --
 .../pages/JaxbService/implementation.adoc          |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../LayoutService/hooks/introductory_notes.adoc    |  3 -
 .../pages/LayoutService/hooks/see_also.adoc        |  4 --
 .../pages/LayoutService/hooks/usage_notes.adoc     |  4 --
 .../pages/LayoutService/implementation.adoc        |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/LayoutServiceMenu/hooks/see_also.adoc    |  4 --
 .../pages/LayoutServiceMenu/hooks/usage_notes.adoc |  4 --
 .../pages/LayoutServiceMenu/implementation.adoc    |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../LocaleProvider/hooks/introductory_notes.adoc   |  3 -
 .../pages/LocaleProvider/hooks/see_also.adoc       |  4 --
 .../pages/LocaleProvider/hooks/usage_notes.adoc    |  4 --
 .../pages/LocaleProvider/implementation.adoc       |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../MenuBarsLoaderService/hooks/see_also.adoc      |  4 --
 .../MenuBarsLoaderService/hooks/usage_notes.adoc   |  4 --
 .../MenuBarsLoaderService/implementation.adoc      |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../MenuBarsService/hooks/introductory_notes.adoc  |  3 -
 .../pages/MenuBarsService/hooks/see_also.adoc      |  4 --
 .../pages/MenuBarsService/hooks/usage_notes.adoc   |  4 --
 .../pages/MenuBarsService/implementation.adoc      |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../MessageService/hooks/introductory_notes.adoc   |  3 -
 .../pages/MessageService/hooks/see_also.adoc       |  4 --
 .../pages/MessageService/hooks/usage_notes.adoc    |  4 --
 .../pages/MessageService/implementation.adoc       |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../MetaModelService/hooks/introductory_notes.adoc |  3 -
 .../pages/MetaModelService/hooks/see_also.adoc     |  4 --
 .../pages/MetaModelService/implementation.adoc     |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/MetaModelServiceMenu/implementation.adoc |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../MetricsService/hooks/introductory_notes.adoc   |  3 -
 .../pages/MetricsService/implementation.adoc       |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/QueryResultsCache/implementation.adoc    |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../QueryResultsCacheControl/implementation.adoc   |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/RepositoryService/implementation.adoc    |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../RoutingService/hooks/introductory_notes.adoc   |  3 -
 .../pages/RoutingService/implementation.adoc       |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../pages/Scratchpad/hooks/introductory_notes.adoc |  3 -
 .../pages/Scratchpad/implementation.adoc           |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../ServiceInjector/hooks/introductory_notes.adoc  |  3 -
 .../pages/ServiceInjector/implementation.adoc      |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../ServiceRegistry/hooks/introductory_notes.adoc  |  3 -
 .../pages/ServiceRegistry/implementation.adoc      |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../SessionLoggingService/implementation.adoc      |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../SudoService/hooks/introductory_notes.adoc      |  3 -
 .../pages/SudoService/implementation.adoc          |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../SwaggerService/hooks/introductory_notes.adoc   |  3 -
 .../pages/SwaggerService/implementation.adoc       |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../TableColumnOrderService/implementation.adoc    |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../TitleService/hooks/introductory_notes.adoc     |  3 -
 .../pages/TitleService/implementation.adoc         |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/TransactionService/implementation.adoc   |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/TranslationService/implementation.adoc   |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/TranslationsResolver/implementation.adoc |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/UrlEncodingService/implementation.adoc   |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/UserProfileService/implementation.adoc   |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../UserRegistrationService/implementation.adoc    |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../UserService/hooks/introductory_notes.adoc      |  3 -
 .../pages/UserService/implementation.adoc          |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../WrapperFactory/hooks/introductory_notes.adoc   |  3 -
 .../pages/WrapperFactory/implementation.adoc       |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../hooks}/implementation.adoc                     |  1 +
 .../pages/XmlService/hooks/introductory_notes.adoc |  3 -
 .../pages/XmlService/implementation.adoc           |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../XmlSnapshotService/hooks/implementation.adoc   |  1 +
 .../hooks/introductory_notes.adoc                  |  3 -
 .../pages/XmlSnapshotService/implementation.adoc   |  5 --
 .../hooks/examples_and_usage.adoc}                 |  0
 .../pages/about/{ => hooks}/implementation.adoc    |  0
 .../pages/about/hooks/introductory_notes.adoc      |  3 -
 .../processor/spi/CommandDtoProcessorService.java  | 10 +++
 .../services/confview/ConfigurationMenu.java       |  5 ++
 .../confview/ConfigurationViewService.java         |  8 +++
 311 files changed, 243 insertions(+), 1081 deletions(-)

diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
index cde3dd3..5e3db8f 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService.adoc
@@ -2,26 +2,11 @@
 = AcceptHeaderService
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
 
 
- This service simply exposes the HTTP `Accept` header to the domain.
+include::system:generated:page$index/applib/services/acceptheader/AcceptHeaderService.adoc[]
 
-Its intended use is to support multiple versions of a REST API, where the responsibility for content negotiation (determining which version of the REST API is to be used) is managed by logic in the domain objects themselves.
+include::AcceptHeaderService/hooks/implementation.adoc[]
 
-include::AcceptHeaderService/hooks/introductory_notes.adoc[]
-
-== API
-
-include::system:generated:page$index/applib/services/acceptheader/AcceptHeaderService.adoc[leveloffset=+2]
-
-
-== Implementation
-
-include::AcceptHeaderService/implementation.adoc[]
-
-
-== Usage Notes
-
-include::AcceptHeaderService/hooks/usage_notes.adoc[]
+include::AcceptHeaderService/hooks/examples_and_usage.adoc[]
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/examples_and_usage.adoc
similarity index 78%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/examples_and_usage.adoc
index 3d8ef4b..289403b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/usage_notes.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/examples_and_usage.adoc
@@ -3,6 +3,8 @@
 :page-partial:
 
 
+== Usage Notes
+
 The intended use of this service is where there are multiple concurrent versions of a REST API, for backward compatibility of existing clients.
 The `AcceptHeaderService` allows the responsibility for content negotiation (determining which version of the REST API is to be used) to be performed by logic in the domain objects themselves.
 
@@ -19,8 +21,11 @@ Based on this it delegates to the appropriate underlying domain service (with a
 The service does not define any conventions as to the format of the media types.
 The option is to use the media type's type/subtype, eg `application/vnd.myrestapi-v1+json`; an alternative is to use a media type parameter as a hint, eg `application/json;x-my-rest-api-version=1` (where `x-my-rest-api-version` is the media type parameter).
 
-The Restful Objects specification does this something similar with its own `x-ro-domain-type` media type parameter; this is used by the xref:refguide:applib-svc:ContentMappingService.adoc[`ContentMappingService`] to determine how to map domain objects to view models/DTOs.
 ====
 
 
+== Alternatives
+
+As an alternative to performing content negotiation within the domain classes, the xref:refguide:applib-svc:ContentMappingService.adoc[`ContentMappingService`] SPI domain service allows the framework to perform the content negotiation responsibility.
 
+The Restful Objects specification supports this with its own `x-ro-domain-type` media type parameter; this is used by the xref:refguide:applib-svc:ContentMappingService.adoc[`ContentMappingService`] to determine how to map domain objects to view models/DTOs.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/implementation.adoc
similarity index 98%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/implementation.adoc
index e53b262..5f1ea73 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/implementation.adoc
@@ -1,7 +1,7 @@
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-
+== Implementation
 
 The xref:vro:ROOT:about.adoc[Restful Objects] viewer provides an implementation of this API, `o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest`.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/introductory_notes.adoc
deleted file mode 100644
index 0b29f9f..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,8 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-[TIP]
-====
-As an alternative to performing content negotiation within the domain classes, the xref:refguide:applib-svc:ContentMappingService.adoc[`ContentMappingService`] SPI domain service allows the framework to perform the content negotiation responsibility.
-====
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc
index 9a37f3c..533e492 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository.adoc
@@ -1,37 +1,12 @@
-[#]ApplicationFeatureRepository]
+[#ApplicationFeatureRepository]
 = ApplicationFeatureRepository
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
 
 
+include::system:generated:page$index/applib/services/appfeat/ApplicationFeatureRepository.adoc[]
 
-Provides the access to string representations of the packages, classes and class members (collectively: "application features") of the domain classes within the framework's internal metamodel.
+include::ApplicationFeatureRepository/hooks/implementation.adoc[]
 
-== API
-
-include::system:generated:page$index/applib/services/appfeat/ApplicationMemberType.adoc[leveloffset=+2]
-
-
-// TODO - v2 (reconcile/move into javadoc).
-
-//where `ApplicationMemberType` in turn is:
-//
-//[source,java]
-//----
-//include::refguide:applib-svc:example$services/appfeat/ApplicationMemberType.java[tags=refguide]
-//----
-//
-//These methods are designed primarily to return lists of strings for use in drop-downs.
-
-
-
-== Implementation
-
-include::ApplicationFeatureRepository/implementation.adoc[]
-
-
-== See Also
-
-include::ApplicationFeatureRepository/hooks/see_also.adoc[]
+include::ApplicationFeatureRepository/hooks/examples_and_usage.adoc[]
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/_summary.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/_summary.adoc
new file mode 100644
index 0000000..bc5e758
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/_summary.adoc
@@ -0,0 +1,11 @@
+// TODO - v2 (reconcile/move into javadoc).
+
+//where `ApplicationMemberType` in turn is:
+//
+//[source,java]
+//----
+//include::refguide:applib-svc:example$services/appfeat/ApplicationMemberType.java[tags=refguide]
+//----
+//
+//These methods are designed primarily to return lists of strings for use in drop-downs.
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/examples_and_usage.adoc
similarity index 98%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/examples_and_usage.adoc
index 4f8c3cf..4e2ee6b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/see_also.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/examples_and_usage.adoc
@@ -1,6 +1,8 @@
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
+
+
+== See Also
 
 The default implementation of this service uses the internal xref:core:runtime-services:ApplicationFeatureFactory.adoc[`ApplicationFeatureFactory`] service to instantiate `ApplicationFeature` instances.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/implementation.adoc
similarity index 98%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/implementation.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/implementation.adoc
index d8041c9..c3af492 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/implementation.adoc
@@ -2,6 +2,7 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
+== Implementation
 
 The core framework (xref:core:metamodel:about.adoc[MetaModel] module) provides a default implementation, `o.a.i.core.metamodel.services.appfeat.ApplicationFeatureRepositoryDefault`.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ApplicationFeatureRepository/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc
index 7eb34ec..3bdf522 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService.adoc
@@ -2,25 +2,11 @@
 = BookmarkService
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
 
 
-This service provides a serializable 'bookmark' for any entity, and conversely to lookup an entity from a bookmark.
+include::system:generated:page$index/applib/services/bookmark/BookmarkService.adoc[]
 
-include::BookmarkService/hooks/introductory_notes.adoc[]
+include::BookmarkService/hooks/implementation.adoc[]
 
-== API
+include::BookmarkService/hooks/examples_and_usage.adoc[]
 
-include::system:generated:page$index/applib/services/bookmark/BookmarkService.adoc[leveloffset=+2]
-
-== Implementation
-
-include::BookmarkService/implementation.adoc[]
-
-== Usage Notes
-
-include::BookmarkService/hooks/usage_notes.adoc[]
-
-== See Also
-
-include::BookmarkService/hooks/see_also.adoc[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/examples_and_usage.adoc
similarity index 54%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/examples_and_usage.adoc
index c209110..bb4982e 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/usage_notes.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/examples_and_usage.adoc
@@ -3,6 +3,9 @@
 :page-partial:
 
 
+
+== Usage
+
 There are two mixins that will contribute to this interface:
 
 * xref:system:generated:index/applib/services/bookmark/BookmarkHolder_lookup.adoc[BookmarkHolder_lookup]
@@ -15,3 +18,24 @@ which contributes instead an `object` property, being the referenced object.
 
 Either of these can be suppressed, if required, using a vetoing subscriber that listens to the action or property domain event in order to hide the member.
 
+
+// TODO: v2 - to fix up links.
+
+//== Examples
+//
+//For example, a `Customer` object with an xref:refguide:applib-ant:DomainObject.adoc#objectType[object type] of "custmgmt.Customer" and an id of 123
+//would correspond to a xref:BookmarkService.adoc#bookmark[`Bookmark`] with a string representation of "custmgmt.Customer|123".
+//
+//Bookmarks are useful to store a reference to an arbitrary object, although be aware that there is no referential integrity.
+//
+//Several of the extension libraries use bookmarks.
+//For example the xref:refguide:applib-svc:AuditerService.adoc[`AuditerService`] uses bookmarks to identify the object that is being modified.
+//
+//Serialized form of bookmarks also appear within  xref:refguide:schema:about.adoc[schema] instances, for example as used by xref:refguide:applib-svc:CommandServiceInternal.adoc[`CommandService`] and the xref:refguide:applib-svc:ExecutionSubscriber.adoc[`PublisherService`].
+
+
+== See Also
+
+* xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark]
+* xref:system:generated:index/applib/services/bookmark/BookmarkHolder.adoc[BookmarkHolder]
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/implementation.adoc
similarity index 98%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/implementation.adoc
index f37eb29..70d3821 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/implementation.adoc
@@ -3,5 +3,7 @@
 
 
 
+== Implementation
+
 The core framework (xref:core:runtime-services:about.adoc[Runtime Services] module) provides a default implementation of this API, namely `o.a.i.core.runtimeservices.bookmarks.BookmarkServiceDefault`.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/introductory_notes.adoc
deleted file mode 100644
index c256f6d..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-For example, a `Customer` object with an xref:refguide:applib-ant:DomainObject.adoc#objectType[object type] of "custmgmt.Customer" and an id of 123
-would correspond to a xref:BookmarkService.adoc#bookmark[`Bookmark`] with a string representation of "custmgmt.Customer|123".
-
-Bookmarks are useful to store a reference to an arbitrary object, although be aware that there is no referential integrity.
-
-Several of the extension libraries use bookmarks.
-For example the xref:refguide:applib-svc:AuditerService.adoc[`AuditerService`] uses bookmarks to identify the object that is being modified.
-
-Serialized form of bookmarks also appear within  xref:refguide:schema:about.adoc[schema] instances, for example as used by xref:refguide:applib-svc:CommandServiceInternal.adoc[`CommandService`] and the xref:refguide:applib-svc:ExecutionSubscriber.adoc[`PublisherService`].
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/see_also.adoc
deleted file mode 100644
index b2aa7b4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/hooks/see_also.adoc
+++ /dev/null
@@ -1,6 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-* xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark]
-* xref:system:generated:index/applib/services/bookmark/BookmarkHolder.adoc[BookmarkHolder]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc
index 8e60378..cc0de4c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService.adoc
@@ -2,19 +2,12 @@
 = BookmarkUiService
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
 
 
-The `BookmarkUiService` provides the ability to programmatically interact with bookmarked pages and breadcrumbs, as rendered by the Wicket viewer.
+include::system:generated:page$index/applib/services/bookmarkui/BookmarkUiService.adoc[]
 
+include::BookmarkUiService/hooks/implementation.adoc[]
 
-== API
-
-include::system:generated:page$index/applib/services/bookmarkui/BookmarkUiService.adoc[leveloffset=+2]
-
-
-== Implementation
-
-include::BookmarkUiService/implementation.adoc[]
+include::BookmarkUiService/hooks/examples_and_usage.adoc[]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/implementation.adoc
similarity index 97%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/implementation.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/implementation.adoc
index 54fdef9..28005a4 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/implementation.adoc
@@ -2,4 +2,6 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
+== Implementation
+
 The xref:vw:ROOT:about.adoc[Wicket viewer] provides an implementation of this service, `o.a.i.viewer.wicket.viewer.services.BookmarkUiServiceWicket`.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkUiService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
index 036aba1..b6ec58b 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService.adoc
@@ -2,22 +2,11 @@
 = ClockService
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
 
 
-== API
+include::system:generated:page$index/applib/services/clock/ClockService.adoc[]
 
-include::system:generated:page$index/applib/services/clock/ClockService.adoc[leveloffset=+2]
+include::ClockService/hooks/implementation.adoc[]
 
-
-include::system:generated:page$index/applib/clock/VirtualClock.adoc[leveloffset=+2]
-
-== Implementation
-
-include::ClockService/implementation.adoc[]
-
-
-== Usage Notes
-
-include::ClockService/hooks/usage_notes.adoc[]
+include::ClockService/hooks/examples_and_usage.adoc[]
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/examples_and_usage.adoc
similarity index 94%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/examples_and_usage.adoc
index 3db7848..98c143c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/usage_notes.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/examples_and_usage.adoc
@@ -2,7 +2,7 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
-
+== Usage
 
 Most applications deal with dates and times in one way or another.
 For example, if an `Order` is placed, then the `Customer` may have 30 days to pay the `Invoice`, otherwise a penalty may be levied.
@@ -15,3 +15,8 @@ While instantiating a `java.util.Date` to current the current time is painless e
 Therefore it's common to provide a domain service whose responsibility is to provide the current time.
 This service can be injected into any domain object (and can be mocked out for unit testing).
 Apache Isis provides such a facade through the `ClockService`.
+
+
+== See also
+
+* xref:system:generated:index/applib/clock/VirtualClock.adoc[VirtualClock]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/implementation.adoc
index 2f50985..b229598 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/implementation.adoc
@@ -2,5 +2,6 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
+== Implementation
 
 Note that this domain service is also used by the framework itself to obtain the time, so it acts as an SPI as well.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/introductory_notes.adoc
deleted file mode 100644
index ca04c21..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,2 +0,0 @@
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc
index 0189f3d..769597a 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService.adoc
@@ -4,13 +4,10 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
-== API
+include::system:generated:page$index/applib/services/commanddto/processor/spi/CommandDtoProcessorService.adoc[]
 
-include::system:generated:page$index/applib/services/commanddto/processor/spi/CommandDtoProcessorService.adoc[leveloffset=+2]
+include::CommandDtoProcessorService/hooks/implementation.adoc[]
 
-
-== See also
-
-include::CommandDtoProcessorService/hooks/see_also.adoc[]
+include::CommandDtoProcessorService/hooks/examples_and_usage.adoc[]
 
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/examples_and_usage.adoc
similarity index 92%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/examples_and_usage.adoc
index c7fa99c..6790e21 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/usage_notes.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/examples_and_usage.adoc
@@ -2,6 +2,8 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
+== Usage
+
 Having a DTO representation of ``Command``s (or more precisely, any object implementing `HasCommandDto` offers the ability to move or copy it across the network, for example to support replay scenarios.
 This is used for example by xref:extensions:command-log:about.adoc[Command Log] extension to return persisted representations of commands.
 The conversion is performed by an in-built implementation of the xref:refguide:applib-svc:ContentMappingService.adoc[`ContentMappingService`] SPI.
@@ -11,3 +13,7 @@ The `CommandDtoProcessorService` SPI provides a mechanism to post-process the `C
 For example, the xref:extensions:command-replay:about.adoc[Command Replay] extension provides an implementation in order to copy information about the outcome of each command on the primary system into the `userData` map of `CommandDto`.
 Another use case is to strip out large blobs for performance reasons.
 
+
+== See also
+
+* xref:system:generated:index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/implementation.adoc
similarity index 88%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/implementation.adoc
index e4852a7..b0cfdc9 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/implementation.adoc
@@ -3,3 +3,6 @@
 
 
 
+== Implementation
+
+This is an SPI; there is no default implementation provided by the framework.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/see_also.adoc
deleted file mode 100644
index 171a3d0..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/hooks/see_also.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-* xref:system:generated:index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService.adoc
index dbe643a..71926d9 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService.adoc
@@ -2,50 +2,11 @@
 = CommandExecutorService
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
 
 
+include::system:generated:page$index/applib/services/command/CommandExecutorService.adoc[]
 
-The `CommandExecutorService` domain service is provides the ability to execute a specified `Command`, optionally running the command with the identity of the user captured in that `Command`.
+include::CommandExecutorService/hooks/implementation.adoc[]
 
-In fact, the service requires that the implementation of the `Command` being executed implements the `CommandWithDto` sub-interface.
-This allows the xref:refguide:schema:cmd.adoc[`CommandDto`] memento to be extracted, from which the action can be invoked/property edited.
+include::CommandExecutorService/hooks/examples_and_usage.adoc[]
 
-The primary use case for this service is to allow the replay of commands, eg for regression testing.
-This is implemented by the (non-ASF) link:https://platform.incode.org/modules/spi/command/spi-command-replay.html[command replay module].
-(The command replay module also provides a decorator implementation of this service that allows the command to be re-executed at the same _time_ as the original command, leveraging the `TickingClock` implementation provided by the framework).
-
-
-== API
-
-The `CommandExecutorService` defines the following API:
-
-[source,java]
-----
-public interface CommandExecutorService {
-    enum SudoPolicy {
-        NO_SWITCH,
-        SWITCH,
-    }
-    void executeCommand(
-            SudoPolicy sudoPolicy,          // <.>
-            CommandWithDto commandWithDto); // <.>
-}
-----
-<.> whether to switch the effective user for the duration of executing the `Command`.
-Behind the scenes this uses the xref:refguide:applib-svc:SudoService.adoc[`SudoService`].
-<.> provided `Command` must implement `CommandDto`.
-
-When the `Command` is executed, it can also be accessed from the `Interaction` obtained by  xref:refguide:applib-svc:InteractionContext.adoc[`InteractionContext`].
-Any associated objects that implement `HasUniqueId` (audit entries and the like) will therefore have the correct uniqueId and will correctly be associated with the `Command` being executed.
-
-== Implementation
-
-The framework provides a default implementation of this service,
-`o.a.i.core.runtime.services.background.CommandExecutorServiceDefault`
-
-
-
-== Related Services
-
-WARNING: TODO v2
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/_summary.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/_summary.adoc
new file mode 100644
index 0000000..baeb217
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/_summary.adoc
@@ -0,0 +1,10 @@
+// TODO - v2 (reconcile/move into javadoc).
+
+
+//<.> whether to switch the effective user for the duration of executing the `Command`.
+//Behind the scenes this uses the xref:refguide:applib-svc:SudoService.adoc[`SudoService`].
+//<.> provided `Command` must implement `CommandDto`.
+//
+//When the `Command` is executed, it can also be accessed from the `Interaction` obtained by  xref:refguide:applib-svc:InteractionContext.adoc[`InteractionContext`].
+//Any associated objects that implement `HasUniqueId` (audit entries and the like) will therefore have the correct uniqueId and will correctly be associated with the `Command` being executed.
+
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/examples_and_usage.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/examples_and_usage.adoc
new file mode 100644
index 0000000..2a67bae
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/examples_and_usage.adoc
@@ -0,0 +1,18 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
+
+== Usage
+
+The `CommandExecutorService` domain service is provides the ability to execute a specified `Command`, optionally running the command with the identity of the user captured in that `Command`.
+
+
+// TODO - v2 this is out of date; reference the command-replay service, now part of framework.
+
+//In fact, the service requires that the implementation of the `Command` being executed implements the `CommandWithDto` sub-interface.
+//This allows the xref:refguide:schema:cmd.adoc[`CommandDto`] memento to be extracted, from which the action can be invoked/property edited.
+//
+//The primary use case for this service is to allow the replay of commands, eg for regression testing.
+//This is implemented by the (non-ASF) link:https://platform.incode.org/modules/spi/command/spi-command-replay.html[command replay module].
+//(The command replay module also provides a decorator implementation of this service that allows the command to be re-executed at the same _time_ as the original command, leveraging the `TickingClock` implementation provided by the framework).
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/implementation.adoc
similarity index 83%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/implementation.adoc
index e4852a7..702c876 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/implementation.adoc
@@ -2,4 +2,8 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
+== Implementation
+
+The framework provides a default implementation of this service,
+`o.a.i.core.runtimeservices.command.CommandExecutorServiceDefault`
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber.adoc
index 50c6aa5..fec1a2c 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber.adoc
@@ -5,5 +5,8 @@
 :page-partial:
 
 
-CAUTION: TODO - v2 - to update, has been simplified.
+include::system:generated:page$index/applib/services/publishing/spi/CommandSubscriber.adoc[]
 
+include::CommandSubscriber/hooks/implementation.adoc[]
+
+include::CommandSubscriber/hooks/examples_and_usage.adoc[]
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/implementation.adoc
similarity index 80%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/implementation.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/implementation.adoc
index e53b262..8df9d86 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/AcceptHeaderService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/implementation.adoc
@@ -3,6 +3,8 @@
 
 
 
-The xref:vro:ROOT:about.adoc[Restful Objects] viewer provides an implementation of this API, `o.a.i.viewer.restfulobjects.rendering.service.acceptheader.AcceptHeaderServiceForRest`.
+== Implementation
 
+This is intended as an SPI.
 
+The framework does however provides a simple implementation that just logs the commands: `o.a.i.applib.services.publishing.log.CommandLogger`.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc
index 2169ae4..c4bcfec 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu.adoc
@@ -2,32 +2,13 @@
 = ConfigurationMenu
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
 
-The `ConfigurationMenu` service simply provides a UI in order to access the configuration properties available from  xref:refguide:applib-svc:ConfigurationViewService.adoc[`ConfigurationViewService`].
 
-== API
 
-include::system:generated:page$index/ConfigurationMenu.adoc[leveloffset=+2]
+include::system:generated:page$index/applib/services/confview/ConfigurationMenu.adoc[]
 
-TODO example migration
+include::ConfigurationMenu/hooks/implementation.adoc[]
 
-.Deprecated Docs
-[WARNING]
-================================
+include::ConfigurationMenu/hooks/examples_and_usage.adoc[]
 
-== Implementation
 
-The `ConfigurationMenu` implementation is very simple (annotations omitted):
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/confview/ConfigurationMenu.java[tags="refguide"]
-----
-
-
-================================
-
-== Related Services
-
-This service is the front-end UI (and delegates to) xref:refguide:applib-svc:ConfigurationViewService.adoc[`ConfigurationViewService`].
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/examples_and_usage.adoc
similarity index 83%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/implementation.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/examples_and_usage.adoc
index 2f50985..1535df4 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ClockService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/examples_and_usage.adoc
@@ -2,5 +2,6 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 
+== Related Services
 
-Note that this domain service is also used by the framework itself to obtain the time, so it acts as an SPI as well.
+This service is the front-end UI (and delegates to) xref:refguide:applib-svc:ConfigurationViewService.adoc[`ConfigurationViewService`].
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/implementation.adoc
similarity index 89%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/implementation.adoc
index e4852a7..f419bda 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/implementation.adoc
@@ -3,3 +3,6 @@
 
 
 
+== Implementation
+
+This service is a concrete class, so provides its own implementation.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc
index f1c5e27..a8ec4e8 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc
@@ -4,65 +4,11 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 :page-partial:
 
-The `ConfigurationViewService` is the backing service for xref:ConfigurationMenu.adoc[`ConfigurationMenu`].
 
-It simply returns a `ConfigurationProperty` (view model) instance for all known `isis.\*` and `resteasy.*` configuration properties.
+include::system:generated:page$index/applib/services/confview/ConfigurationViewService.adoc[]
 
+include::ConfigurationViewService/hooks/implementation.adoc[]
 
-== API
+include::ConfigurationViewService/hooks/examples_and_usage.adoc[]
 
-include::system:generated:page$index/applib/services/confview/ConfigurationProperty.adoc[leveloffset=+2]
-
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-== API
-
-The API defined by this service is very simple:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/confview/ConfigurationViewService.java[tags="refguide"]
-----
-
-where `ConfigurationProperty` is a view model:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/confview/ConfigurationProperty.java[tags="refguide"]
-----
-
-
-================================
-
-== Implementation
-
-The core framework (xref:core:runtime-services:about.adoc[Runtime Services] module) provides a default implementation of this API, namely `o.a.i.core.runtimeservices.confmenu.ConfigurationViewServiceDefault`.
-
-
-
-== Related Services
-
-* The configuration properties for Apache Isis can also be obtained from the xref:refguide:config:about.adoc#isisconfiguration-domain-service[`IsisConfiguration`] domain service.
-These provide link:https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-external-config-typesafe-configuration-properties[type-safe] access to all `isis.*` configuration properties.
-+
-[NOTE]
-====
-`IsisConfiguration` is part of xref:refguide:config:about.adoc[`isis-core-config`] rather than the applib.
-
-To use it therefore requires this dependency:
-[source,xml]
-.pom.xml
-----
-<dependency>
-    <groupId>org.apache.isis.core</groupId>
-    <artifactId>isis-core-config</artifactId>
-</dependency>
-----
-====
-
-* The xref:refguide:applib-svc:ConfigurationMenu.adoc[ `ConfigurationMenu`] provides a UI to access this service.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/examples_and_usage.adoc
similarity index 59%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/examples_and_usage.adoc
index f1c5e27..c38b971 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/examples_and_usage.adoc
@@ -1,47 +1,5 @@
-[#ConfigurationViewService]
-= ConfigurationViewService
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
-
-The `ConfigurationViewService` is the backing service for xref:ConfigurationMenu.adoc[`ConfigurationMenu`].
-
-It simply returns a `ConfigurationProperty` (view model) instance for all known `isis.\*` and `resteasy.*` configuration properties.
-
-
-== API
-
-include::system:generated:page$index/applib/services/confview/ConfigurationProperty.adoc[leveloffset=+2]
-
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-== API
-
-The API defined by this service is very simple:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/confview/ConfigurationViewService.java[tags="refguide"]
-----
-
-where `ConfigurationProperty` is a view model:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/confview/ConfigurationProperty.java[tags="refguide"]
-----
-
-
-================================
-
-== Implementation
-
-The core framework (xref:core:runtime-services:about.adoc[Runtime Services] module) provides a default implementation of this API, namely `o.a.i.core.runtimeservices.confmenu.ConfigurationViewServiceDefault`.
-
 
 
 == Related Services
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/implementation.adoc
similarity index 89%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/implementation.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/implementation.adoc
index f37eb29..9410bd6 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/BookmarkService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/implementation.adoc
@@ -3,5 +3,7 @@
 
 
 
-The core framework (xref:core:runtime-services:about.adoc[Runtime Services] module) provides a default implementation of this API, namely `o.a.i.core.runtimeservices.bookmarks.BookmarkServiceDefault`.
+== Implementation
+
+The core framework (xref:core:runtime-services:about.adoc[Runtime Services] module) provides a default implementation of this API, namely `o.a.i.core.runtimeservices.confmenu.ConfigurationViewServiceDefault`.
 
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationViewService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc
index 3ddf78d..826848a 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc
@@ -2,76 +2,10 @@
 = ContentMappingService
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
 
-// TODO: this is an SPI, so maybe restfulobjects should define an "spi" module for this.
+include::system:generated:page$index/applib/services/conmap/ContentMappingService.adoc[]
 
-The `ContentMappingService` supports the (default implementation of the) internal xref:core:runtime-services:ContentNegotiationService.adoc[`ContentNegotiationService`] SPI enabling the xref:vro:ROOT:about.adoc[RestfulObjects viewer] to represent domain objects in some other format as specified by the HTTP `Accept` header.
+include::ContentMappingService/hooks/implementation.adoc[]
 
-For its part, the (default implementation of the) `ContentNegotiationService` will check _all_ available implementations of `ContentMappingService` to convert the domain object to the requested media type, rather than merely the first implementation found; in other words it uses the link:https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern[chain-of-responsibility] pattern.
-Services are checked in the ordering defined by the Spring link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/annotation/Order.html[`@Order`] annotation.
-The mapped object used will be the first non-`null` result returned by an implementation.
+include::ContentMappingService/hooks/examples_and_usage.adoc[]
 
-
-
-== API
-
-include::system:generated:page$index/applib/services/conmap/ContentMappingService.adoc[leveloffset=+2]
-
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-== SPI
-
-The SPI defined by this service is:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/conmap/ContentMappingService.java[tags="refguide"]
-----
-<.> typically the input is a domain object (whose structure might change over time), and the output is a DTO (whose structure is guaranteed to be preserved over time)
-<.> as per the caller's HTTP `Accept` header
-
-
-
-
-
-================================
-
-== Implementations
-
-The framework provides two implementations of this service, both to allow objects implementing `HasCommandDto` to be converted into serializable ``CommandDto``s, in other words XML.
-This is used by the xref:extensions:command-log:about.adoc[Command Log] and xref:extensions:command-replay:about.adoc[Command Replay] extensions to allow commands to be replicated from a primary to secondary system, for regression testing.
-
-The implementations are:
-
-* `o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandDto` will map any single instance of a `HasCommandDto` into a `CommandDto` XML document
-* `o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandsDto` will map a list of ``HasCommandDto``s into a `CommandsDto` XML document, and will wrap any single instance of a `CommandWithDto` into a singleton list and thence into a `CommandsDto` XML document.
-
-If the action invocation or property edit represent provides an implementation of a `CommandDtoProcessor` (by way of xref:refguide:applib-ant:Action.adoc#command[`@Action#commandDtoProcessor()`] or xref:refguide:applib-ant:Property.adoc#command[`@Property#commandDtoProcessor()`]) then this is also called to post-process the persisted `CommandDto` if required.
-A typical use case for this is to dynamically add in serialized ``Blob``s or ``Clob``s, the values of which are not captured by default in `CommandDto`.
-
-To support the writing of custom implementations of this interface, the framework also provides `ContentMappingService.Util` which includes a couple of convenience utilities:
-
-[source,java]
-----
-public static class Util {
-    public static String determineDomainType(
-        final List<MediaType> acceptableMediaTypes) { /* ... */ }
-    public static boolean isSupported(
-            final Class<?> clazz,
-            final List<MediaType> acceptableMediaTypes) { /* ... */ }
-}
-----
-
-
-
-
-== Related Services
-
-This service is a companion to the default implementation of the xref:core:runtime-services:ContentNegotiationService.adoc[`ContentNegotiationService`].
-
-The framework implementations of `ContentMappingService` use the xref:refguide:applib-svc:MetamodelService.adoc[`MetaModelService`] to lookup any custom implementations of `CommandDtoProcessor`.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/_summary.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/_summary.adoc
new file mode 100644
index 0000000..e0ce9c5
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/_summary.adoc
@@ -0,0 +1,5 @@
+// TODO - v2 (reconcile/move into javadoc).
+
+//
+//<.> typically the input is a domain object (whose structure might change over time), and the output is a DTO (whose structure is guaranteed to be preserved over time)
+//<.> as per the caller's HTTP `Accept` header
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/examples_and_usage.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/examples_and_usage.adoc
new file mode 100644
index 0000000..86a24fa
--- /dev/null
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/examples_and_usage.adoc
@@ -0,0 +1,20 @@
+
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+
+== Usage
+
+// TODO: v2: this is an SPI, so maybe restfulobjects should define an "spi" module for this.
+
+The `ContentMappingService` supports the (default implementation of the) internal xref:core:runtime-services:ContentNegotiationService.adoc[`ContentNegotiationService`] SPI enabling the xref:vro:ROOT:about.adoc[RestfulObjects viewer] to represent domain objects in some other format as specified by the HTTP `Accept` header.
+
+For its part, the (default implementation of the) `ContentNegotiationService` will check _all_ available implementations of `ContentMappingService` to convert the domain object to the requested media type, rather than merely the first implementation found; in other words it uses the link:https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern[chain-of-responsibility] pattern.
+Services are checked in the ordering defined by the Spring link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/annotation/Order.html[`@Order`] annotation.
+The mapped object used will be the first non-`null` result returned by an implementation.
+
+
+== Related Services
+
+This service is a companion to the default implementation of the xref:core:runtime-services:ContentNegotiationService.adoc[`ContentNegotiationService`].
+
+The framework implementations of `ContentMappingService` use the xref:refguide:applib-svc:MetamodelService.adoc[`MetaModelService`] to lookup any custom implementations of `CommandDtoProcessor`.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/implementation.adoc
similarity index 50%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/implementation.adoc
index 3ddf78d..6ba8603 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/implementation.adoc
@@ -1,47 +1,9 @@
-[#ContentMappingService]
-= ContentMappingService
 
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-:page-partial:
 
-// TODO: this is an SPI, so maybe restfulobjects should define an "spi" module for this.
 
-The `ContentMappingService` supports the (default implementation of the) internal xref:core:runtime-services:ContentNegotiationService.adoc[`ContentNegotiationService`] SPI enabling the xref:vro:ROOT:about.adoc[RestfulObjects viewer] to represent domain objects in some other format as specified by the HTTP `Accept` header.
 
-For its part, the (default implementation of the) `ContentNegotiationService` will check _all_ available implementations of `ContentMappingService` to convert the domain object to the requested media type, rather than merely the first implementation found; in other words it uses the link:https://en.wikipedia.org/wiki/Chain-of-responsibility_pattern[chain-of-responsibility] pattern.
-Services are checked in the ordering defined by the Spring link:https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/core/annotation/Order.html[`@Order`] annotation.
-The mapped object used will be the first non-`null` result returned by an implementation.
-
-
-
-== API
-
-include::system:generated:page$index/applib/services/conmap/ContentMappingService.adoc[leveloffset=+2]
-
-TODO example migration
-
-.Deprecated Docs
-[WARNING]
-================================
-
-== SPI
-
-The SPI defined by this service is:
-
-[source,java]
-----
-include::refguide:applib-svc:example$services/conmap/ContentMappingService.java[tags="refguide"]
-----
-<.> typically the input is a domain object (whose structure might change over time), and the output is a DTO (whose structure is guaranteed to be preserved over time)
-<.> as per the caller's HTTP `Accept` header
-
-
-
-
-
-================================
-
-== Implementations
+== Implementation
 
 The framework provides two implementations of this service, both to allow objects implementing `HasCommandDto` to be converted into serializable ``CommandDto``s, in other words XML.
 This is used by the xref:extensions:command-log:about.adoc[Command Log] and xref:extensions:command-replay:about.adoc[Command Replay] extensions to allow commands to be replicated from a primary to secondary system, for regression testing.
@@ -51,7 +13,7 @@ The implementations are:
 * `o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandDto` will map any single instance of a `HasCommandDto` into a `CommandDto` XML document
 * `o.a.i.applib.services.commanddto.conmap.ContentMappingServiceForCommandsDto` will map a list of ``HasCommandDto``s into a `CommandsDto` XML document, and will wrap any single instance of a `CommandWithDto` into a singleton list and thence into a `CommandsDto` XML document.
 
-If the action invocation or property edit represent provides an implementation of a `CommandDtoProcessor` (by way of xref:refguide:applib-ant:Action.adoc#command[`@Action#commandDtoProcessor()`] or xref:refguide:applib-ant:Property.adoc#command[`@Property#commandDtoProcessor()`]) then this is also called to post-process the persisted `CommandDto` if required.
+If the action invocation or property edit represent provides an implementation of a `CommandDtoProcessor` (by way of xref:refguide:applib-ant:Action.adoc#commandDtoProcessor[`@Action#commandDtoProcessor()`] or xref:refguide:applib-ant:Property.adoc#commandDtoProcessor[`@Property#commandDtoProcessor()`]) then this is also called to post-process the persisted `CommandDto` if required.
 A typical use case for this is to dynamically add in serialized ``Blob``s or ``Clob``s, the values of which are not captured by default in `CommandDto`.
 
 To support the writing of custom implementations of this interface, the framework also provides `ContentMappingService.Util` which includes a couple of convenience utilities:
@@ -68,10 +30,3 @@ public static class Util {
 ----
 
 
-
-
-== Related Services
-
-This service is a companion to the default implementation of the xref:core:runtime-services:ContentNegotiationService.adoc[`ContentNegotiationService`].
-
-The framework implementations of `ContentMappingService` use the xref:refguide:applib-svc:MetamodelService.adoc[`MetaModelService`] to lookup any custom implementations of `CommandDtoProcessor`.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ContentMappingService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc
index 785e050..9791c7a 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService.adoc
@@ -4,6 +4,7 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 :page-partial:
 
+
 The `DeepLinkService` provides the ability to obtain a `java.net.URI` that links to a representation of any (persisted) domain entity or view model.
 
 A typical use case is to generate a clickable link for rendering in an email, PDF, tweet or other communication.
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/DeepLinkService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/implementation.adoc
similarity index 97%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/implementation.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandExecutorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailNotificationService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/implementation.adoc
similarity index 97%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/implementation.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandSubscriber/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EmailService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/implementation.adoc
similarity index 97%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/implementation.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ConfigurationMenu/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ErrorReportingService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/EventBusService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizer/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExceptionRecognizerService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ExecutionSubscriber/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/FactoryService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridLoaderService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/GridSystemService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HealthCheckService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HintStore/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/HomePageResolverService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/InteractionContext/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/JaxbService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LayoutServiceMenu/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/LocaleProvider/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsLoaderService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MenuBarsService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/usage_notes.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/hooks/usage_notes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MessageService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/see_also.adoc
deleted file mode 100644
index 21f4ba4..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/see_also.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceRegistry/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/ServiceInjector/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SessionLoggingService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SudoService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/Scratchpad/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/SwaggerService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TableColumnOrderService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/RoutingService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TitleService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TransactionService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/RepositoryService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/TranslationsResolver/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCacheControl/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UrlEncodingService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserProfileService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/QueryResultsCache/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserRegistrationService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/UserService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/UserService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/MetricsService/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/implementation.adoc
similarity index 97%
copy from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
copy to api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/WrapperFactory/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/implementation.adoc
similarity index 97%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/CommandDtoProcessorService/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/see_also.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelServiceMenu/hooks/see_also.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/implementation.adoc
index e4852a7..697f559 100644
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/implementation.adoc
+++ b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/implementation.adoc
@@ -3,3 +3,4 @@
 
 
 
+== Implementation
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/implementation.adoc
deleted file mode 100644
index e4852a7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/XmlSnapshotService/implementation.adoc
+++ /dev/null
@@ -1,5 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
-
-
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/usage_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/examples_and_usage.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/MetaModelService/hooks/usage_notes.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/examples_and_usage.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/about/implementation.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/implementation.adoc
similarity index 100%
rename from api/applib/src/main/adoc/modules/applib-svc/pages/about/implementation.adoc
rename to api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/implementation.adoc
diff --git a/api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/introductory_notes.adoc b/api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/introductory_notes.adoc
deleted file mode 100644
index 9e0d1b7..0000000
--- a/api/applib/src/main/adoc/modules/applib-svc/pages/about/hooks/introductory_notes.adoc
+++ /dev/null
@@ -1,3 +0,0 @@
-
-:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
-
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/processor/spi/CommandDtoProcessorService.java b/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/processor/spi/CommandDtoProcessorService.java
index 59f9937..8b8227e 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/processor/spi/CommandDtoProcessorService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/commanddto/processor/spi/CommandDtoProcessorService.java
@@ -42,6 +42,16 @@ import org.apache.isis.schema.cmd.v2.CommandDto;
 public interface CommandDtoProcessorService {
 
     /**
+     * Converts the domain object (acting as the source) into a {@link CommandDto}.
+     *
+     * <p>
+     *     The {@link CommandDto} that is also passed into the method will be
+     *     from a default implementation provided by the framework.  Most
+     *     implementations will typically refine this provided DTO and return,
+     *     for example adding additional user metadata to
+     *     {@link CommandDto#getUserData()}.
+     * </p>
+     *
      * @param domainObject - is the target that acts as the source of the
      *                       {@link CommandDto}.
      * @param commandDto - is either <code>null</code>, or is passed from a
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java b/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
index e4ce41d..17b776f 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationMenu.java
@@ -32,7 +32,12 @@ import org.apache.isis.applib.annotation.DomainServiceLayout;
 import org.apache.isis.applib.annotation.MemberOrder;
 import org.apache.isis.applib.annotation.SemanticsOf;
 
+import lombok.RequiredArgsConstructor;
+
 /**
+ * Simply provides a UI in order to access the configuration properties
+ * available from {@link ConfigurationViewService}.
+ *
  * @since 2.0 {@index}
  */
 @Named("isis.applib.ConfigurationMenu")
diff --git a/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationViewService.java b/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationViewService.java
index 60604e8..0ca321e 100644
--- a/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationViewService.java
+++ b/api/applib/src/main/java/org/apache/isis/applib/services/confview/ConfigurationViewService.java
@@ -22,6 +22,14 @@ package org.apache.isis.applib.services.confview;
 import java.util.Set;
 
 /**
+ * Returns the configuration properties (as view models) such that they can
+ * be rendered into the UI (in the Wicket Viewer, under the "Configuration"
+ * menu).
+ *
+ * <p>
+ *     This is the backing service used by {@link ConfigurationMenu}.
+ * </p>
+ *
  * @since 2.0 {@index}
  */
 public interface ConfigurationViewService {


[isis] 05/12: ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 74b3cf64e4392a4293ed487023ec6e50c37aa9cd
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Feb 6 14:29:45 2021 +0000

    ISIS-2444: reverses accidental edit of 'members' -> 'pathsToInclude'
    
    This must have happened a few weeks back when working on the XmlSnapshotService
---
 .../adoc/modules/ROOT/pages/customisation/tweaking-css-classes.adoc   | 4 ++--
 viewers/wicket/adoc/modules/ROOT/partials/security/pages.adoc         | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/viewers/wicket/adoc/modules/ROOT/pages/customisation/tweaking-css-classes.adoc b/viewers/wicket/adoc/modules/ROOT/pages/customisation/tweaking-css-classes.adoc
index fccf683..9afa98f 100644
--- a/viewers/wicket/adoc/modules/ROOT/pages/customisation/tweaking-css-classes.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/pages/customisation/tweaking-css-classes.adoc
@@ -18,7 +18,7 @@ This would be done using:
 
 These customizations should generally be added to xref:refguide:config:application-specific/application-css.adoc[`application.css]`; this file is included by default in every webpage served up by the Wicket viewer.
 
-== Individual pathsToInclude
+== Individual members
 
 For example, the `ToDoItem` object of the example https://github.com/apache/isis-app-todoapp/[TodoApp] has a `notes` property.
 The HTML for this will be something like:
@@ -58,7 +58,7 @@ You can use a similar approach for collections and actions.
 
 == Custom CSS styles
 
-The above technique works well if you know the class member to target, but you might instead want to apply a custom style to a set of pathsToInclude.
+The above technique works well if you know the class member to target, but you might instead want to apply a custom style to a set of members.
 For this, you can use the `@PropertyLayout(cssClass=...)`.
 
 For example, in the `ToDoItem` class the following annotation (indicating that this is a key, important, property) :
diff --git a/viewers/wicket/adoc/modules/ROOT/partials/security/pages.adoc b/viewers/wicket/adoc/modules/ROOT/partials/security/pages.adoc
index b699ace..872f002 100644
--- a/viewers/wicket/adoc/modules/ROOT/partials/security/pages.adoc
+++ b/viewers/wicket/adoc/modules/ROOT/partials/security/pages.adoc
@@ -33,11 +33,11 @@ In the sign-in page the viewer calls to the Isis Authenticator API, and obtains
 It also adds in its special reserved role (per the annotation above) and then continues on to whichever page the user was attempting to access (usually the home page).
 
 And that's really all there is to it.
-When the viewer renders a domain object it queries the Apache Isis metamodel, and suppresses from the view any object pathsToInclude (properties, actions etc) that are invisible.
+When the viewer renders a domain object it queries the Apache Isis metamodel, and suppresses from the view any object members (properties, actions etc) that are invisible.
 These may be invisible because the user has no (read ) permission, or they may be invisible because of domain object logic (eg a `hideXxx()` method).
 The viewer neither knows nor cares.
 
-Similarly, for those object pathsToInclude that _are_ visible, the viewer also checks if they are enabled or disabled.
+Similarly, for those object members that _are_ visible, the viewer also checks if they are enabled or disabled.
 Again, an object member will be disabled if the user does not have (write) permission, or it could be disabled because of domain object logic (eg a `disableXxx()` method).
 
 


[isis] 08/12: ISIS-2526: refactoring is all

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 3f0071ae106da96fb68c4f22a4e2e8ba0f4b4a7f
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Feb 6 16:41:09 2021 +0000

    ISIS-2526: refactoring is all
---
 .../pages/index/applib/AbstractViewModel.adoc      |    5 +-
 .../generated/pages/index/applib/Identifier.adoc   |   49 +-
 .../pages/index/applib/IsisModuleApplib.adoc       |    5 +-
 .../index/applib/RecreatableDomainObject.adoc      |   11 +-
 .../generated/pages/index/applib/ViewModel.adoc    |   11 +-
 .../adapters/AbstractValueSemanticsProvider.adoc   |    8 +-
 .../index/applib/adapters/DefaultsProvider.adoc    |    8 +-
 .../index/applib/adapters/EncoderDecoder.adoc      |   11 +-
 .../index/applib/adapters/EncodingException.adoc   |    9 +-
 .../pages/index/applib/adapters/Parser.adoc        |   27 +-
 .../index/applib/adapters/ParsingException.adoc    |    9 +-
 .../applib/adapters/ValueSemanticsProvider.adoc    |   14 +-
 .../pages/index/applib/annotation/Action.adoc      |   44 +-
 .../index/applib/annotation/ActionLayout.adoc      |   37 +-
 .../index/applib/annotation/BookmarkPolicy.adoc    |   17 +-
 .../pages/index/applib/annotation/Bounding.adoc    |    8 +-
 .../pages/index/applib/annotation/Collection.adoc  |   17 +-
 .../index/applib/annotation/CollectionLayout.adoc  |   29 +-
 .../pages/index/applib/annotation/Defaulted.adoc   |   11 +-
 .../index/applib/annotation/DomainObject.adoc      |   64 +-
 .../applib/annotation/DomainObjectLayout.adoc      |   41 +-
 .../index/applib/annotation/DomainService.adoc     |   11 +-
 .../applib/annotation/DomainServiceLayout.adoc     |   11 +-
 .../pages/index/applib/annotation/Editing.adoc     |   17 +-
 .../index/applib/annotation/EntityChangeKind.adoc  |    8 +-
 .../index/applib/annotation/EqualByContent.adoc    |    5 +-
 .../pages/index/applib/annotation/Facets.adoc      |   11 +-
 .../pages/index/applib/annotation/HomePage.adoc    |    5 +-
 .../index/applib/annotation/InteractionScope.adoc  |    5 +-
 .../index/applib/annotation/LabelPosition.adoc     |   15 +-
 .../pages/index/applib/annotation/MemberOrder.adoc |   13 +-
 .../pages/index/applib/annotation/MinLength.adoc   |    6 +-
 .../pages/index/applib/annotation/Module.adoc      |    5 +-
 .../pages/index/applib/annotation/Nature.adoc      |   23 +-
 .../index/applib/annotation/NatureOfService.adoc   |   17 +-
 .../pages/index/applib/annotation/Navigable.adoc   |    9 +-
 .../pages/index/applib/annotation/Optionality.adoc |   23 +-
 .../index/applib/annotation/OrderPrecedence.adoc   |   20 +-
 .../pages/index/applib/annotation/Parameter.adoc   |   32 +-
 .../index/applib/annotation/ParameterLayout.adoc   |   31 +-
 .../index/applib/annotation/Programmatic.adoc      |    5 +-
 .../pages/index/applib/annotation/Projecting.adoc  |   11 +-
 .../pages/index/applib/annotation/PromptStyle.adoc |   32 +-
 .../pages/index/applib/annotation/Property.adoc    |   63 +-
 .../index/applib/annotation/PropertyLayout.adoc    |   43 +-
 .../pages/index/applib/annotation/Publishing.adoc  |   17 +-
 .../pages/index/applib/annotation/Redirect.adoc    |   16 +-
 .../pages/index/applib/annotation/RenderDay.adoc   |   12 +-
 .../pages/index/applib/annotation/Repainting.adoc  |   12 +-
 .../pages/index/applib/annotation/RestrictTo.adoc  |    8 +-
 .../pages/index/applib/annotation/SemanticsOf.adoc |   39 +-
 .../pages/index/applib/annotation/Snapshot.adoc    |   14 +-
 .../pages/index/applib/annotation/Title.adoc       |   21 +-
 .../pages/index/applib/annotation/Value.adoc       |   11 +-
 .../pages/index/applib/annotation/Where.adoc       |   41 +-
 .../client/RepresentationTypeSimplifiedV2.adoc     |   33 +-
 .../pages/index/applib/client/SuppressionType.adoc |   24 +-
 .../pages/index/applib/clock/VirtualClock.adoc     |   41 +-
 .../index/applib/domain/DomainObjectList.adoc      |   14 +-
 .../pages/index/applib/events/EventObjectBase.adoc |   14 +-
 .../applib/events/domain/AbstractDomainEvent.adoc  |   51 +-
 .../applib/events/domain/ActionDomainEvent.adoc    |   24 +-
 .../events/domain/CollectionDomainEvent.adoc       |   15 +-
 .../applib/events/domain/PropertyDomainEvent.adoc  |    9 +-
 .../events/lifecycle/AbstractLifecycleEvent.adoc   |    7 +-
 .../events/lifecycle/ObjectCreatedEvent.adoc       |    7 +-
 .../applib/events/lifecycle/ObjectLoadedEvent.adoc |    7 +-
 .../events/lifecycle/ObjectPersistedEvent.adoc     |    7 +-
 .../events/lifecycle/ObjectPersistingEvent.adoc    |    7 +-
 .../events/lifecycle/ObjectRemovingEvent.adoc      |    7 +-
 .../events/lifecycle/ObjectUpdatedEvent.adoc       |    7 +-
 .../events/lifecycle/ObjectUpdatingEvent.adoc      |    7 +-
 .../index/applib/events/ui/AbstractUiEvent.adoc    |   15 +-
 .../index/applib/events/ui/CssClassUiEvent.adoc    |   12 +-
 .../pages/index/applib/events/ui/IconUiEvent.adoc  |   15 +-
 .../index/applib/events/ui/LayoutUiEvent.adoc      |   12 +-
 .../pages/index/applib/events/ui/TitleUiEvent.adoc |   15 +-
 .../applib/exceptions/RecoverableException.adoc    |   13 +-
 .../applib/exceptions/TranslatableException.adoc   |   15 +-
 .../applib/exceptions/UnrecoverableException.adoc  |   13 +-
 .../unrecoverable/DomainModelException.adoc        |    8 +-
 .../unrecoverable/MetaModelException.adoc          |    8 +-
 .../unrecoverable/NoAuthenticatorException.adoc    |    8 +-
 .../unrecoverable/ObjectNotFoundException.adoc     |    7 +-
 .../unrecoverable/ObjectPersistenceException.adoc  |    8 +-
 .../unrecoverable/PersistFailedException.adoc      |    8 +-
 .../unrecoverable/ReflectiveActionException.adoc   |    8 +-
 .../unrecoverable/RepositoryException.adoc         |    8 +-
 .../unrecoverable/UnexpectedCallException.adoc     |    6 +-
 .../unrecoverable/UnknownTypeException.adoc        |    7 +-
 .../generated/pages/index/applib/graph/Edge.adoc   |    7 +-
 .../pages/index/applib/graph/SimpleEdge.adoc       |    7 +-
 .../generated/pages/index/applib/graph/Vertex.adoc |   10 +-
 .../index/applib/graph/tree/LazyTreeNode.adoc      |   13 +-
 .../pages/index/applib/graph/tree/TreeAdapter.adoc |   14 +-
 .../pages/index/applib/graph/tree/TreeNode.adoc    |   37 +-
 .../pages/index/applib/graph/tree/TreePath.adoc    |   14 +-
 .../pages/index/applib/graph/tree/TreeState.adoc   |    7 +-
 .../pages/index/applib/jaxb/DataTypeFactory.adoc   |    6 +-
 .../index/applib/jaxb/JavaSqlJaxbAdapters.adoc     |    5 +-
 .../JavaSqlXMLGregorianCalendarMarshalling.adoc    |    8 +-
 .../index/applib/jaxb/JavaTimeJaxbAdapters.adoc    |    5 +-
 .../JavaTimeXMLGregorianCalendarMarshalling.adoc   |   17 +-
 .../index/applib/jaxb/JavaUtilJaxbAdapters.adoc    |    5 +-
 .../index/applib/jaxb/JodaTimeJaxbAdapters.adoc    |    5 +-
 .../JodaTimeXMLGregorianCalendarMarshalling.adoc   |   13 +-
 .../applib/jaxb/PersistentEntitiesAdapter.adoc     |    7 +-
 .../index/applib/jaxb/PersistentEntityAdapter.adoc |    7 +-
 .../index/applib/jaxb/PrimitiveJaxbAdapters.adoc   |    5 +-
 .../applib/layout/component/ActionLayoutData.adoc  |   46 +-
 .../layout/component/ActionLayoutDataOwner.adoc    |    7 +-
 .../layout/component/CollectionLayoutData.adoc     |   46 +-
 .../component/CollectionLayoutDataOwner.adoc       |    6 +-
 .../layout/component/CssClassFaPosition.adoc       |    8 +-
 .../layout/component/DomainObjectLayoutData.adoc   |   34 +-
 .../component/DomainObjectLayoutDataOwner.adoc     |    7 +-
 .../index/applib/layout/component/FieldSet.adoc    |   36 +-
 .../applib/layout/component/FieldSetOwner.adoc     |    6 +-
 .../applib/layout/component/HasBookmarking.adoc    |    7 +-
 .../index/applib/layout/component/HasCssClass.adoc |    7 +-
 .../applib/layout/component/HasCssClassFa.adoc     |    9 +-
 .../applib/layout/component/HasDescribedAs.adoc    |    7 +-
 .../index/applib/layout/component/HasHidden.adoc   |    7 +-
 .../index/applib/layout/component/HasNamed.adoc    |    9 +-
 .../applib/layout/component/MemberRegion.adoc      |    7 +-
 .../applib/layout/component/MemberRegionOwner.adoc |    5 +-
 .../pages/index/applib/layout/component/Owned.adoc |    6 +-
 .../pages/index/applib/layout/component/Owner.adoc |    5 +-
 .../layout/component/PropertyLayoutData.adoc       |   48 +-
 .../layout/component/ServiceActionLayoutData.adoc  |   39 +-
 .../component/ServiceActionLayoutDataOwner.adoc    |    7 +-
 .../pages/index/applib/layout/grid/Grid.adoc       |   15 +-
 .../index/applib/layout/grid/GridAbstract.adoc     |   15 +-
 .../applib/layout/grid/bootstrap3/BS3ClearFix.adoc |    5 +-
 .../layout/grid/bootstrap3/BS3ClearFixHidden.adoc  |    6 +-
 .../layout/grid/bootstrap3/BS3ClearFixVisible.adoc |    8 +-
 .../applib/layout/grid/bootstrap3/BS3Col.adoc      |   41 +-
 .../applib/layout/grid/bootstrap3/BS3Element.adoc  |    9 +-
 .../layout/grid/bootstrap3/BS3ElementAbstract.adoc |    9 +-
 .../applib/layout/grid/bootstrap3/BS3Grid.adoc     |   17 +-
 .../applib/layout/grid/bootstrap3/BS3Row.adoc      |   21 +-
 .../layout/grid/bootstrap3/BS3RowContent.adoc      |   14 +-
 .../layout/grid/bootstrap3/BS3RowContentOwner.adoc |    5 +-
 .../applib/layout/grid/bootstrap3/BS3RowOwner.adoc |    6 +-
 .../applib/layout/grid/bootstrap3/BS3Tab.adoc      |   15 +-
 .../applib/layout/grid/bootstrap3/BS3TabGroup.adoc |   24 +-
 .../layout/grid/bootstrap3/BS3TabGroupOwner.adoc   |    6 +-
 .../applib/layout/grid/bootstrap3/BS3TabOwner.adoc |    6 +-
 .../applib/layout/grid/bootstrap3/HasCssId.adoc    |    8 +-
 .../index/applib/layout/grid/bootstrap3/Size.adoc  |   10 +-
 .../applib/layout/grid/bootstrap3/SizeSpan.adoc    |   15 +-
 .../applib/layout/grid/bootstrap3/WithinGrid.adoc  |    6 +-
 .../pages/index/applib/layout/links/Link.adoc      |   12 +-
 .../index/applib/layout/menubars/HasNamed.adoc     |    6 +-
 .../pages/index/applib/layout/menubars/Menu.adoc   |    5 +-
 .../index/applib/layout/menubars/MenuBar.adoc      |    5 +-
 .../index/applib/layout/menubars/MenuBars.adoc     |   10 +-
 .../applib/layout/menubars/MenuBarsAbstract.adoc   |    8 +-
 .../index/applib/layout/menubars/MenuSection.adoc  |    6 +-
 .../applib/layout/menubars/bootstrap3/BS3Menu.adoc |   16 +-
 .../layout/menubars/bootstrap3/BS3MenuBar.adoc     |    8 +-
 .../layout/menubars/bootstrap3/BS3MenuBars.adoc    |   18 +-
 .../layout/menubars/bootstrap3/BS3MenuSection.adoc |   10 +-
 .../pages/index/applib/mixins/MixinConstants.adoc  |    8 +-
 .../pages/index/applib/mixins/dto/Dto.adoc         |    5 +-
 .../index/applib/mixins/dto/Dto_downloadXml.adoc   |    8 +-
 .../index/applib/mixins/dto/Dto_downloadXsd.adoc   |   10 +-
 .../mixins/layout/Object_downloadLayoutXml.adoc    |    9 +-
 .../applib/mixins/layout/Object_openRestApi.adoc   |    8 +-
 .../mixins/layout/Object_rebuildMetamodel.adoc     |    7 +-
 .../metamodel/Object_downloadMetamodelXml.adoc     |   10 +-
 .../mixins/metamodel/Object_objectIdentifier.adoc  |    6 +-
 .../applib/mixins/metamodel/Object_objectType.adoc |    6 +-
 .../index/applib/query/AllInstancesQuery.adoc      |    5 +-
 .../pages/index/applib/query/NamedQuery.adoc       |    9 +-
 .../generated/pages/index/applib/query/Query.adoc  |   20 +-
 .../pages/index/applib/query/QueryRange.adoc       |   32 +-
 .../index/applib/services/DomainChangeRecord.adoc  |   32 +-
 .../index/applib/services/MethodReferences.adoc    |    5 +-
 .../RepresentsInteractionMemberExecution.adoc      |    6 +-
 .../services/acceptheader/AcceptHeaderService.adoc |   20 +-
 .../appfeat/ApplicationFeatureRepository.adoc      |   12 +-
 .../services/appfeat/ApplicationMemberType.adoc    |    9 +-
 .../index/applib/services/bookmark/Bookmark.adoc   |   16 +-
 .../applib/services/bookmark/BookmarkHolder.adoc   |    6 +-
 .../services/bookmark/BookmarkHolder_lookup.adoc   |    6 +-
 .../services/bookmark/BookmarkHolder_object.adoc   |    6 +-
 .../applib/services/bookmark/BookmarkService.adoc  |   25 +-
 .../services/bookmarkui/BookmarkUiService.adoc     |   16 +-
 .../index/applib/services/clock/ClockService.adoc  |    7 +-
 .../index/applib/services/command/Command.adoc     |   20 +-
 .../services/command/CommandExecutorService.adoc   |   11 +-
 .../services/command/CommandOutcomeHandler.adoc    |   10 +-
 .../applib/services/commanddto/HasCommandDto.adoc  |    6 +-
 .../conmap/ContentMappingServiceForCommandDto.adoc |    9 +-
 .../ContentMappingServiceForCommandsDto.adoc       |   10 +-
 .../services/commanddto/conmap/UserDataKeys.adoc   |    7 +-
 .../commanddto/processor/CommandDtoProcessor.adoc  |   10 +-
 .../CommandDtoProcessorForActionAbstract.adoc      |    5 +-
 .../CommandDtoProcessorForPropertyAbstract.adoc    |    5 +-
 .../processor/spi/CommandDtoProcessorService.adoc  |   12 +-
 .../spi/CommandDtoProcessorServiceIdentity.adoc    |    6 +-
 .../services/confview/ConfigurationMenu.adoc       |    7 +-
 .../services/confview/ConfigurationProperty.adoc   |    7 +-
 .../confview/ConfigurationViewService.adoc         |    8 +-
 .../services/conmap/ContentMappingService.adoc     |    8 +-
 .../index/applib/services/email/EmailService.adoc  |   10 +-
 .../index/applib/services/error/ErrorDetails.adoc  |    5 +-
 .../services/error/ErrorReportingService.adoc      |    6 +-
 .../index/applib/services/error/SimpleTicket.adoc  |   17 +-
 .../pages/index/applib/services/error/Ticket.adoc  |   20 +-
 .../applib/services/eventbus/EventBusService.adoc  |    6 +-
 .../services/exceprecog/ExceptionRecognizer.adoc   |    8 +-
 .../exceprecog/ExceptionRecognizerAbstract.adoc    |   10 +-
 .../exceprecog/ExceptionRecognizerForType.adoc     |   11 +-
 .../exceprecog/ExceptionRecognizerService.adoc     |   14 +-
 .../applib/services/factory/FactoryService.adoc    |   35 +-
 .../applib/services/grid/GridLoaderService.adoc    |   26 +-
 .../index/applib/services/grid/GridService.adoc    |   44 +-
 .../applib/services/grid/GridSystemService.adoc    |   16 +-
 .../pages/index/applib/services/health/Health.adoc |    9 +-
 .../applib/services/health/HealthCheckService.adoc |    6 +-
 .../index/applib/services/hint/HintStore.adoc      |   10 +-
 .../services/homepage/HomePageResolverService.adoc |    6 +-
 .../index/applib/services/i18n/LocaleProvider.adoc |    6 +-
 .../applib/services/i18n/TranslatableString.adoc   |   36 +-
 .../applib/services/i18n/TranslationService.adoc   |   14 +-
 .../applib/services/i18n/TranslationsResolver.adoc |    6 +-
 .../applib/services/iactn/ExecutionContext.adoc    |    8 +-
 .../index/applib/services/iactn/Interaction.adoc   |   15 +-
 .../applib/services/iactn/InteractionContext.adoc  |    9 +-
 .../applib/services/inject/ServiceInjector.adoc    |    7 +-
 .../index/applib/services/jaxb/JaxbService.adoc    |   16 +-
 .../applib/services/layout/LayoutService.adoc      |   14 +-
 .../applib/services/layout/LayoutServiceMenu.adoc  |   12 +-
 .../applib/services/linking/DeepLinkService.adoc   |    8 +-
 .../services/menu/MenuBarsLoaderService.adoc       |   11 +-
 .../applib/services/menu/MenuBarsService.adoc      |    9 +-
 .../applib/services/message/MessageService.adoc    |   32 +-
 .../index/applib/services/metamodel/BeanSort.adoc  |   36 +-
 .../applib/services/metamodel/DomainMember.adoc    |   19 +-
 .../applib/services/metamodel/DomainModel.adoc     |    6 +-
 .../services/metamodel/MetaModelService.adoc       |   23 +-
 .../services/metamodel/MetaModelServiceMenu.adoc   |   17 +-
 .../applib/services/metrics/MetricsService.adoc    |   15 +-
 .../services/publishing/log/CommandLogger.adoc     |    7 +-
 .../publishing/log/EntityChangesLogger.adoc        |    7 +-
 .../publishing/log/EntityPropertyChangeLogger.adoc |    7 +-
 .../services/publishing/log/ExecutionLogger.adoc   |    7 +-
 .../services/publishing/spi/CommandSubscriber.adoc |    8 +-
 .../services/publishing/spi/EntityChanges.adoc     |   12 +-
 .../publishing/spi/EntityChangesSubscriber.adoc    |    8 +-
 .../publishing/spi/EntityPropertyChange.adoc       |    6 +-
 .../spi/EntityPropertyChangeSubscriber.adoc        |    8 +-
 .../publishing/spi/ExecutionSubscriber.adoc        |    8 +-
 .../queryresultscache/QueryResultCacheControl.adoc |    6 +-
 .../queryresultscache/QueryResultsCache.adoc       |   15 +-
 .../applib/services/registry/ServiceRegistry.adoc  |   28 +-
 .../applib/services/repository/EntityState.adoc    |   13 +-
 .../services/repository/RepositoryService.adoc     |   73 +-
 .../applib/services/routing/RoutingService.adoc    |    7 +-
 .../applib/services/scratchpad/Scratchpad.adoc     |   11 +-
 .../services/session/SessionLoggingService.adoc    |    6 +-
 .../session/SessionLoggingServiceLogging.adoc      |    6 +-
 .../index/applib/services/sudo/SudoService.adoc    |   14 +-
 .../applib/services/swagger/SwaggerService.adoc    |    6 +-
 .../TableColumnOrderForCollectionTypeAbstract.adoc |    7 +-
 .../services/tablecol/TableColumnOrderService.adoc |    7 +-
 .../index/applib/services/title/TitleService.adoc  |   11 +-
 .../services/urlencoding/UrlEncodingService.adoc   |    9 +-
 ...rlEncodingServiceUsingBaseEncodingAbstract.adoc |    7 +-
 .../index/applib/services/user/RoleMemento.adoc    |   12 +-
 .../index/applib/services/user/UserMemento.adoc    |   33 +-
 .../index/applib/services/user/UserService.adoc    |   20 +-
 .../services/userprof/UserProfileService.adoc      |    8 +-
 .../services/userreg/EmailNotificationService.adoc |   12 +-
 .../index/applib/services/userreg/UserDetails.adoc |    5 +-
 .../services/userreg/UserRegistrationService.adoc  |   11 +-
 .../userreg/events/EmailEventAbstract.adoc         |    9 +-
 .../userreg/events/EmailRegistrationEvent.adoc     |    6 +-
 .../userreg/events/PasswordResetEvent.adoc         |    6 +-
 .../applib/services/wrapper/DisabledException.adoc |    7 +-
 .../applib/services/wrapper/HiddenException.adoc   |    7 +-
 .../applib/services/wrapper/InvalidException.adoc  |    7 +-
 .../applib/services/wrapper/WrapperFactory.adoc    |   39 +-
 .../applib/services/wrapper/WrappingObject.adoc    |   14 +-
 .../services/wrapper/control/AsyncControl.adoc     |   12 +-
 .../services/wrapper/control/ControlAbstract.adoc  |   12 +-
 .../services/wrapper/control/ExceptionHandler.adoc |    8 +-
 .../wrapper/control/ExceptionHandlerAbstract.adoc  |    6 +-
 .../services/wrapper/control/ExecutionMode.adoc    |   11 +-
 .../services/wrapper/control/SyncControl.adoc      |   11 +-
 .../services/wrapper/events/AccessEvent.adoc       |    6 +-
 .../wrapper/events/ActionArgumentEvent.adoc        |   12 +-
 .../wrapper/events/ActionInvocationEvent.adoc      |   11 +-
 .../wrapper/events/ActionUsabilityEvent.adoc       |    6 +-
 .../wrapper/events/ActionVisibilityEvent.adoc      |    6 +-
 .../wrapper/events/CollectionAccessEvent.adoc      |    6 +-
 .../wrapper/events/CollectionAddToEvent.adoc       |    9 +-
 .../wrapper/events/CollectionMethodEvent.adoc      |   21 +-
 .../wrapper/events/CollectionRemoveFromEvent.adoc  |    7 +-
 .../wrapper/events/CollectionUsabilityEvent.adoc   |    6 +-
 .../services/wrapper/events/InteractionEvent.adoc  |   45 +-
 .../services/wrapper/events/ObjectTitleEvent.adoc  |    7 +-
 .../wrapper/events/ObjectValidityEvent.adoc        |    7 +-
 .../wrapper/events/ObjectVisibilityEvent.adoc      |    6 +-
 .../services/wrapper/events/ParseValueEvent.adoc   |   10 +-
 .../wrapper/events/PropertyAccessEvent.adoc        |    7 +-
 .../wrapper/events/PropertyModifyEvent.adoc        |    9 +-
 .../wrapper/events/PropertyUsabilityEvent.adoc     |    6 +-
 .../wrapper/events/PropertyVisibilityEvent.adoc    |    6 +-
 .../wrapper/events/ProposedHolderEvent.adoc        |    7 +-
 .../services/wrapper/events/UsabilityEvent.adoc    |    6 +-
 .../services/wrapper/events/ValidityEvent.adoc     |    8 +-
 .../services/wrapper/events/VisibilityEvent.adoc   |    6 +-
 .../wrapper/listeners/InteractionAdapter.adoc      |   21 +-
 .../wrapper/listeners/InteractionListener.adoc     |   53 +-
 .../index/applib/services/xactn/TransactionId.adoc |    6 +-
 .../applib/services/xactn/TransactionService.adoc  |   17 +-
 .../applib/services/xactn/TransactionState.adoc    |   34 +-
 .../services/xactn/TransactionalProcessor.adoc     |   23 +-
 .../index/applib/services/xml/XmlService.adoc      |   17 +-
 .../services/xmlsnapshot/XmlSnapshotService.adoc   |   14 +-
 .../xmlsnapshot/XmlSnapshotService~Snapshot.adoc   |   11 +-
 .../XmlSnapshotService~Snapshot~Builder.adoc       |   14 +-
 .../snapshot/SnapshottableWithInclusions.adoc      |    8 +-
 .../index/applib/spec/AbstractSpecification.adoc   |    8 +-
 .../index/applib/spec/AbstractSpecification2.adoc  |    9 +-
 .../pages/index/applib/spec/Specification.adoc     |    8 +-
 .../pages/index/applib/spec/Specification2.adoc    |    8 +-
 .../pages/index/applib/spec/SpecificationAnd.adoc  |    7 +-
 .../pages/index/applib/spec/SpecificationNot.adoc  |    7 +-
 .../pages/index/applib/spec/SpecificationOr.adoc   |    7 +-
 .../pages/index/applib/types/DescriptionType.adoc  |    5 +-
 .../index/applib/types/MemberIdentifierType.adoc   |    5 +-
 .../pages/index/applib/types/TargetActionType.adoc |    5 +-
 .../pages/index/applib/types/TargetClassType.adoc  |    5 +-
 .../generated/pages/index/applib/util/Enums.adoc   |   11 +-
 .../pages/index/applib/util/Equality.adoc          |    8 +-
 .../generated/pages/index/applib/util/Hashing.adoc |    8 +-
 .../pages/index/applib/util/JaxbUtil.adoc          |   10 +-
 .../pages/index/applib/util/ObjectContracts.adoc   |   14 +-
 .../pages/index/applib/util/ReasonBuffer.adoc      |   19 +-
 .../pages/index/applib/util/ReasonBuffer2.adoc     |   32 +-
 .../generated/pages/index/applib/util/Reasons.adoc |    6 +-
 .../pages/index/applib/util/TitleBuffer.adoc       |   73 +-
 .../index/applib/util/TitleBufferException.adoc    |   10 +-
 .../pages/index/applib/util/ToString.adoc          |   11 +-
 .../index/applib/util/schema/ChangesDtoUtils.adoc  |   14 +-
 .../index/applib/util/schema/CommandDtoUtils.adoc  |   21 +-
 .../index/applib/util/schema/CommonDtoUtils.adoc   |   22 +-
 .../applib/util/schema/InteractionDtoUtils.adoc    |   36 +-
 .../util/schema/MemberExecutionDtoUtils.adoc       |   13 +-
 .../generated/pages/index/applib/value/Blob.adoc   |   23 +-
 .../generated/pages/index/applib/value/Clob.adoc   |   21 +-
 .../pages/index/applib/value/HasHtml.adoc          |    6 +-
 .../index/applib/value/LocalResourcePath.adoc      |   12 +-
 .../generated/pages/index/applib/value/Markup.adoc |   16 +-
 .../index/applib/value/NamedWithMimeType.adoc      |    7 +-
 .../pages/index/applib/value/Password.adoc         |    8 +-
 .../pages/index/commons/collections/Can.adoc       |  121 +-
 .../index/commons/collections/Cardinality.adoc     |   17 +-
 .../pages/index/commons/functional/Result.adoc     |   29 +-
 .../pages/index/commons/having/HasUniqueId.adoc    |    8 +-
 .../pages/index/commons/having/HasUpdatedAt.adoc   |    6 +-
 .../pages/index/commons/having/HasUpdatedBy.adoc   |    6 +-
 .../pages/index/commons/having/HasUsername.adoc    |    8 +-
 .../commons/resource/ResourceCoordinates.adoc      |    7 +-
 .../DataSourceIntrospectionService.adoc            |    8 +-
 ...ceptionRecognizerForOtherDataAccessProblem.adoc |    6 +-
 .../transaction/TransactionServiceSpring.adoc      |   20 +-
 .../runtimeservices/xml/XmlServiceDefault.adoc     |    9 +-
 .../changetracking/EntityChangeTrackerDefault.adoc |   21 +-
 .../events/TransactionAfterCompletionEvent.adoc    |   18 +-
 .../commandlog/impl/CommandSubscriberForJdo.adoc   |    7 +-
 .../impl/IsisModuleExtCommandLogImpl.adoc          |    9 +-
 .../impl/mixins/HasUniqueId_command.adoc           |   12 +-
 .../mixins/HasUsername_recentCommandsByUser.adoc   |    9 +-
 .../commandlog/impl/ui/CommandServiceMenu.adoc     |   16 +-
 .../primary/IsisModuleExtCommandReplayPrimary.adoc |    5 +-
 .../primary/config/PrimaryConfig.adoc              |    8 +-
 .../primary/mixins/Object_openOnSecondary.adoc     |   10 +-
 .../primary/restapi/CommandRetrievalService.adoc   |   12 +-
 .../primary/ui/CommandReplayOnPrimaryService.adoc  |   29 +-
 .../IsisModuleExtCommandReplaySecondary.adoc       |   12 +-
 .../commandreplay/secondary/SecondaryStatus.adoc   |   11 +-
 .../secondary/analyser/CommandReplayAnalyser.adoc  |    8 +-
 .../analyser/CommandReplayAnalyserException.adoc   |    7 +-
 .../analyser/CommandReplayAnalyserResult.adoc      |    7 +-
 .../analysis/CommandReplayAnalysisService.adoc     |    9 +-
 .../secondary/clock/TickingClockService.adoc       |   14 +-
 .../secondary/config/SecondaryConfig.adoc          |   14 +-
 .../executor/CommandExecutorServiceWithTime.adoc   |   12 +-
 .../secondary/fetch/CommandFetcher.adoc            |   10 +-
 .../secondary/job/ReplicateAndReplayJob.adoc       |    8 +-
 .../secondary/job/SecondaryStatusData.adoc         |    9 +-
 .../jobcallables/ReplicateAndRunCommands.adoc      |   14 +-
 .../secondary/mixins/CommandJdo_exclude.adoc       |   10 +-
 .../secondary/mixins/CommandJdo_replayQueue.adoc   |   10 +-
 .../secondary/mixins/Object_openOnPrimary.adoc     |   10 +-
 .../spi/ReplayCommandExecutionController.adoc      |    8 +-
 .../ui/CommandReplayOnSecondaryService.adoc        |    9 +-
 .../cors/impl/IsisModuleExtCorsImpl.adoc           |    6 +-
 .../fullcalendar/applib/CalendarEventable.adoc     |   11 +-
 .../fullcalendar/applib/Calendarable.adoc          |   13 +-
 .../applib/IsisModuleExtFullCalendarApplib.adoc    |    5 +-
 .../spi/CalendarableDereferencingService.adoc      |    6 +-
 .../fullcalendar/applib/value/CalendarEvent.adoc   |   20 +-
 .../ui/component/IsisModuleExtFullCalendarUi.adoc  |    5 +-
 .../hsqldbmgr/dom/IsisModuleExtHsqldbMgr.adoc      |    5 +-
 .../hsqldbmgr/dom/services/HsqlDbManagerMenu.adoc  |    8 +-
 .../applib/IsisModuleExtJaxRsClientApplib.adoc     |    5 +-
 .../jaxrsclient/applib/client/JaxRsClient.adoc     |    7 +-
 .../jaxrsclient/applib/client/JaxRsResponse.adoc   |    7 +-
 .../applib/IsisModuleIncModelApplib.adoc           |    5 +-
 .../modelannotation/applib/annotation/Model.adoc   |    5 +-
 .../metamodel/IsisModuleExtModelAnnotation.adoc    |    5 +-
 .../SupportingMethodValidatorRefinerFactory.adoc   |    8 +-
 .../services/IncubatorMetaModelPlugin.adoc         |    6 +-
 .../extensions/quartz/IsisModuleExtQuartzImpl.adoc |    5 +-
 .../quartz/context/JobExecutionData.adoc           |   11 +-
 .../spring/AutowiringSpringBeanJobFactory.adoc     |    6 +-
 .../restclient/ActionParameterListBuilder.adoc     |   14 +-
 .../restclient/IsisModuleExtRestClient.adoc        |    5 +-
 .../extensions/restclient/ResponseDigest.adoc      |   35 +-
 .../index/extensions/restclient/RestfulClient.adoc |   16 +-
 .../extensions/restclient/RestfulClientConfig.adoc |    5 +-
 .../restclient/RestfulClientException.adoc         |    9 +-
 .../restclient/auth/BasicAuthFilter.adoc           |    9 +-
 .../restclient/log/ClientConversationFilter.adoc   |    9 +-
 .../restclient/log/ClientConversationLogger.adoc   |    7 +-
 .../secman/api/IsisModuleExtSecmanApi.adoc         |    5 +-
 .../extensions/secman/api/SecmanConfiguration.adoc |   19 +-
 .../index/extensions/secman/api/SecurityRealm.adoc |    6 +-
 .../secman/api/SecurityRealmCharacteristic.adoc    |    6 +-
 .../secman/api/SecurityRealmService.adoc           |    6 +-
 .../api/encryption/PasswordEncryptionService.adoc  |    7 +-
 .../encryption/PasswordEncryptionServiceNone.adoc  |    7 +-
 .../secman/api/events/UserCreatedEvent.adoc        |    8 +-
 .../api/permission/ApplicationPermission.adoc      |   19 +-
 .../api/permission/ApplicationPermissionMode.adoc  |   14 +-
 .../ApplicationPermissionRepository.adoc           |   16 +-
 .../api/permission/ApplicationPermissionRule.adoc  |   12 +-
 .../api/permission/ApplicationPermissionValue.adoc |   15 +-
 .../permission/ApplicationPermissionValueSet.adoc  |   11 +-
 .../permission/PermissionsEvaluationService.adoc   |    8 +-
 .../PermissionsEvaluationServiceAbstract.adoc      |    6 +-
 ...PermissionsEvaluationServiceAllowBeatsVeto.adoc |    5 +-
 ...PermissionsEvaluationServiceVetoBeatsAllow.adoc |    5 +-
 .../secman/api/role/ApplicationRole.adoc           |   15 +-
 .../secman/api/role/ApplicationRoleRepository.adoc |   21 +-
 .../secman/api/tenancy/ApplicationTenancy.adoc     |   13 +-
 .../api/tenancy/ApplicationTenancyEvaluator.adoc   |   10 +-
 .../api/tenancy/ApplicationTenancyRepository.adoc  |   19 +-
 .../extensions/secman/api/tenancy/HasAtPath.adoc   |   10 +-
 .../extensions/secman/api/user/AccountType.adoc    |   10 +-
 .../secman/api/user/ApplicationUser.adoc           |   41 +-
 .../secman/api/user/ApplicationUserRepository.adoc |   26 +-
 .../secman/api/user/ApplicationUserStatus.adoc     |   10 +-
 .../IsisModuleExtSecmanEncryptionJbcrypt.adoc      |    5 +-
 .../PasswordEncryptionServiceUsingJBcrypt.adoc     |    7 +-
 .../jdo/IsisModuleExtSecmanPersistenceJdo.adoc     |    5 +-
 .../secman/jdo/seed/SeedSecurityModuleService.adoc |    7 +-
 .../jdo/seed/SeedUsersAndRolesFixtureScript.adoc   |    5 +-
 .../secman/jdo/seed/scripts/GlobalTenancy.adoc     |    7 +-
 ...xtFixturesFixtureResultsRoleAndPermissions.adoc |    7 +-
 .../IsisExtSecmanAdminRoleAndPermissions.adoc      |    6 +-
 .../jdo/seed/scripts/IsisExtSecmanAdminUser.adoc   |    6 +-
 .../IsisExtSecmanFixtureRoleAndPermissions.adoc    |    6 +-
 ...IsisExtSecmanRegularUserRoleAndPermissions.adoc |    6 +-
 .../jpa/IsisModuleExtSecmanPersistenceJpa.adoc     |    5 +-
 .../secman/jpa/seed/SeedSecurityModuleService.adoc |    7 +-
 .../jpa/seed/SeedUsersAndRolesFixtureScript.adoc   |    5 +-
 .../secman/jpa/seed/scripts/GlobalTenancy.adoc     |    7 +-
 ...xtFixturesFixtureResultsRoleAndPermissions.adoc |    7 +-
 .../IsisExtSecmanAdminRoleAndPermissions.adoc      |    6 +-
 .../jpa/seed/scripts/IsisExtSecmanAdminUser.adoc   |    6 +-
 .../IsisExtSecmanFixtureRoleAndPermissions.adoc    |    6 +-
 ...IsisExtSecmanRegularUserRoleAndPermissions.adoc |    6 +-
 ...tyModuleAppUserRegistrationServiceAbstract.adoc |    9 +-
 .../secman/model/IsisModuleExtSecmanModel.adoc     |    5 +-
 .../secman/model/app/user/MeService.adoc           |    7 +-
 .../shiro/IsisModuleExtSecmanRealmShiro.adoc       |    5 +-
 .../shiro/IsisModuleExtSecmanShiroRealm.adoc       |   11 +-
 .../services/SecurityRealmServiceUsingShiro.adoc   |    6 +-
 .../extensions/secman/shiro/util/ShiroUtils.adoc   |    8 +-
 .../realm/impl/IsisLdapContextFactory.adoc         |    7 +-
 .../shirorealmldap/realm/impl/IsisLdapRealm.adoc   |   24 +-
 .../impl/IsisModuleExtShiroRealmLdapImpl.adoc      |    5 +-
 .../ui/IsisModuleExtExcelDownloadUi.adoc           |    5 +-
 .../ui/components/CollectionContentsAsExcel.adoc   |    7 +-
 .../CollectionContentsAsExcelFactory.adoc          |   10 +-
 .../pdfjs/applib/annotations/PdfJsViewer.adoc      |    8 +-
 .../wicket/pdfjs/applib/config/PdfJsConfig.adoc    |   19 +-
 .../viewer/wicket/pdfjs/applib/config/Scale.adoc   |   20 +-
 .../pdfjs/applib/spi/PdfJsViewerAdvisor.adoc       |    9 +-
 .../wicket/pdfjs/ui/IsisModuleExtPdfjsUi.adoc      |    5 +-
 .../jdo/applib/IsisModulePersistenceJdoApplib.adoc |    5 +-
 .../jdo/applib/integration/JdoSupportService.adoc  |   33 +-
 .../jdo/datanucleus/IsisModuleJdoDatanucleus.adoc  |   22 +-
 .../changetracking/JdoLifecycleListener.adoc       |   23 +-
 .../mixins/Persistable_datanucleusIdLong.adoc      |    7 +-
 .../mixins/Persistable_datanucleusVersionLong.adoc |    7 +-
 .../Persistable_datanucleusVersionTimestamp.adoc   |    7 +-
 .../mixins/Persistable_downloadJdoMetadata.adoc    |    8 +-
 .../jdo/datanucleus/schema/JdoSchemaService.adoc   |   32 -
 .../applib/IsisBookmarkConverter.adoc              |    7 +-
 .../applib/IsisLocalResourcePathConverter.adoc     |    7 +-
 .../typeconverters/applib/IsisMarkupConverter.adoc |    7 +-
 .../applib/IsisPasswordConverter.adoc              |    7 +-
 .../JavaAwtBufferedImageByteArrayConverter.adoc    |    7 +-
 .../schema/v2/IsisChangesDtoConverter.adoc         |    7 +-
 .../schema/v2/IsisCommandDtoConverter.adoc         |    7 +-
 .../schema/v2/IsisInteractionDtoConverter.adoc     |    7 +-
 .../schema/v2/IsisOidDtoConverter.adoc             |    7 +-
 .../time/IsoOffsetTimeConverter.adoc               |    7 +-
 .../time/IsoZonedDateTimeConverter.adoc            |    7 +-
 .../applib/ByteArrayBlobRdbmsMapping.adoc          |    7 +-
 .../valuetypes/applib/IsisBlobMapping.adoc         |   12 +-
 .../valuetypes/applib/IsisClobMapping.adoc         |   12 +-
 .../JpaEntityInjectionPointResolver.adoc           |    5 +-
 .../jpa/applib/services/JpaSupportService.adoc     |   11 +-
 .../jpa/eclipselink/IsisModuleJpaEclipselink.adoc  |    7 +-
 .../pages/index/schema/IsisModuleSchema.adoc       |    5 +-
 .../security/bypass/IsisModuleSecurityBypass.adoc  |    5 +-
 .../bypass/authentication/AuthenticatorBypass.adoc |    7 +-
 .../bypass/authorization/AuthorizorBypass.adoc     |    9 +-
 .../keycloak/IsisModuleSecurityKeycloak.adoc       |    5 +-
 .../authentication/AuthenticatorKeycloak.adoc      |    8 +-
 .../keycloak/authorization/AuthorizorKeycloak.adoc |    9 +-
 .../keycloak/webmodule/KeycloakFilter.adoc         |    8 +-
 .../keycloak/webmodule/WebModuleKeycloak.adoc      |    7 +-
 .../security/shiro/IsisModuleSecurityShiro.adoc    |    5 +-
 .../shiro/authentication/AuthenticatorShiro.adoc   |   10 +-
 .../shiro/authorization/AuthorizorShiro.adoc       |   13 +-
 .../shiro/authorization/IsisPermission.adoc        |   13 +-
 .../authorization/IsisPermissionResolver.adoc      |    7 +-
 .../security/shiro/webmodule/WebModuleShiro.adoc   |   10 +-
 .../index/subdomains/base/applib/Chained.adoc      |   11 +-
 .../pages/index/subdomains/base/applib/Dflt.adoc   |    6 +-
 .../applib/IsisModuleSubdomainsBaseApplib.adoc     |    5 +-
 .../index/subdomains/base/applib/PowerType.adoc    |    6 +-
 .../pages/index/subdomains/base/applib/Titled.adoc |    6 +-
 .../index/subdomains/base/applib/TitledEnum.adoc   |    5 +-
 .../base/applib/services/BaseServicesModule.adoc   |    5 +-
 .../applib/services/calendar/CalendarService.adoc  |   14 +-
 .../base/applib/types/DescriptionType.adoc         |    5 +-
 .../subdomains/base/applib/types/FqcnType.adoc     |    5 +-
 .../subdomains/base/applib/types/MoneyType.adoc    |    5 +-
 .../subdomains/base/applib/types/NameType.adoc     |    5 +-
 .../subdomains/base/applib/types/NotesType.adoc    |    5 +-
 .../base/applib/types/ObjectIdentifierType.adoc    |    5 +-
 .../base/applib/types/PercentageType.adoc          |    5 +-
 .../base/applib/types/ProperNameType.adoc          |    5 +-
 .../base/applib/types/ReferenceType.adoc           |    5 +-
 .../subdomains/base/applib/types/TitleType.adoc    |    5 +-
 .../base/applib/types/UrlTemplateType.adoc         |    5 +-
 .../subdomains/base/applib/types/UserNameType.adoc |    5 +-
 .../subdomains/base/applib/types/XxxType.adoc      |    5 +-
 .../subdomains/base/applib/utils/ClassUtils.adoc   |    6 +-
 .../base/applib/utils/JodaPeriodUtils.adoc         |    8 +-
 .../subdomains/base/applib/utils/MathUtils.adoc    |   11 +-
 .../subdomains/base/applib/utils/MessageUtils.adoc |    6 +-
 .../subdomains/base/applib/utils/StringUtils.adoc  |   10 +-
 .../subdomains/base/applib/utils/TitleBuilder.adoc |   16 +-
 .../base/applib/valuetypes/AbstractInterval.adoc   |   36 +-
 .../base/applib/valuetypes/LocalDateInterval.adoc  |   21 +-
 .../subdomains/base/applib/valuetypes/VT.adoc      |   37 +-
 .../base/applib/with/WithCodeComparable.adoc       |    6 +-
 .../base/applib/with/WithCodeGetter.adoc           |    6 +-
 .../base/applib/with/WithCodeUnique.adoc           |    5 +-
 .../applib/with/WithDescriptionComparable.adoc     |    6 +-
 .../base/applib/with/WithDescriptionGetter.adoc    |    6 +-
 .../base/applib/with/WithDescriptionUnique.adoc    |    5 +-
 .../subdomains/base/applib/with/WithInterval.adoc  |   16 +-
 .../base/applib/with/WithIntervalContiguous.adoc   |   14 +-
 .../base/applib/with/WithIntervalMutable.adoc      |    9 +-
 .../base/applib/with/WithNameComparable.adoc       |    6 +-
 .../base/applib/with/WithNameGetter.adoc           |    6 +-
 .../base/applib/with/WithNameUnique.adoc           |    5 +-
 .../base/applib/with/WithReferenceComparable.adoc  |    6 +-
 .../base/applib/with/WithReferenceGetter.adoc      |    6 +-
 .../base/applib/with/WithReferenceUnique.adoc      |    5 +-
 .../subdomains/base/applib/with/WithSequence.adoc  |    7 +-
 .../subdomains/base/applib/with/WithStartDate.adoc |    7 +-
 .../base/applib/with/WithTitleComparable.adoc      |    6 +-
 .../base/applib/with/WithTitleGetter.adoc          |    6 +-
 .../base/applib/with/WithTitleUnique.adoc          |    5 +-
 .../applib/IsisModuleSubdomainsExcelApplib.adoc    |    5 +-
 .../excel/applib/dom/AggregationType.adoc          |    7 +-
 .../excel/applib/dom/ExcelMetaDataEnabled.adoc     |    7 +-
 .../subdomains/excel/applib/dom/ExcelService.adoc  |   28 +-
 .../subdomains/excel/applib/dom/HyperLink.adoc     |    5 +-
 .../subdomains/excel/applib/dom/PivotColumn.adoc   |    6 +-
 .../excel/applib/dom/PivotDecoration.adoc          |    6 +-
 .../subdomains/excel/applib/dom/PivotRow.adoc      |    5 +-
 .../subdomains/excel/applib/dom/PivotValue.adoc    |    7 +-
 .../subdomains/excel/applib/dom/RowHandler.adoc    |    6 +-
 .../excel/applib/dom/WorksheetContent.adoc         |    8 +-
 .../subdomains/excel/applib/dom/WorksheetSpec.adoc |   17 +-
 .../excel/applib/dom/util/AnnotationList.adoc      |    8 +-
 .../excel/applib/dom/util/AnnotationTriplet.adoc   |    9 +-
 .../applib/dom/util/ExcelFileBlobConverter.adoc    |    7 +-
 .../excel/applib/dom/util/ExcelServiceImpl.adoc    |   42 +-
 .../subdomains/excel/applib/dom/util/Mode.adoc     |   11 +-
 .../excel/applib/dom/util/PivotUtils.adoc          |   11 +-
 .../excel/applib/dom/util/SheetPivoter.adoc        |   13 +-
 .../subdomains/excel/testing/ExcelFixture.adoc     |   13 +-
 .../subdomains/excel/testing/ExcelFixture2.adoc    |   12 +-
 .../excel/testing/ExcelFixtureRowHandler.adoc      |    6 +-
 .../excel/testing/ExcelFixtureWorkbookHandler.adoc |    6 +-
 .../excel/testing/FixtureAwareRowHandler.adoc      |    7 +-
 .../testing/IsisModuleSubdomainsExcelTesting.adoc  |    5 +-
 .../applib/IsisModuleSubdomainsSpringApplib.adoc   |    5 +-
 .../spring/applib/service/BeanDescriptor.adoc      |    7 +-
 .../spring/applib/service/ContextBeans.adoc        |    6 +-
 .../spring/applib/service/SpringBeansService.adoc  |    7 +-
 .../IsisModuleSubdomainsXDocReportApplib.adoc      |    5 +-
 .../xdocreport/applib/service/OutputType.adoc      |    7 +-
 .../xdocreport/applib/service/XDocReportModel.adoc |    6 +-
 .../applib/service/XDocReportService.adoc          |    8 +-
 .../applib/IsisModuleTestingFakeDataApplib.adoc    |    5 +-
 .../services/AbstractRandomValueGenerator.adoc     |    7 +-
 .../fakedata/applib/services/Addresses.adoc        |   20 +-
 .../fakedata/applib/services/BigDecimals.adoc      |    8 +-
 .../fakedata/applib/services/BigIntegers.adoc      |    7 +-
 .../testing/fakedata/applib/services/Books.adoc    |    9 +-
 .../testing/fakedata/applib/services/Booleans.adoc |   14 +-
 .../testing/fakedata/applib/services/Bytes.adoc    |    9 +-
 .../testing/fakedata/applib/services/Chars.adoc    |   10 +-
 .../fakedata/applib/services/Collections.adoc      |   39 +-
 .../testing/fakedata/applib/services/Comms.adoc    |   11 +-
 .../fakedata/applib/services/CreditCards.adoc      |    9 +-
 .../testing/fakedata/applib/services/Doubles.adoc  |    8 +-
 .../testing/fakedata/applib/services/Enums.adoc    |    7 +-
 .../fakedata/applib/services/FakeDataService.adoc  |   51 +-
 .../testing/fakedata/applib/services/Floats.adoc   |    7 +-
 .../testing/fakedata/applib/services/Integers.adoc |    9 +-
 .../fakedata/applib/services/IsisBlobs.adoc        |    9 +-
 .../fakedata/applib/services/IsisClobs.adoc        |    9 +-
 .../fakedata/applib/services/IsisPasswords.adoc    |    7 +-
 .../fakedata/applib/services/J8DateTimes.adoc      |   10 +-
 .../fakedata/applib/services/J8LocalDates.adoc     |   10 +-
 .../fakedata/applib/services/J8Periods.adoc        |   12 +-
 .../fakedata/applib/services/JavaSqlDates.adoc     |    7 +-
 .../applib/services/JavaSqlTimestamps.adoc         |    7 +-
 .../fakedata/applib/services/JavaUtilDates.adoc    |    7 +-
 .../fakedata/applib/services/JodaDateTimes.adoc    |   10 +-
 .../fakedata/applib/services/JodaLocalDates.adoc   |   10 +-
 .../fakedata/applib/services/JodaPeriods.adoc      |   12 +-
 .../testing/fakedata/applib/services/Longs.adoc    |    7 +-
 .../testing/fakedata/applib/services/Lorem.adoc    |   14 +-
 .../testing/fakedata/applib/services/Names.adoc    |   12 +-
 .../testing/fakedata/applib/services/Shorts.adoc   |    9 +-
 .../testing/fakedata/applib/services/Strings.adoc  |    9 +-
 .../testing/fakedata/applib/services/Urls.adoc     |    7 +-
 .../testing/fakedata/applib/services/Uuids.adoc    |    7 +-
 .../h2console/ui/IsisModuleTestingH2ConsoleUi.adoc |    5 +-
 .../h2console/ui/services/H2ManagerMenu.adoc       |    8 +-
 .../h2console/ui/webmodule/WebModuleH2Console.adoc |    8 +-
 .../applib/ExceptionRecognizerTranslate.adoc       |    6 +-
 .../applib/IsisIntegrationTestAbstract.adoc        |    5 +-
 .../applib/IsisInteractionHandler.adoc             |    7 +-
 .../integtestsupport/applib/ThrowableMatchers.adoc |    9 +-
 .../applib/swagger/SwaggerExporter.adoc            |   10 +-
 .../applib/validate/DomainModelValidator.adoc      |   19 +-
 .../applib/IsisModuleTestingSpecSupportApplib.adoc |    5 +-
 .../integration/ObjectFactoryForIntegration.adoc   |    9 +-
 .../index/testing/specsupport/applib/specs/V.adoc  |    5 +-
 .../IsisModuleTestingUnitTestSupportApplib.adoc    |    5 +-
 .../applib/bean/AbstractBeanPropertiesTest.adoc    |    6 +-
 .../bean/FixtureDatumFactoriesForAnyPojo.adoc      |    7 +-
 .../bean/FixtureDatumFactoriesForApplib.adoc       |    7 +-
 .../applib/bean/FixtureDatumFactoriesForJoda.adoc  |    8 +-
 .../applib/bean/FixtureDatumFactoriesForTime.adoc  |    9 +-
 .../unittestsupport/applib/bean/PojoTester.adoc    |   12 +-
 .../core/AbstractApplyToAllContractTest.adoc       |    8 +-
 ...irectionalRelationshipContractTestAbstract.adoc |    6 +-
 .../applib/core/bidir/Instantiator.adoc            |    7 +-
 .../applib/core/bidir/InstantiatorSimple.adoc      |    8 +-
 .../applib/core/bidir/Instantiators.adoc           |    6 +-
 .../ComparableContractTest_compareTo.adoc          |    6 +-
 .../core/comparable/ComparableContractTester.adoc  |   12 +-
 .../unittestsupport/applib/core/files/Files.adoc   |   17 +-
 .../applib/core/jaxb/JaxbMatchers.adoc             |    8 +-
 .../applib/core/jmocking/Imposterisers.adoc        |    8 +-
 .../core/jmocking/InjectIntoJMockAction.adoc       |   10 +-
 .../applib/core/jmocking/IsisActions.adoc          |    9 +-
 .../applib/core/jmocking/JMockActions.adoc         |    7 +-
 .../applib/core/jmocking/JUnitRuleMockery2.adoc    |   27 +-
 .../applib/core/jmocking/PostponedAction.adoc      |    7 +-
 .../core/soap/SoapEndpointPublishingRule.adoc      |   16 +-
 .../applib/core/soap/SoapEndpointSpec.adoc         |   16 +-
 .../sortedsets/SortedSetsContractTestAbstract.adoc |    5 +-
 .../applib/core/streams/NullPrintStream.adoc       |   12 +-
 .../applib/core/utils/CollectUtils.adoc            |    6 +-
 .../applib/core/utils/IndentPrinter.adoc           |   37 +-
 .../applib/core/utils/ReflectUtils.adoc            |   10 +-
 .../applib/core/utils/StringUtils.adoc             |    7 +-
 .../core/value/ValueTypeContractTestAbstract.adoc  |   11 +-
 .../applib/dom/assertions/Asserting.adoc           |    6 +-
 .../applib/dom/matchers/IsisMatchers.adoc          |   22 +-
 .../dom/privatecons/PrivateConstructorTester.adoc  |    7 +-
 .../applib/dom/reflect/ReflectUtils.adoc           |    7 +-
 .../applib/dom/repo/FinderInteraction.adoc         |   12 +-
 .../applib/IsisModuleValAsciidocApplib.adoc        |    5 +-
 .../asciidoc/applib/jaxb/AsciiDocJaxbAdapter.adoc  |    7 +-
 .../valuetypes/asciidoc/applib/value/AsciiDoc.adoc |   15 +-
 .../metamodel/IsisModuleValAsciidocMetaModel.adoc  |    5 +-
 .../IsisModuleValAsciidocPersistenceJdoDn5.adoc    |    5 +-
 .../jdo/dn5/converters/IsisAsciiDocConverter.adoc  |    7 +-
 .../ui/wkt/IsisModuleValAsciidocUiWkt.adoc         |    5 +-
 .../applib/IsisModuleValMarkdownApplib.adoc        |    5 +-
 .../markdown/applib/jaxb/MarkdownJaxbAdapter.adoc  |    7 +-
 .../markdown/applib/value/Converter.adoc           |    8 +-
 .../metamodel/IsisModuleValMarkdownMetaModel.adoc  |    5 +-
 .../IsisModuleValMarkdownPersistenceJdoDn5.adoc    |    5 +-
 .../jdo/dn5/converters/IsisMarkdownConverter.adoc  |    7 +-
 .../ui/wkt/IsisModuleValMarkdownUiWkt.adoc         |    5 +-
 .../sse/applib/IsisModuleValSseApplib.adoc         |    5 +-
 .../sse/applib/annotations/ServerSentEvents.adoc   |    6 +-
 .../sse/applib/annotations/SseSource.adoc          |    8 +-
 .../valuetypes/sse/applib/service/SseChannel.adoc  |   11 +-
 .../valuetypes/sse/applib/service/SseService.adoc  |    7 +-
 .../sse/ui/wkt/IsisModuleValSseUiWkt.adoc          |    5 +-
 .../sse/ui/wkt/services/SseServiceDefault.adoc     |    7 +-
 .../wkt/webmodule/WebModuleServerSentEvents.adoc   |    7 +-
 .../IsisModuleViewerRestfulObjectsApplib.adoc      |    5 +-
 .../restfulobjects/applib/JsonRepresentation.adoc  |  212 +-
 .../restfulobjects/applib/LinkRepresentation.adoc  |   24 +-
 .../index/viewer/restfulobjects/applib/Rel.adoc    |   51 +-
 .../restfulobjects/applib/RelDefinition.adoc       |   16 +-
 .../restfulobjects/applib/RepresentationType.adoc  |   54 +-
 .../restfulobjects/applib/RestfulHttpMethod.adoc   |    9 +-
 .../restfulobjects/applib/RestfulMediaType.adoc    |   36 +-
 .../restfulobjects/applib/RestfulRequest.adoc      |    7 +-
 .../restfulobjects/applib/RestfulResponse.adoc     |   14 +-
 .../applib/boot/BootstrapResource.adoc             |    6 +-
 .../AbstractObjectMemberRepresentation.adoc        |   10 +-
 .../domainobjects/ActionResultRepresentation.adoc  |    8 +-
 .../DomainObjectMemberRepresentation.adoc          |   16 +-
 .../domainobjects/DomainObjectRepresentation.adoc  |   29 +-
 .../applib/domainobjects/DomainObjectResource.adoc |   28 +-
 .../applib/domainobjects/DomainRepresentation.adoc |   11 +-
 .../domainobjects/DomainServiceResource.adoc       |   23 +-
 .../applib/domainobjects/ListRepresentation.adoc   |    8 +-
 .../domainobjects/ObjectActionRepresentation.adoc  |    7 +-
 .../ObjectCollectionRepresentation.adoc            |    7 +-
 .../ObjectPropertyRepresentation.adoc              |    6 +-
 .../domainobjects/ScalarValueRepresentation.adoc   |    7 +-
 .../AbstractTypeMemberRepresentation.adoc          |    6 +-
 .../ActionDescriptionRepresentation.adoc           |    7 +-
 .../ActionParameterDescriptionRepresentation.adoc  |    6 +-
 .../CollectionDescriptionRepresentation.adoc       |    6 +-
 .../domaintypes/DomainTypeRepresentation.adoc      |    6 +-
 .../applib/domaintypes/DomainTypeResource.adoc     |   14 +-
 .../PropertyDescriptionRepresentation.adoc         |    6 +-
 .../TypeActionResultRepresentation.adoc            |    6 +-
 .../applib/domaintypes/TypeListRepresentation.adoc |    6 +-
 .../applib/dtos/ScalarValueDtoV2.adoc              |    8 +-
 .../applib/errors/ErrorRepresentation.adoc         |    6 +-
 .../applib/health/HealthRepresentation.adoc        |    7 +-
 .../applib/health/HealthResource.adoc              |    9 +-
 .../applib/homepage/HomePageRepresentation.adoc    |    9 +-
 .../applib/homepage/HomePageResource.adoc          |   12 +-
 .../applib/menubars/MenuBarsResource.adoc          |   17 +-
 .../applib/user/UserRepresentation.adoc            |   11 +-
 .../restfulobjects/applib/user/UserResource.adoc   |   12 +-
 .../restfulobjects/applib/util/JsonMapper.adoc     |   14 +-
 .../restfulobjects/applib/util/JsonNodeUtils.adoc  |   10 +-
 .../restfulobjects/applib/util/MediaTypes.adoc     |    8 +-
 .../viewer/restfulobjects/applib/util/Parser.adoc  |   20 +-
 .../restfulobjects/applib/util/PathNode.adoc       |   15 +-
 .../applib/util/UrlEncodingUtils.adoc              |   12 +-
 .../applib/version/VersionRepresentation.adoc      |    8 +-
 .../applib/version/VersionResource.adoc            |    9 +-
 ...isModuleViewerRestfulObjectsJaxrsResteasy4.adoc |    5 +-
 .../conneg/RestfulObjectsJaxbWriterForXml.adoc     |    5 +-
 .../webmodule/WebModuleJaxrsResteasy4.adoc         |    8 +-
 .../IsisModuleRestfulObjectsRendering.adoc         |    5 +-
 .../rendering/service/RepresentationService.adoc   |   10 +-
 .../RepresentationServiceContentNegotiator.adoc    |   14 +-
 .../acceptheader/AcceptHeaderServiceForRest.adoc   |    6 +-
 .../service/conneg/ContentNegotiationService.adoc  |   10 +-
 .../conneg/ContentNegotiationServiceAbstract.adoc  |   10 +-
 ...entNegotiationServiceForRestfulObjectsV1_0.adoc |   20 +-
 .../ContentNegotiationServiceOrgApacheIsisV1.adoc  |   11 +-
 .../ContentNegotiationServiceOrgApacheIsisV2.adoc  |   27 +-
 .../ContentNegotiationServiceXRoDomainType.adoc    |   22 +-
 .../service/swagger/SwaggerServiceMenu.adoc        |   14 +-
 .../IsisModuleViewerRestfulObjectsViewer.adoc      |    5 +-
 .../wicket/model/IsisModuleViewerWicketModel.adoc  |    5 +-
 .../viewer/wicket/ui/IsisModuleViewerWicketUi.adoc |    5 +-
 .../viewer/IsisModuleViewerWicketViewer.adoc       |    5 +-
 .../modules/generated/pages/system-overview.adoc   | 7890 +++++++++-----------
 api/adoc/userguide/modules/ROOT/pages/about.adoc   |    2 +-
 .../btb/pages/programming-model/finetuning.adoc    |    6 +-
 .../fun/pages/concepts-patterns/core-values.adoc   |    2 +-
 .../fun/pages/concepts-patterns/metamodel.adoc     |    2 +-
 .../modules/fun/pages/object-members.adoc          |    6 +-
 .../modules/fun/pages/object-members/actions.adoc  |    4 +-
 .../fun/pages/object-members/collections.adoc      |    4 +-
 api/adoc/userguide/modules/fun/pages/overview.adoc |    2 +-
 .../modules/fun/pages/overview/business-rules.adoc |    8 +-
 .../modules/fun/pages/overview/modules.adoc        |    2 +-
 .../modules/fun/pages/overview/object-members.adoc |   14 +-
 api/adoc/userguide/modules/fun/pages/ui.adoc       |    2 +-
 .../modules/fun/pages/ui/action-icons-and-css.adoc |    6 +-
 .../fun/pages/ui/names-and-descriptions.adoc       |    2 +-
 .../modules/fun/pages/ui/object-layout.adoc        |   16 +-
 .../fun/pages/ui/object-titles-and-icons.adoc      |    4 +-
 .../modules/fun/pages/view-models/UNUSED-dto.adoc  |    2 +-
 .../userguide/modules/fun/partials/module-nav.adoc |    2 +-
 .../MemberOrder/sequence.adoc                      |    2 +-
 .../ParameterLayout/describedAs.adoc               |    2 +-
 .../main/adoc/modules/applib-ant/pages/Action.adoc |    3 +-
 .../modules/applib-ant/pages/ActionLayout.adoc     |    3 +-
 .../adoc/modules/applib-ant/pages/Collection.adoc  |    3 +-
 .../modules/applib-ant/pages/CollectionLayout.adoc |    4 +-
 .../main/adoc/modules/applib-ant/pages/Column.adoc |    2 +-
 .../main/adoc/modules/applib-ant/pages/Digits.adoc |    2 +-
 .../modules/applib-ant/pages/Discriminator.adoc    |    2 +-
 .../modules/applib-ant/pages/DomainObject.adoc     |    5 +-
 .../applib-ant/pages/DomainObjectLayout.adoc       |    3 +-
 .../modules/applib-ant/pages/DomainService.adoc    |    2 +-
 .../applib-ant/pages/DomainServiceLayout.adoc      |    3 +-
 .../main/adoc/modules/applib-ant/pages/Facets.adoc |    3 +-
 .../adoc/modules/applib-ant/pages/HomePage.adoc    |    3 +-
 .../modules/applib-ant/pages/InteractionScope.adoc |    3 +-
 .../adoc/modules/applib-ant/pages/MemberOrder.adoc |    7 +-
 .../adoc/modules/applib-ant/pages/MinLength.adoc   |    3 +-
 .../modules/applib-ant/pages/NotPersistent.adoc    |    2 +-
 .../adoc/modules/applib-ant/pages/Nullable.adoc    |    2 +-
 .../adoc/modules/applib-ant/pages/Parameter.adoc   |    3 +-
 .../modules/applib-ant/pages/ParameterLayout.adoc  |    3 +-
 .../adoc/modules/applib-ant/pages/Pattern.adoc     |    2 +-
 .../applib-ant/pages/PersistenceCapable.adoc       |    2 +-
 .../adoc/modules/applib-ant/pages/PrimaryKey.adoc  |    2 +-
 .../modules/applib-ant/pages/Programmatic.adoc     |    3 +-
 .../adoc/modules/applib-ant/pages/Property.adoc    |    3 +-
 .../modules/applib-ant/pages/PropertyLayout.adoc   |    3 +-
 .../main/adoc/modules/applib-ant/pages/Title.adoc  |    3 +-
 .../applib-ant/pages/XmlJavaTypeAdapter.adoc       |    2 +-
 .../adoc/modules/applib-ant/pages/about/main.adoc  |    4 +-
 .../adoc/modules/applib-ant/pages/about/other.adoc |    2 +-
 .../applib-classes/pages/layout/object-layout.adoc |    4 +-
 .../roles-mixins-contributees/mixins/Dto.adoc      |    2 +-
 .../pages/utility/ObjectContracts.adoc             |    2 +-
 .../modules/applib-methods/pages/prefixes.adoc     |    2 +-
 .../pages/reserved/deprecated/disable.adoc         |    4 +-
 .../pages/reserved/deprecated/hide.adoc            |    6 +-
 .../applib-svc/pages/AcceptHeaderService.adoc      |   35 +-
 .../hooks/introductory_notes.adoc                  |   20 +-
 .../pages/AcceptHeaderService/hooks/see_also.adoc  |    4 +
 .../pages/ApplicationFeatureRepository.adoc        |   16 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../hooks/see_also.adoc                            |   21 +-
 .../hooks/usage_notes.adoc                         |    4 +
 .../implementation.adoc                            |    5 +
 .../modules/applib-svc/pages/BookmarkService.adoc  |   43 +-
 .../BookmarkService/hooks/introductory_notes.adoc  |    8 +
 .../pages/BookmarkService/hooks/see_also.adoc      |   11 +-
 .../pages/BookmarkService/hooks/usage_notes.adoc   |   25 +-
 .../pages/BookmarkService/implementation.adoc      |    7 +
 .../applib-svc/pages/BookmarkUiService.adoc        |    8 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/BookmarkUiService/hooks/see_also.adoc    |    4 +
 .../pages/BookmarkUiService/hooks/usage_notes.adoc |    4 +
 .../pages/BookmarkUiService/implementation.adoc    |    5 +
 .../modules/applib-svc/pages/ClockService.adoc     |   25 +-
 .../ClockService/hooks/introductory_notes.adoc     |   11 -
 .../pages/ClockService/hooks/usage_notes.adoc      |   17 +
 .../pages/ClockService/implementation.adoc         |    6 +
 .../pages/CommandDtoProcessorService.adoc          |   22 +-
 .../CommandDtoProcessorService/hooks/see_also.adoc |    5 +
 .../hooks/usage_notes.adoc                         |   16 +-
 .../implementation.adoc                            |    0
 .../applib-svc/pages/CommandExecutorService.adoc   |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../CommandExecutorService/hooks/see_also.adoc     |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/CommandSubscriber.adoc        |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/CommandSubscriber/hooks/see_also.adoc    |    4 +
 .../pages/CommandSubscriber/hooks/usage_notes.adoc |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/ConfigurationMenu.adoc        |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/ConfigurationMenu/hooks/see_also.adoc    |    4 +
 .../pages/ConfigurationMenu/hooks/usage_notes.adoc |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/ConfigurationViewService.adoc |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../ConfigurationViewService/hooks/see_also.adoc   |    4 +
 .../hooks/usage_notes.adoc                         |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/ContentMappingService.adoc    |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../ContentMappingService/hooks/see_also.adoc      |    4 +
 .../ContentMappingService/hooks/usage_notes.adoc   |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/DeepLinkService.adoc  |    3 +-
 .../DeepLinkService/hooks/introductory_notes.adoc  |    3 +
 .../pages/DeepLinkService/hooks/see_also.adoc      |    4 +
 .../pages/DeepLinkService/hooks/usage_notes.adoc   |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/EmailNotificationService.adoc |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../EmailNotificationService/hooks/see_also.adoc   |    4 +
 .../hooks/usage_notes.adoc                         |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/EmailService.adoc     |    3 +-
 .../EmailService/hooks/introductory_notes.adoc     |    3 +
 .../pages/EmailService/hooks/see_also.adoc         |    4 +
 .../pages/EmailService/hooks/usage_notes.adoc      |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/ErrorReportingService.adoc    |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../ErrorReportingService/hooks/see_also.adoc      |    4 +
 .../ErrorReportingService/hooks/usage_notes.adoc   |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/EventBusService.adoc  |    7 +-
 .../EventBusService/hooks/introductory_notes.adoc  |    3 +
 .../pages/EventBusService/hooks/see_also.adoc      |    4 +
 .../pages/EventBusService/hooks/usage_notes.adoc   |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/ExceptionRecognizer.adoc      |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/ExceptionRecognizer/hooks/see_also.adoc  |    4 +
 .../ExceptionRecognizer/hooks/usage_notes.adoc     |    4 +
 .../implementation.adoc                            |    0
 .../pages/ExceptionRecognizerService.adoc          |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../ExceptionRecognizerService/hooks/see_also.adoc |    4 +
 .../hooks/usage_notes.adoc                         |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/ExecutionSubscriber.adoc      |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/ExecutionSubscriber/hooks/see_also.adoc  |    4 +
 .../ExecutionSubscriber/hooks/usage_notes.adoc     |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/FactoryService.adoc   |    3 +-
 .../FactoryService/hooks/introductory_notes.adoc   |    3 +
 .../pages/FactoryService/hooks/see_also.adoc       |    4 +
 .../pages/FactoryService/hooks/usage_notes.adoc    |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/GridLoaderService.adoc        |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/GridLoaderService/hooks/see_also.adoc    |    4 +
 .../pages/GridLoaderService/hooks/usage_notes.adoc |    4 +
 .../implementation.adoc                            |    0
 .../adoc/modules/applib-svc/pages/GridService.adoc |    9 +-
 .../GridService/hooks/introductory_notes.adoc      |    3 +
 .../pages/GridService/hooks/see_also.adoc          |    4 +
 .../pages/GridService/hooks/usage_notes.adoc       |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/GridSystemService.adoc        |   11 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/GridSystemService/hooks/see_also.adoc    |    4 +
 .../pages/GridSystemService/hooks/usage_notes.adoc |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/HealthCheckService.adoc       |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/HealthCheckService/hooks/see_also.adoc   |    4 +
 .../HealthCheckService/hooks/usage_notes.adoc      |    4 +
 .../implementation.adoc                            |    0
 .../adoc/modules/applib-svc/pages/HintStore.adoc   |    3 +-
 .../pages/HintStore/hooks/introductory_notes.adoc  |    3 +
 .../applib-svc/pages/HintStore/hooks/see_also.adoc |    4 +
 .../pages/HintStore/hooks/usage_notes.adoc         |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/HomePageResolverService.adoc  |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../HomePageResolverService/hooks/see_also.adoc    |    4 +
 .../HomePageResolverService/hooks/usage_notes.adoc |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/InteractionContext.adoc       |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/InteractionContext/hooks/see_also.adoc   |    4 +
 .../InteractionContext/hooks/usage_notes.adoc      |    4 +
 .../implementation.adoc                            |    0
 .../adoc/modules/applib-svc/pages/JaxbService.adoc |    3 +-
 .../JaxbService/hooks/introductory_notes.adoc      |    3 +
 .../pages/JaxbService/hooks/see_also.adoc          |    4 +
 .../pages/JaxbService/hooks/usage_notes.adoc       |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/LayoutService.adoc    |    7 +-
 .../LayoutService/hooks/introductory_notes.adoc    |    3 +
 .../pages/LayoutService/hooks/see_also.adoc        |    4 +
 .../pages/LayoutService/hooks/usage_notes.adoc     |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/LayoutServiceMenu.adoc        |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/LayoutServiceMenu/hooks/see_also.adoc    |    4 +
 .../pages/LayoutServiceMenu/hooks/usage_notes.adoc |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/LocaleProvider.adoc   |    4 +-
 .../LocaleProvider/hooks/introductory_notes.adoc   |    3 +
 .../pages/LocaleProvider/hooks/see_also.adoc       |    4 +
 .../pages/LocaleProvider/hooks/usage_notes.adoc    |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/MenuBarsLoaderService.adoc    |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../MenuBarsLoaderService/hooks/see_also.adoc      |    4 +
 .../MenuBarsLoaderService/hooks/usage_notes.adoc   |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/MenuBarsService.adoc  |    3 +-
 .../MenuBarsService/hooks/introductory_notes.adoc  |    3 +
 .../pages/MenuBarsService/hooks/see_also.adoc      |    4 +
 .../pages/MenuBarsService/hooks/usage_notes.adoc   |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/MessageService.adoc   |    4 +-
 .../MessageService/hooks/introductory_notes.adoc   |    3 +
 .../pages/MessageService/hooks/see_also.adoc       |    4 +
 .../pages/MessageService/hooks/usage_notes.adoc    |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/MetaModelService.adoc |    5 +-
 .../MetaModelService/hooks/introductory_notes.adoc |    3 +
 .../pages/MetaModelService/hooks/see_also.adoc     |    4 +
 .../pages/MetaModelService/hooks/usage_notes.adoc  |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/MetaModelServiceMenu.adoc     |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/MetaModelServiceMenu/hooks/see_also.adoc |    4 +
 .../MetaModelServiceMenu/hooks/usage_notes.adoc    |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/MetricsService.adoc   |    4 +-
 .../MetricsService/hooks/introductory_notes.adoc   |    3 +
 .../pages/MetricsService/hooks/see_also.adoc       |    4 +
 .../pages/MetricsService/hooks/usage_notes.adoc    |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/QueryResultsCache.adoc        |    1 +
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/QueryResultsCache/hooks/see_also.adoc    |    4 +
 .../pages/QueryResultsCache/hooks/usage_notes.adoc |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/QueryResultsCacheControl.adoc |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../QueryResultsCacheControl/hooks/see_also.adoc   |    4 +
 .../hooks/usage_notes.adoc                         |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/RepositoryService.adoc        |    1 +
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/RepositoryService/hooks/see_also.adoc    |    4 +
 .../pages/RepositoryService/hooks/usage_notes.adoc |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/RoutingService.adoc   |    1 +
 .../RoutingService/hooks/introductory_notes.adoc   |    3 +
 .../pages/RoutingService/hooks/see_also.adoc       |    4 +
 .../pages/RoutingService/hooks/usage_notes.adoc    |    4 +
 .../implementation.adoc                            |    0
 .../adoc/modules/applib-svc/pages/Scratchpad.adoc  |    1 +
 .../pages/Scratchpad/hooks/introductory_notes.adoc |    3 +
 .../pages/Scratchpad/hooks/see_also.adoc           |    4 +
 .../pages/Scratchpad/hooks/usage_notes.adoc        |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/ServiceInjector.adoc  |    3 +-
 .../ServiceInjector/hooks/introductory_notes.adoc  |    3 +
 .../pages/ServiceInjector/hooks/see_also.adoc      |    4 +
 .../pages/ServiceInjector/hooks/usage_notes.adoc   |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/ServiceRegistry.adoc  |    3 +-
 .../ServiceRegistry/hooks/introductory_notes.adoc  |    3 +
 .../pages/ServiceRegistry/hooks/see_also.adoc      |    4 +
 .../pages/ServiceRegistry/hooks/usage_notes.adoc   |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/SessionLoggingService.adoc    |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../SessionLoggingService/hooks/see_also.adoc      |    4 +
 .../SessionLoggingService/hooks/usage_notes.adoc   |    4 +
 .../implementation.adoc                            |    0
 .../adoc/modules/applib-svc/pages/SudoService.adoc |    3 +-
 .../SudoService/hooks/introductory_notes.adoc      |    3 +
 .../pages/SudoService/hooks/see_also.adoc          |    4 +
 .../pages/SudoService/hooks/usage_notes.adoc       |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/SwaggerService.adoc   |   11 +-
 .../SwaggerService/hooks/introductory_notes.adoc   |    3 +
 .../pages/SwaggerService/hooks/see_also.adoc       |    4 +
 .../pages/SwaggerService/hooks/usage_notes.adoc    |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/TableColumnOrderService.adoc  |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../TableColumnOrderService/hooks/see_also.adoc    |    4 +
 .../TableColumnOrderService/hooks/usage_notes.adoc |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/TitleService.adoc     |    3 +-
 .../TitleService/hooks/introductory_notes.adoc     |    3 +
 .../pages/TitleService/hooks/see_also.adoc         |    4 +
 .../pages/TitleService/hooks/usage_notes.adoc      |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/TransactionService.adoc       |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/TransactionService/hooks/see_also.adoc   |    4 +
 .../TransactionService/hooks/usage_notes.adoc      |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/TranslationService.adoc       |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/TranslationService/hooks/see_also.adoc   |    4 +
 .../TranslationService/hooks/usage_notes.adoc      |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/TranslationsResolver.adoc     |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/TranslationsResolver/hooks/see_also.adoc |    4 +
 .../TranslationsResolver/hooks/usage_notes.adoc    |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/UrlEncodingService.adoc       |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/UrlEncodingService/hooks/see_also.adoc   |    4 +
 .../UrlEncodingService/hooks/usage_notes.adoc      |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/UserProfileService.adoc       |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/UserProfileService/hooks/see_also.adoc   |    4 +
 .../UserProfileService/hooks/usage_notes.adoc      |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/UserRegistrationService.adoc  |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../UserRegistrationService/hooks/see_also.adoc    |    4 +
 .../UserRegistrationService/hooks/usage_notes.adoc |    4 +
 .../implementation.adoc                            |    0
 .../adoc/modules/applib-svc/pages/UserService.adoc |    3 +-
 .../UserService/hooks/introductory_notes.adoc      |    3 +
 .../pages/UserService/hooks/see_also.adoc          |    4 +
 .../pages/UserService/hooks/usage_notes.adoc       |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/pages/WrapperFactory.adoc   |    3 +-
 .../WrapperFactory/hooks/introductory_notes.adoc   |    3 +
 .../pages/WrapperFactory/hooks/see_also.adoc       |    4 +
 .../pages/WrapperFactory/hooks/usage_notes.adoc    |    4 +
 .../implementation.adoc                            |    0
 .../adoc/modules/applib-svc/pages/XmlService.adoc  |    3 +-
 .../pages/XmlService/hooks/introductory_notes.adoc |    3 +
 .../pages/XmlService/hooks/see_also.adoc           |    4 +
 .../pages/XmlService/hooks/usage_notes.adoc        |    4 +
 .../implementation.adoc                            |    0
 .../applib-svc/pages/XmlSnapshotService.adoc       |    3 +-
 .../hooks/introductory_notes.adoc                  |    3 +
 .../pages/XmlSnapshotService/hooks/see_also.adoc   |    4 +
 .../XmlSnapshotService/hooks/usage_notes.adoc      |    4 +
 .../implementation.adoc                            |    0
 .../pages/about/hooks/introductory_notes.adoc      |    3 +
 .../applib-svc/pages/about/hooks/see_also.adoc     |    4 +
 .../applib-svc/pages/about/hooks/usage_notes.adoc  |    4 +
 .../implementation.adoc                            |    0
 .../modules/applib-svc/partials/_metadata-api.adoc |    2 +-
 .../services/acceptheader/AcceptHeaderService.java |    9 +
 .../appfeat/ApplicationFeatureRepository.java      |    7 +-
 .../applib/services/bookmark/BookmarkService.java  |    5 +-
 .../processor/spi/CommandDtoProcessorService.java  |   13 +-
 .../src/main/adoc/modules/schema/pages/mml.adoc    |    4 +-
 isis-tooling.yml                                   |  138 +-
 .../org/apache/isis/tooling/cli/CliConfig.java     |    1 +
 .../isis/tooling/cli/projdoc/ProjectDocModel.java  |   11 +-
 .../isis/tooling/cli/projdoc/ProjectDocWriter.java |    3 +-
 .../apache/isis/tooling/j2adoc/J2AdocContext.java  |   55 +-
 .../org/apache/isis/tooling/j2adoc/J2AdocUnit.java |   60 +-
 .../tooling/j2adoc/convert/J2AdocConverter.java    |   16 +-
 .../j2adoc/convert/J2AdocConverterAbstract.java    |  185 +
 .../j2adoc/convert/J2AdocConverterDefault.java     |  229 +-
 .../j2adoc/format/UnitFormatterAbstract.java       |  128 +-
 .../j2adoc/format/UnitFormatterCompact.java        |    9 +-
 .../UnitFormatterWithSourceAndFootNotes.java       |  100 +-
 .../isis/tooling/j2adoc/test/J2AdocTest.java       |   51 +-
 .../isis/tooling/javamodel/ast/Javadocs.java       |   21 +-
 1165 files changed, 8407 insertions(+), 11414 deletions(-)

diff --git a/antora/components/system/modules/generated/pages/index/applib/AbstractViewModel.adoc b/antora/components/system/modules/generated/pages/index/applib/AbstractViewModel.adoc
index 7c6675c..f5db6ef 100644
--- a/antora/components/system/modules/generated/pages/index/applib/AbstractViewModel.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/AbstractViewModel.adoc
@@ -1,11 +1,12 @@
-= AbstractViewModel : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Convenience super class for view models that wish to interact with the container.
 
 Subclassing is NOT mandatory; the methods in this superclass can be pushed down into domain objects and another superclass used if required.
 
-.Java Sources
+== API
+
+.AbstractViewModel.java
 [source,java]
 ----
 class AbstractViewModel {
diff --git a/antora/components/system/modules/generated/pages/index/applib/Identifier.adoc b/antora/components/system/modules/generated/pages/index/applib/Identifier.adoc
index 010914d..bca9905 100644
--- a/antora/components/system/modules/generated/pages/index/applib/Identifier.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/Identifier.adoc
@@ -1,86 +1,49 @@
-= Identifier : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Identifier.java
 [source,java]
 ----
 class Identifier {
-
   public static final Depth CLASS;
-
   public static final Depth CLASS_MEMBERNAME;
-
   public static final Depth CLASS_MEMBERNAME_PARAMETERS;
-
   public static final Depth MEMBERNAME_ONLY;
-
   public static final Depth PARAMETERS_ONLY;
-
   Identifier classIdentifier(final Class<?> cls)
-
   Identifier classIdentifier(final String className)
-
   Identifier propertyOrCollectionIdentifier(final Class<?> declaringClass, final String propertyOrCollectionName)
-
   Identifier propertyOrCollectionIdentifier(final String declaringClassName, final String propertyOrCollectionName)
-
   Identifier actionIdentifier(final Class<?> declaringClass, final String actionName, final Class<?>... parameterClasses)
-
   Identifier actionIdentifier(final String declaringClassName, final String actionName, final Class<?>... parameterClasses)
-
   Identifier actionIdentifier(final String declaringClassName, final String actionName, final List<String> parameterClassNames)
-
   String getClassName()
-
   String getClassNaturalName()
-
   String getMemberName()
-
   String getMemberNaturalName()
-
   List<String> getMemberParameterNames()
-
   List<String> getMemberParameterNaturalNames()
-
   Type getType()
-
-  boolean isPropertyOrCollection() // <.>
-
+  boolean isPropertyOrCollection()     // <.>
   String toIdentityString(final Depth depth)
-
   String toClassIdentityString()
-
   StringBuilder toClassIdentityString(final StringBuilder buf)
-
   String toNameIdentityString()
-
   StringBuilder toNameIdentityString(final StringBuilder buf)
-
   String toClassAndNameIdentityString()
-
   StringBuilder toClassAndNameIdentityString(final StringBuilder buf)
-
   String toParmsIdentityString()
-
   StringBuilder toParmsIdentityString(final StringBuilder buf)
-
   String toNameParmsIdentityString()
-
   StringBuilder toNameParmsIdentityString(final StringBuilder buf)
-
   String toFullIdentityString()
-
   int compareTo(final Identifier o2)
-
-  boolean equals(final Object obj) // <.>
-
+  boolean equals(final Object obj)     // <.>
   boolean equals(final Identifier other)
-
   int hashCode()
-
   String toString()
-
-  Identifier fromIdentityString(final String asString) // <.>
+  Identifier fromIdentityString(final String asString)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/IsisModuleApplib.adoc b/antora/components/system/modules/generated/pages/index/applib/IsisModuleApplib.adoc
index 2b5fef2..7065167 100644
--- a/antora/components/system/modules/generated/pages/index/applib/IsisModuleApplib.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/IsisModuleApplib.adoc
@@ -1,7 +1,8 @@
-= IsisModuleApplib : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.IsisModuleApplib.java
 [source,java]
 ----
 class IsisModuleApplib {
diff --git a/antora/components/system/modules/generated/pages/index/applib/RecreatableDomainObject.adoc b/antora/components/system/modules/generated/pages/index/applib/RecreatableDomainObject.adoc
index 8709d95..71fcb8c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/RecreatableDomainObject.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/RecreatableDomainObject.adoc
@@ -1,18 +1,17 @@
-= RecreatableDomainObject : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that the domain object can be recreated from a string.
 
 Objects that are view models (logically belonging to the UI/application layer) should instead implement xref:system:generated:index/applib/ViewModel.adoc[ViewModel] .
 
-.Java Sources
+== API
+
+.RecreatableDomainObject.java
 [source,java]
 ----
 interface RecreatableDomainObject {
-
-  String __isis_memento() // <.>
-
-  void __isis_recreate(String memento) // <.>
+  String __isis_memento()     // <.>
+  void __isis_recreate(String memento)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/ViewModel.adoc b/antora/components/system/modules/generated/pages/index/applib/ViewModel.adoc
index b58c457..53f5654 100644
--- a/antora/components/system/modules/generated/pages/index/applib/ViewModel.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/ViewModel.adoc
@@ -1,18 +1,17 @@
-= ViewModel : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that an object belongs to the UI/application layer, and is intended to be used as a view model.
 
 Objects that are part of the domain object layer should instead implement xref:system:generated:index/applib/RecreatableDomainObject.adoc[RecreatableDomainObject] .
 
-.Java Sources
+== API
+
+.ViewModel.java
 [source,java]
 ----
 interface ViewModel {
-
-  String viewModelMemento() // <.>
-
-  void viewModelInit(String memento) // <.>
+  String viewModelMemento()     // <.>
+  void viewModelInit(String memento)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/adapters/AbstractValueSemanticsProvider.adoc b/antora/components/system/modules/generated/pages/index/applib/adapters/AbstractValueSemanticsProvider.adoc
index dc0e166..e37e335 100644
--- a/antora/components/system/modules/generated/pages/index/applib/adapters/AbstractValueSemanticsProvider.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/adapters/AbstractValueSemanticsProvider.adoc
@@ -1,15 +1,13 @@
-= AbstractValueSemanticsProvider : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.AbstractValueSemanticsProvider.java
 [source,java]
 ----
 class AbstractValueSemanticsProvider {
-
   EncoderDecoder<T> getEncoderDecoder()
-
   Parser<T> getParser()
-
   DefaultsProvider<T> getDefaultsProvider()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/adapters/DefaultsProvider.adoc b/antora/components/system/modules/generated/pages/index/applib/adapters/DefaultsProvider.adoc
index cc3b988..c5b41d6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/adapters/DefaultsProvider.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/adapters/DefaultsProvider.adoc
@@ -1,4 +1,3 @@
-= DefaultsProvider : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides a mechanism for providing a default value for an object.
@@ -9,12 +8,13 @@ This interface is used in two complementary ways:
 
 Whatever the class that implements this interface, it must also expose either a `public` no-arg constructor, or (for implementations that also are `Facet` s) a `public` constructor that accepts a single `FacetHolder` . This constructor allows the framework to instantiate the object reflectively.
 
-.Java Sources
+== API
+
+.DefaultsProvider.java
 [source,java]
 ----
 interface DefaultsProvider {
-
-  T getDefaultValue() // <.>
+  T getDefaultValue()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/adapters/EncoderDecoder.adoc b/antora/components/system/modules/generated/pages/index/applib/adapters/EncoderDecoder.adoc
index f90d73d..eff229d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/adapters/EncoderDecoder.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/adapters/EncoderDecoder.adoc
@@ -1,4 +1,3 @@
-= EncoderDecoder : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides a mechanism for encoding/decoding objects.
@@ -9,14 +8,14 @@ This interface is used in two complementary ways:
 
 Whatever the class that implements this interface, it must also expose either a `public` no-arg constructor, or (for implementations that also are `Facet` s) a `public` constructor that accepts a single `FacetHolder` . This constructor allows the framework to instantiate the object reflectively.
 
-.Java Sources
+== API
+
+.EncoderDecoder.java
 [source,java]
 ----
 interface EncoderDecoder {
-
-  String toEncodedString(T toEncode) // <.>
-
-  T fromEncodedString(String encodedString) // <.>
+  String toEncodedString(T toEncode)     // <.>
+  T fromEncodedString(String encodedString)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/adapters/EncodingException.adoc b/antora/components/system/modules/generated/pages/index/applib/adapters/EncodingException.adoc
index b709885..764c7f4 100644
--- a/antora/components/system/modules/generated/pages/index/applib/adapters/EncodingException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/adapters/EncodingException.adoc
@@ -1,19 +1,16 @@
-= EncodingException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that encoding or decoding has failed.
 
-.Java Sources
+== API
+
+.EncodingException.java
 [source,java]
 ----
 class EncodingException {
-
   EncodingException()
-
   EncodingException(final String msg)
-
   EncodingException(final String msg, final Throwable cause)
-
   EncodingException(final Throwable cause)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/adapters/Parser.adoc b/antora/components/system/modules/generated/pages/index/applib/adapters/Parser.adoc
index 7c24f0d..792427d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/adapters/Parser.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/adapters/Parser.adoc
@@ -1,4 +1,3 @@
-= Parser : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides a mechanism for parsing and rendering string representations of objects.
@@ -19,22 +18,18 @@ This interface is used in two complementary ways:
 
 Whatever the class that implements this interface, it must also expose either a `public` no-arg constructor, or (for implementations that also are `Facet` s) a `public` constructor that accepts a single `FacetHolder` . This constructor allows the framework to instantiate the object reflectively.
 
-.Java Sources
+== API
+
+.Parser.java
 [source,java]
 ----
 interface Parser {
-
-  T parseTextEntry(Object contextPojo, String entry) // <.>
-
-  int typicalLength() // <.>
-
-  String displayTitleOf(T object) // <.>
-
-  String displayTitleOf(T object, String usingMask) // <.>
-
-  String parseableTitleOf(T existing) // <.>
-
-  int maxLength() // <.>
+  T parseTextEntry(Object contextPojo, String entry)     // <.>
+  int typicalLength()     // <.>
+  String displayTitleOf(T object)     // <.>
+  String displayTitleOf(T object, String usingMask)     // <.>
+  String parseableTitleOf(T existing)     // <.>
+  int maxLength()     // <.>
 }
 ----
 
@@ -63,9 +58,9 @@ The title of the object using a mask.
 <.> `[teal]#*parseableTitleOf*#(T existing)` : `String`
 +
 --
-A title for the object that is valid but which may be easier to edit than the title provided by aTitleFacet.
+A title for the object that is valid but which may be easier to edit than the title provided by a `TitleFacet.
 
-The idea here is that the viewer can display a parseable title for an existing object when, for example, the user initially clicks in the field. So, a date might be rendered via aTitleFacetas `May 2, 2007` , but its editable form might be `20070502` .
+The idea here is that the viewer can display a parseable title for an existing object when, for example, the user initially clicks in the field. So, a date might be rendered via a `TitleFacetas `May 2, 2007` , but its editable form might be `20070502` .
 --
 <.> `[teal]#*maxLength*#()` : `int`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/adapters/ParsingException.adoc b/antora/components/system/modules/generated/pages/index/applib/adapters/ParsingException.adoc
index 45588a4..7d25f5a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/adapters/ParsingException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/adapters/ParsingException.adoc
@@ -1,19 +1,16 @@
-= ParsingException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that parsing has failed, ie the entry is illegal (rather than invalid).
 
-.Java Sources
+== API
+
+.ParsingException.java
 [source,java]
 ----
 class ParsingException {
-
   ParsingException()
-
   ParsingException(final String msg)
-
   ParsingException(final String msg, final Throwable cause)
-
   ParsingException(final Throwable cause)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/adapters/ValueSemanticsProvider.adoc b/antora/components/system/modules/generated/pages/index/applib/adapters/ValueSemanticsProvider.adoc
index 04af079..6ed1b8a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/adapters/ValueSemanticsProvider.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/adapters/ValueSemanticsProvider.adoc
@@ -1,4 +1,3 @@
-= ValueSemanticsProvider : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides a mechanism for providing a set of value semantics.
@@ -7,16 +6,15 @@ This interface is used by xref:system:generated:index/applib/annotation/Value.ad
 
 Whatever the class that implements this interface, it must also expose either a `public` no-arg constructor, or (for implementations that also are `Facet` s) a `public` constructor that accepts a `FacetHolder` , and `IsisConfiguration` and a `ValueSemanticsProviderContext` . This constructor is then used by the framework to instantiate the object reflectively.
 
-.Java Sources
+== API
+
+.ValueSemanticsProvider.java
 [source,java]
 ----
 interface ValueSemanticsProvider {
-
-  Parser<T> getParser() // <.>
-
-  EncoderDecoder<T> getEncoderDecoder() // <.>
-
-  DefaultsProvider<T> getDefaultsProvider() // <.>
+  Parser<T> getParser()     // <.>
+  EncoderDecoder<T> getEncoderDecoder()     // <.>
+  DefaultsProvider<T> getDefaultsProvider()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Action.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Action.adoc
index 7cce51f..adae62d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Action.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Action.adoc
@@ -1,34 +1,24 @@
-= Action : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-Domain semantics for domain object collection.
+Groups together all domain-specific metadata for an invokable action on a domain object or domain service.
 
-.Java Sources
+== API
+
+.Action.java
 [source,java]
 ----
 @interface Action {
-
-  String associateWith() default ""; // <.>
-
-  String associateWithSequence() default "1"; // <.>
-
-  Class<? extends CommandDtoProcessor> commandDtoProcessor() default CommandDtoProcessor.class; // <.>
-
-  Publishing commandPublishing() default Publishing.NOT_SPECIFIED; // <.>
-
-  Class<? extends ActionDomainEvent<?>> domainEvent() default ActionDomainEvent.Default.class; // <.>
-
-  Publishing executionPublishing() default Publishing.NOT_SPECIFIED; // <.>
-
-  Where hidden() default Where.NOT_SPECIFIED; // <.>
-
-  RestrictTo restrictTo() default RestrictTo.NOT_SPECIFIED; // <.>
-
-  SemanticsOf semantics() default SemanticsOf.NOT_SPECIFIED; // <.>
-
-  Class<?> typeOf() default Object.class; // <.>
-
-  String fileAccept() default ""; // <.>
+  String associateWith() default "";     // <.>
+  String associateWithSequence() default "1";     // <.>
+  Class<? extends CommandDtoProcessor> commandDtoProcessor() default CommandDtoProcessor.class;     // <.>
+  Publishing commandPublishing() default Publishing.NOT_SPECIFIED;     // <.>
+  Class<? extends ActionDomainEvent<?>> domainEvent() default ActionDomainEvent.Default.class;     // <.>
+  Publishing executionPublishing() default Publishing.NOT_SPECIFIED;     // <.>
+  Where hidden() default Where.NOT_SPECIFIED;     // <.>
+  RestrictTo restrictTo() default RestrictTo.NOT_SPECIFIED;     // <.>
+  SemanticsOf semantics() default SemanticsOf.NOT_SPECIFIED;     // <.>
+  Class<?> typeOf() default Object.class;     // <.>
+  String fileAccept() default "";     // <.>
 }
 ----
 
@@ -39,7 +29,7 @@ Associates this action with a property or collection, specifying its id.
 
 This is an alternative to using _MemberOrder#name()_ . To specify the order (equivalent to _MemberOrder#sequence()_ }), use _#associateWithSequence()_ .
 
-For example@Action(associateWith="items", associateWithSequence="2.1")
+For example `@Action(associateWith="items", associateWithSequence="2.1")
 
 If an action is associated with a collection, then any matching parameters will have their choices automatically inferred from the collection (if not otherwise specified) and any collection parameter defaults can be specified using checkboxes (in the Wicket UI, at least).
 --
@@ -50,7 +40,7 @@ Specifies the sequence/order in the UI for an action that's been associated with
 
 This is an alternative to using _MemberOrder#sequence()_ , but is ignored if _Action#associateWith()_ isn't also specified.
 
-For example@Action(associateWith="items", associateWithSequence="2.1")
+For example `@Action(associateWith="items", associateWithSequence="2.1")
 --
 <.> `[teal]#*_commandDtoProcessor_*#` : `Class<? extends CommandDtoProcessor>`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/ActionLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/ActionLayout.adoc
index b92755d..2442d86 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/ActionLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/ActionLayout.adoc
@@ -1,32 +1,23 @@
-= ActionLayout : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Layout hints for actions.
 
-.Java Sources
+== API
+
+.ActionLayout.java
 [source,java]
 ----
 @interface ActionLayout {
-
-  BookmarkPolicy bookmarking() default BookmarkPolicy.NOT_SPECIFIED; // <.>
-
-  String cssClass() default ""; // <.>
-
-  String cssClassFa() default ""; // <.>
-
-  CssClassFaPosition cssClassFaPosition() default CssClassFaPosition.LEFT; // <.>
-
-  String describedAs() default ""; // <.>
-
-  Where hidden() default Where.NOT_SPECIFIED; // <.>
-
-  String named() default ""; // <.>
-
-  Position position() default Position.NOT_SPECIFIED; // <.>
-
-  PromptStyle promptStyle() default PromptStyle.AS_CONFIGURED; // <.>
-
-  Redirect redirectPolicy() default Redirect.AS_CONFIGURED; // <.>
+  BookmarkPolicy bookmarking() default BookmarkPolicy.NOT_SPECIFIED;     // <.>
+  String cssClass() default "";     // <.>
+  String cssClassFa() default "";     // <.>
+  CssClassFaPosition cssClassFaPosition() default CssClassFaPosition.LEFT;     // <.>
+  String describedAs() default "";     // <.>
+  Where hidden() default Where.NOT_SPECIFIED;     // <.>
+  String named() default "";     // <.>
+  Position position() default Position.NOT_SPECIFIED;     // <.>
+  PromptStyle promptStyle() default PromptStyle.AS_CONFIGURED;     // <.>
+  Redirect redirectPolicy() default Redirect.AS_CONFIGURED;     // <.>
 }
 ----
 
@@ -42,7 +33,7 @@ For bookmarkable actions, either _org.apache.isis.applib.annotation.BookmarkPoli
 --
 Indicates the css class that an action should have.
 
-For the Wicket viewer, this can be a bootstrap class such asbtn-info.
+For the Wicket viewer, this can be a bootstrap class such as `btn-info.
 --
 <.> `[teal]#*_cssClassFa_*#` : `String`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/BookmarkPolicy.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/BookmarkPolicy.adoc
index a76fae4..9f9db31 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/BookmarkPolicy.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/BookmarkPolicy.adoc
@@ -1,18 +1,15 @@
-= BookmarkPolicy : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.BookmarkPolicy.java
 [source,java]
 ----
 enum BookmarkPolicy {
-
-  AS_ROOT // <.>
-
-  AS_CHILD // <.>
-
-  NEVER // <.>
-
-  NOT_SPECIFIED // <.>
+  AS_ROOT     // <.>
+  AS_CHILD     // <.>
+  NEVER     // <.>
+  NOT_SPECIFIED     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Bounding.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Bounding.adoc
index c646d9f..fbbeea9 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Bounding.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Bounding.adoc
@@ -1,17 +1,15 @@
-= Bounding : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Whether the set of instances of a domain object is bounded or not.
 
-.Java Sources
+== API
+
+.Bounding.java
 [source,java]
 ----
 enum Bounding {
-
   BOUNDED
-
   UNBOUNDED
-
   NOT_SPECIFIED
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Collection.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Collection.adoc
index 61b2041..a06be86 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Collection.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Collection.adoc
@@ -1,20 +1,17 @@
-= Collection : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Domain semantics for domain object collection.
 
-.Java Sources
+== API
+
+.Collection.java
 [source,java]
 ----
 @interface Collection {
-
-  Class<? extends CollectionDomainEvent<?, ?>> domainEvent() default CollectionDomainEvent.Default.class; // <.>
-
-  Editing editing() default Editing.NOT_SPECIFIED; // <.>
-
-  Where hidden() default Where.NOT_SPECIFIED; // <.>
-
-  Class<?> typeOf() default Object.class; // <.>
+  Class<? extends CollectionDomainEvent<?, ?>> domainEvent() default CollectionDomainEvent.Default.class;     // <.>
+  Editing editing() default Editing.NOT_SPECIFIED;     // <.>
+  Where hidden() default Where.NOT_SPECIFIED;     // <.>
+  Class<?> typeOf() default Object.class;     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/CollectionLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/CollectionLayout.adoc
index 1d4f098..9368b53 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/CollectionLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/CollectionLayout.adoc
@@ -1,29 +1,22 @@
-= CollectionLayout : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Layout hints for collections.
 
-.Java Sources
+== API
+
+.CollectionLayout.java
 [source,java]
 ----
 @interface CollectionLayout {
-
-  String cssClass() default ""; // <.>
-
-  String defaultView() default ""; // <.>
-
-  String describedAs() default ""; // <.>
-
-  Where hidden() default Where.NOT_SPECIFIED; // <.>
-
-  String named() default ""; // <.>
-
-  boolean namedEscaped() default true; // <.>
-
-  int paged() default -1; // <.>
-
+  String cssClass() default "";     // <.>
+  String defaultView() default "";     // <.>
+  String describedAs() default "";     // <.>
+  Where hidden() default Where.NOT_SPECIFIED;     // <.>
+  String named() default "";     // <.>
+  boolean namedEscaped() default true;     // <.>
+  int paged() default -1;     // <.>
   @SuppressWarnings("rawtypes")
-Class sortedBy() default Comparator.class; // <.>
+Class sortedBy() default Comparator.class;     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Defaulted.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Defaulted.adoc
index 0905995..76e2772 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Defaulted.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Defaulted.adoc
@@ -1,18 +1,17 @@
-= Defaulted : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that the class should have a default, by providing a link to a xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsProvider] , or some externally-configured mechanism.
 
 This possibly seems a little tortuous. The more obvious means to provide a default would seem to be a simple `@DefaultsTo(new SomeObject())` . However, Java only allows primitives, strings and class literals to be used in annotations. We therefore need delegate to an external implementation. (This more complex design is also more flexible of course; the implementation of xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsProvider] could adjust the default it provid [...]
 
-.Java Sources
+== API
+
+.Defaulted.java
 [source,java]
 ----
 @interface Defaulted {
-
-  String defaultsProviderName() default ""; // <.>
-
-  Class<?> defaultsProviderClass() default Defaulted.class; // <.>
+  String defaultsProviderName() default "";     // <.>
+  Class<?> defaultsProviderClass() default Defaulted.class;     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObject.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObject.adoc
index a61f01b..7e77608 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObject.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObject.adoc
@@ -1,57 +1,39 @@
-= DomainObject : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Domain semantics for domain objects (entities and view models; for services see xref:system:generated:index/applib/annotation/DomainService.adoc[DomainService] ).
 
-.Java Sources
+== API
+
+.DomainObject.java
 [source,java]
 ----
 @interface DomainObject {
-
-  Class<?> autoCompleteRepository() default Object.class; // <.>
-
-  String autoCompleteAction() default "autoComplete"; // <.>
-
-  Bounding bounding() default Bounding.NOT_SPECIFIED; // <.>
-
-  Editing editing() default Editing.NOT_SPECIFIED; // <.>
-
-  String editingDisabledReason() default "Disabled"; // <.>
-
-  Publishing entityChangePublishing() default Publishing.NOT_SPECIFIED; // <.>
-
-  String mixinMethod() default "$$"; // <.>
-
-  Nature nature() default Nature.NOT_SPECIFIED; // <.>
-
-  String objectType() default ""; // <.>
-
-  Class<? extends ObjectCreatedEvent<?>> createdLifecycleEvent() default ObjectCreatedEvent.Default.class; // <.>
-
-  Class<? extends ObjectPersistingEvent<?>> persistingLifecycleEvent() default ObjectPersistingEvent.Default.class; // <.>
-
-  Class<? extends ObjectPersistedEvent<?>> persistedLifecycleEvent() default ObjectPersistedEvent.Default.class; // <.>
-
-  Class<? extends ObjectLoadedEvent<?>> loadedLifecycleEvent() default ObjectLoadedEvent.Default.class; // <.>
-
-  Class<? extends ObjectUpdatingEvent<?>> updatingLifecycleEvent() default ObjectUpdatingEvent.Default.class; // <.>
-
-  Class<? extends ObjectUpdatedEvent<?>> updatedLifecycleEvent() default ObjectUpdatedEvent.Default.class; // <.>
-
-  Class<? extends ObjectRemovingEvent<?>> removingLifecycleEvent() default ObjectRemovingEvent.Default.class; // <.>
-
-  Class<? extends ActionDomainEvent<?>> actionDomainEvent() default ActionDomainEvent.Default.class; // <.>
-
-  Class<? extends PropertyDomainEvent<?, ?>> propertyDomainEvent() default PropertyDomainEvent.Default.class; // <.>
-
-  Class<? extends CollectionDomainEvent<?, ?>> collectionDomainEvent() default CollectionDomainEvent.Default.class; // <.>
+  Class<?> autoCompleteRepository() default Object.class;     // <.>
+  String autoCompleteAction() default "autoComplete";     // <.>
+  Bounding bounding() default Bounding.NOT_SPECIFIED;     // <.>
+  Editing editing() default Editing.NOT_SPECIFIED;     // <.>
+  String editingDisabledReason() default "Disabled";     // <.>
+  Publishing entityChangePublishing() default Publishing.NOT_SPECIFIED;     // <.>
+  String mixinMethod() default "$$";     // <.>
+  Nature nature() default Nature.NOT_SPECIFIED;     // <.>
+  String objectType() default "";     // <.>
+  Class<? extends ObjectCreatedEvent<?>> createdLifecycleEvent() default ObjectCreatedEvent.Default.class;     // <.>
+  Class<? extends ObjectPersistingEvent<?>> persistingLifecycleEvent() default ObjectPersistingEvent.Default.class;     // <.>
+  Class<? extends ObjectPersistedEvent<?>> persistedLifecycleEvent() default ObjectPersistedEvent.Default.class;     // <.>
+  Class<? extends ObjectLoadedEvent<?>> loadedLifecycleEvent() default ObjectLoadedEvent.Default.class;     // <.>
+  Class<? extends ObjectUpdatingEvent<?>> updatingLifecycleEvent() default ObjectUpdatingEvent.Default.class;     // <.>
+  Class<? extends ObjectUpdatedEvent<?>> updatedLifecycleEvent() default ObjectUpdatedEvent.Default.class;     // <.>
+  Class<? extends ObjectRemovingEvent<?>> removingLifecycleEvent() default ObjectRemovingEvent.Default.class;     // <.>
+  Class<? extends ActionDomainEvent<?>> actionDomainEvent() default ActionDomainEvent.Default.class;     // <.>
+  Class<? extends PropertyDomainEvent<?, ?>> propertyDomainEvent() default PropertyDomainEvent.Default.class;     // <.>
+  Class<? extends CollectionDomainEvent<?, ?>> collectionDomainEvent() default CollectionDomainEvent.Default.class;     // <.>
 }
 ----
 
 <.> `[teal]#*_autoCompleteRepository_*#` : `Class<?>`
 +
 --
-The class of the domain service that provides anautoComplete(String)method.
+The class of the domain service that provides an `autoComplete(String)method.
 
 It is sufficient to specify an interface rather than a concrete type.
 --
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObjectLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObjectLayout.adoc
index 886b7b1..14a48ba 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObjectLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainObjectLayout.adoc
@@ -1,36 +1,25 @@
-= DomainObjectLayout : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Layout hints for domain objects.
 
-.Java Sources
+== API
+
+.DomainObjectLayout.java
 [source,java]
 ----
 @interface DomainObjectLayout {
-
-  BookmarkPolicy bookmarking() default BookmarkPolicy.NOT_SPECIFIED; // <.>
-
-  String cssClass() default ""; // <.>
-
-  String cssClassFa() default ""; // <.>
-
-  CssClassFaPosition cssClassFaPosition() default CssClassFaPosition.LEFT; // <.>
-
-  String describedAs() default ""; // <.>
-
-  String named() default ""; // <.>
-
-  int paged() default -1; // <.>
-
-  String plural() default ""; // <.>
-
-  Class<? extends CssClassUiEvent<?>> cssClassUiEvent() default CssClassUiEvent.Default.class; // <.>
-
-  Class<? extends IconUiEvent<?>> iconUiEvent() default IconUiEvent.Default.class; // <.>
-
-  Class<? extends LayoutUiEvent<?>> layoutUiEvent() default LayoutUiEvent.Default.class; // <.>
-
-  Class<? extends TitleUiEvent<?>> titleUiEvent() default TitleUiEvent.Default.class; // <.>
+  BookmarkPolicy bookmarking() default BookmarkPolicy.NOT_SPECIFIED;     // <.>
+  String cssClass() default "";     // <.>
+  String cssClassFa() default "";     // <.>
+  CssClassFaPosition cssClassFaPosition() default CssClassFaPosition.LEFT;     // <.>
+  String describedAs() default "";     // <.>
+  String named() default "";     // <.>
+  int paged() default -1;     // <.>
+  String plural() default "";     // <.>
+  Class<? extends CssClassUiEvent<?>> cssClassUiEvent() default CssClassUiEvent.Default.class;     // <.>
+  Class<? extends IconUiEvent<?>> iconUiEvent() default IconUiEvent.Default.class;     // <.>
+  Class<? extends LayoutUiEvent<?>> layoutUiEvent() default LayoutUiEvent.Default.class;     // <.>
+  Class<? extends TitleUiEvent<?>> titleUiEvent() default TitleUiEvent.Default.class;     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainService.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainService.adoc
index 2c37316..c80061f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainService.adoc
@@ -1,18 +1,17 @@
-= DomainService : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that the class should be automatically recognized as a domain service.
 
 Also indicates whether the domain service acts as a repository for an entity, and menu ordering UI hints.
 
-.Java Sources
+== API
+
+.DomainService.java
 [source,java]
 ----
 @interface DomainService {
-
-  NatureOfService nature() default NatureOfService.VIEW; // <.>
-
-  String objectType() default ""; // <.>
+  NatureOfService nature() default NatureOfService.VIEW;     // <.>
+  String objectType() default "";     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainServiceLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainServiceLayout.adoc
index d0ffa00..5f6996b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/DomainServiceLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/DomainServiceLayout.adoc
@@ -1,18 +1,17 @@
-= DomainServiceLayout : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Layout hints for domain services.
 
 Also indicates the name, and menu ordering UI hints.
 
-.Java Sources
+== API
+
+.DomainServiceLayout.java
 [source,java]
 ----
 @interface DomainServiceLayout {
-
-  MenuBar menuBar() default MenuBar.NOT_SPECIFIED; // <.>
-
-  String named() default ""; // <.>
+  MenuBar menuBar() default MenuBar.NOT_SPECIFIED;     // <.>
+  String named() default "";     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Editing.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Editing.adoc
index e2c65a4..edfa001 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Editing.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Editing.adoc
@@ -1,20 +1,17 @@
-= Editing : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 The available policies for editing properties and collections.
 
-.Java Sources
+== API
+
+.Editing.java
 [source,java]
 ----
 enum Editing {
-
-  AS_CONFIGURED // <.>
-
-  ENABLED // <.>
-
-  DISABLED // <.>
-
-  NOT_SPECIFIED // <.>
+  AS_CONFIGURED     // <.>
+  ENABLED     // <.>
+  DISABLED     // <.>
+  NOT_SPECIFIED     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/EntityChangeKind.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/EntityChangeKind.adoc
index 8545945..14b0394 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/EntityChangeKind.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/EntityChangeKind.adoc
@@ -1,15 +1,13 @@
-= EntityChangeKind : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.EntityChangeKind.java
 [source,java]
 ----
 enum EntityChangeKind {
-
   CREATE
-
   UPDATE
-
   DELETE
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/EqualByContent.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/EqualByContent.adoc
index f4eda37..abe4448 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/EqualByContent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/EqualByContent.adoc
@@ -1,4 +1,3 @@
-= EqualByContent : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that the class follows the equal-by-content contract, usually associated with xref:system:generated:index/applib/annotation/Value.adoc[Value] types.
@@ -9,7 +8,9 @@ Note also that the Java Language Specification requires that two objects that ar
 
 By default any xref:system:generated:index/applib/annotation/Value.adoc[Value] types are assumed to follow the equal-by-content rule, though this can be overridden if required. Value types are usually also immutable (though there are some classic exceptions to this, such as _Date_ ).
 
-.Java Sources
+== API
+
+.EqualByContent.java
 [source,java]
 ----
 @interface EqualByContent {
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Facets.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Facets.adoc
index 86165a5..9f1019e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Facets.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Facets.adoc
@@ -1,18 +1,17 @@
-= Facets : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that the class has additional facets, and specifies the how to obtain the `FacetFactory` to manufacture them.
 
 At least one named factory (as per _#facetFactoryNames()_ ) or one class factory (as per _#facetFactoryClasses()_ ) should be specified.
 
-.Java Sources
+== API
+
+.Facets.java
 [source,java]
 ----
 @interface Facets {
-
-  String[] facetFactoryNames() default {}; // <.>
-
-  Class<?>[] facetFactoryClasses() default {}; // <.>
+  String[] facetFactoryNames() default {};     // <.>
+  Class<?>[] facetFactoryClasses() default {};     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/HomePage.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/HomePage.adoc
index 82cd532..d20aba6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/HomePage.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/HomePage.adoc
@@ -1,11 +1,12 @@
-= HomePage : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Annotated on a view model to indicate that it should be used as the home page.
 
 The view model is instantiated through a no-arg constructor, so must in effect be stateless. Typically it will use injected repositories in order to display a dashboard, and offer actions to traverse or operate on the rendered state.
 
-.Java Sources
+== API
+
+.HomePage.java
 [source,java]
 ----
 @interface HomePage {
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/InteractionScope.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/InteractionScope.adoc
index 6470a24..5732f70 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/InteractionScope.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/InteractionScope.adoc
@@ -1,4 +1,3 @@
-= InteractionScope : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 _@InteractionScope_ is a specialization of _Scope @Scope_ for a component whose lifecycle is bound to the current top-level Interaction.
@@ -7,7 +6,9 @@ Specifically, _@InteractionScope_ is a *composed annotation* that acts as a shor
 
 _@InteractionScope_ may be used as a meta-annotation to create custom composed annotations.
 
-.Java Sources
+== API
+
+.InteractionScope.java
 [source,java]
 ----
 @interface InteractionScope {
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/LabelPosition.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/LabelPosition.adoc
index 564859e..17c23ad 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/LabelPosition.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/LabelPosition.adoc
@@ -1,24 +1,19 @@
-= LabelPosition : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 The positioning of a label for a property or action parameter.
 
-.Java Sources
+== API
+
+.LabelPosition.java
 [source,java]
 ----
 enum LabelPosition {
-
   DEFAULT
-
   LEFT
-
-  RIGHT // <.>
-
+  RIGHT     // <.>
   TOP
-
   NONE
-
-  NOT_SPECIFIED // <.>
+  NOT_SPECIFIED     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/MemberOrder.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/MemberOrder.adoc
index e37122a..fc09a0c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/MemberOrder.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/MemberOrder.adoc
@@ -1,18 +1,17 @@
-= MemberOrder : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates the position a method should be placed in.
 
-An alternative is to use theXxx.layout.xmlfile, whereXxxis the domain object name.
+An alternative is to use the `Xxx.layout.xmlfile, where `Xxxis the domain object name.
 
-.Java Sources
+== API
+
+.MemberOrder.java
 [source,java]
 ----
 @interface MemberOrder {
-
-  String name() default ""; // <.>
-
-  String sequence(); // <.>
+  String name() default "";     // <.>
+  String sequence();     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/MinLength.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/MinLength.adoc
index 844cb01..3bde09a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/MinLength.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/MinLength.adoc
@@ -1,13 +1,13 @@
-= MinLength : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Specify the minimum number of characters for an autocomplete search argument.
 
-.Java Sources
+== API
+
+.MinLength.java
 [source,java]
 ----
 @interface MinLength {
-
   int value();
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Module.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Module.adoc
index e8a6312..4c11595 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Module.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Module.adoc
@@ -1,4 +1,3 @@
-= Module : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Intended to be annotated on the root marker class of a (Maven) module which contains a single coherent set of functionality, possibly including domain services.
@@ -7,7 +6,9 @@ A xref:system:generated:index/applib/annotation/Module.adoc[Module] (because it'
 
 Also, a xref:system:generated:index/applib/annotation/Module.adoc[Module] also declares the Spring _ComponentScan @ComponentScan_ (with no parameters), which means that any domain services in the same package or subpackages are automatically found and registered.
 
-.Java Sources
+== API
+
+.Module.java
 [source,java]
 ----
 @interface Module {
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Nature.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Nature.adoc
index dc7e7c5..be9aae1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Nature.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Nature.adoc
@@ -1,23 +1,18 @@
-= Nature : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 The different sorts of domain objects recognized by Isis.
 
-.Java Sources
+== API
+
+.Nature.java
 [source,java]
 ----
 enum Nature {
-
-  NOT_SPECIFIED // <.>
-
-  ENTITY // <.>
-
-  VIEW_MODEL // <.>
-
-  MIXIN // <.>
-
-  BEAN // <.>
-
+  NOT_SPECIFIED     // <.>
+  ENTITY     // <.>
+  VIEW_MODEL     // <.>
+  MIXIN     // <.>
+  BEAN     // <.>
   boolean isEntity()
 }
 ----
@@ -43,7 +38,7 @@ An object that is conceptually part of the application layer, and which surfaces
 
 The identity of a view model is determined solely by the state of object's properties. Using this nature should be considered exactly equivalent to annotating with xref:system:generated:index/applib/ViewModel.adoc[ViewModel] .
 
-Note that collections are ignored; if their state is required to fully identify the view model, define the view model using the JAXB _XmlRootElement_ annotation instead (where the object's state is serialized to an arbitrarily deep graph of data, with references to persistent entities transparently resolved to<oid-dto>elements).
+Note that collections are ignored; if their state is required to fully identify the view model, define the view model using the JAXB _XmlRootElement_ annotation instead (where the object's state is serialized to an arbitrarily deep graph of data, with references to persistent entities transparently resolved to `<oid-dto>elements).
 --
 <.> `[teal]#*_MIXIN_*#`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/NatureOfService.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/NatureOfService.adoc
index 1ddb5ee..328708b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/NatureOfService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/NatureOfService.adoc
@@ -1,20 +1,17 @@
-= NatureOfService : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 The different sorts of domain services recognized by Isis, as specified in _DomainService#nature()_
 
-.Java Sources
+== API
+
+.NatureOfService.java
 [source,java]
 ----
 enum NatureOfService {
-
-  VIEW // <.>
-
-  REST // <.>
-
-  boolean isView() // <.>
-
-  boolean isRestOnly() // <.>
+  VIEW     // <.>
+  REST     // <.>
+  boolean isView()     // <.>
+  boolean isRestOnly()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Navigable.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Navigable.adoc
index ba7b64c..9834ce1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Navigable.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Navigable.adoc
@@ -1,19 +1,16 @@
-= Navigable : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Tells the framework which method or field to use in order to construct a navigable chain of parent domain object instances. The Navigable.PARENT 'flag' can only be used once per class declaration.
 
-.Java Sources
+== API
+
+.Navigable.java
 [source,java]
 ----
 enum Navigable {
-
   NOT_SPECIFIED
-
   IGNORE
-
   PARENT
-
   boolean isParent()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Optionality.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Optionality.adoc
index c3ce534..4b719cf 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Optionality.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Optionality.adoc
@@ -1,20 +1,17 @@
-= Optionality : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Whether the property or parameter is optional or is required (aka mandatory).
 
-.Java Sources
+== API
+
+.Optionality.java
 [source,java]
 ----
 enum Optionality {
-
-  DEFAULT // <.>
-
-  OPTIONAL // <.>
-
-  MANDATORY // <.>
-
-  NOT_SPECIFIED // <.>
+  DEFAULT     // <.>
+  OPTIONAL     // <.>
+  MANDATORY     // <.>
+  NOT_SPECIFIED     // <.>
 }
 ----
 
@@ -23,7 +20,7 @@ enum Optionality {
 --
 Default, usually meaning mandatory for properties and always meaning mandatory for parameters.
 
-For properties, will be false unless JDOjavax.jdo.annotations.Columnhas also specified withjavax.jdo.annotations.Column#allowsNull()set totrue.
+For properties, will be false unless JDO `javax.jdo.annotations.Columnhas also specified with `javax.jdo.annotations.Column#allowsNull()set to `true.
 --
 <.> `[teal]#*_OPTIONAL_*#`
 +
@@ -33,9 +30,9 @@ Indicates that the property or parameter is not required.
 <.> `[teal]#*_MANDATORY_*#`
 +
 --
-Indicates that the property is required (even if the JDOjavax.jdo.annotations.Columnannotation says otherwise).
+Indicates that the property is required (even if the JDO `javax.jdo.annotations.Columnannotation says otherwise).
 
-When using the JDO/DataNucleus objectstore, it is sometimes necessary to annotate a property as optional (usingjavax.jdo.annotations.Column#allowsNull()set totrue), even if the property is logically mandatory. For example, this can occur when the property is in a subtype class that has been "rolled up" to the superclass table usingjavax.jdo.annotations.Inheritance> with thejavax.jdo.annotations.InheritanceStrategy#SUPERCLASS_TABLEsuperclass strategy.
+When using the JDO/DataNucleus objectstore, it is sometimes necessary to annotate a property as optional (using `javax.jdo.annotations.Column#allowsNull()set to `true), even if the property is logically mandatory. For example, this can occur when the property is in a subtype class that has been "rolled up" to the superclass table using `javax.jdo.annotations.Inheritance> with the `javax.jdo.annotations.InheritanceStrategy#SUPERCLASS_TABLEsuperclass strategy.
 
 This annotation, therefore, is intended to override any objectstore-specific annotation, so that Isis can apply the constraint even though the objectstore is unable to do so.
 --
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/OrderPrecedence.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/OrderPrecedence.adoc
index 01333e9..1d8b69f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/OrderPrecedence.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/OrderPrecedence.adoc
@@ -1,20 +1,16 @@
-= OrderPrecedence : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.OrderPrecedence.java
 [source,java]
 ----
 class OrderPrecedence {
-
-  public static final int FIRST; // <.>
-
-  public static final int EARLY; // <.>
-
-  public static final int MIDPOINT; // <.>
-
-  public static final int LATE; // <.>
-
-  public static final int LAST; // <.>
+  public static final int FIRST;     // <.>
+  public static final int EARLY;     // <.>
+  public static final int MIDPOINT;     // <.>
+  public static final int LATE;     // <.>
+  public static final int LAST;     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Parameter.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Parameter.adoc
index 7e422aa..3ac236a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Parameter.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Parameter.adoc
@@ -1,26 +1,20 @@
-= Parameter : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-Domain semantics for domain object collection.
+Collects together all domain semantics of an action parameter within a single annotation.
 
-.Java Sources
+== API
+
+.Parameter.java
 [source,java]
 ----
 @interface Parameter {
-
-  String fileAccept() default ""; // <.>
-
-  int maxLength() default -1; // <.>
-
-  Class<? extends Specification>[] mustSatisfy() default {}; // <.>
-
-  Optionality optionality() default Optionality.NOT_SPECIFIED; // <.>
-
-  String regexPattern() default ""; // <.>
-
-  int regexPatternFlags() default 0; // <.>
-
-  String regexPatternReplacement() default "Doesn't match pattern"; // <.>
+  String fileAccept() default "";     // <.>
+  int maxLength() default -1;     // <.>
+  Class<? extends Specification>[] mustSatisfy() default {};     // <.>
+  Optionality optionality() default Optionality.NOT_SPECIFIED;     // <.>
+  String regexPattern() default "";     // <.>
+  int regexPatternFlags() default 0;     // <.>
+  String regexPatternReplacement() default "Doesn't match pattern";     // <.>
 }
 ----
 
@@ -36,7 +30,7 @@ The value should be of the form "file_extension|audio/*|video/*|image/*|media_ty
 --
 The maximum entry length of a field.
 
-The default value (-1) indicates that no maxLength has been specified.
+The default value ( `-1) indicates that no maxLength has been specified.
 --
 <.> `[teal]#*_mustSatisfy_*#` : `Class<? extends Specification>[]`
 +
@@ -62,7 +56,7 @@ Regular expression pattern that a value should conform to, and can be formatted
 --
 Pattern flags, as per _java.util.regex.Pattern#compile(String, int)_ .
 
-The default value,0, means that no flags have been specified.
+The default value, `0, means that no flags have been specified.
 --
 <.> `[teal]#*_regexPatternReplacement_*#` : `String`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/ParameterLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/ParameterLayout.adoc
index 00c62b6..42d1b3b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/ParameterLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/ParameterLayout.adoc
@@ -1,28 +1,21 @@
-= ParameterLayout : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-Layout hints for action parameters.
+Collects together all layout hints for action parameters in a single annotation.
 
-.Java Sources
+== API
+
+.ParameterLayout.java
 [source,java]
 ----
 @interface ParameterLayout {
-
-  String cssClass() default ""; // <.>
-
-  String describedAs() default ""; // <.>
-
-  LabelPosition labelPosition() default LabelPosition.NOT_SPECIFIED; // <.>
-
-  String named() default ""; // <.>
-
-  boolean namedEscaped() default true; // <.>
-
-  int multiLine() default -1; // <.>
-
-  RenderDay renderDay() default RenderDay.NOT_SPECIFIED; // <.>
-
-  int typicalLength() default -1; // <.>
+  String cssClass() default "";     // <.>
+  String describedAs() default "";     // <.>
+  LabelPosition labelPosition() default LabelPosition.NOT_SPECIFIED;     // <.>
+  String named() default "";     // <.>
+  boolean namedEscaped() default true;     // <.>
+  int multiLine() default -1;     // <.>
+  RenderDay renderDay() default RenderDay.NOT_SPECIFIED;     // <.>
+  int typicalLength() default -1;     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Programmatic.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Programmatic.adoc
index c89271b..a78b6a7 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Programmatic.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Programmatic.adoc
@@ -1,4 +1,3 @@
-= Programmatic : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that an property, collection or action is to be called programmatically and should be ignored from the metamodel.
@@ -7,7 +6,9 @@ For example, it may be a helper method that needs to be `public` but that doesn'
 
 It can also be added to a type, meaning that the type is ignored from the metamodel. This is intended as a "get out of jail" for any classes from unit tests, say, that end up on the classpath of integration tests but should otherwise be ignored.
 
-.Java Sources
+== API
+
+.Programmatic.java
 [source,java]
 ----
 @interface Programmatic {
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Projecting.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Projecting.adoc
index 45b98b4..3de210a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Projecting.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Projecting.adoc
@@ -1,14 +1,13 @@
-= Projecting : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Projecting.java
 [source,java]
 ----
 enum Projecting {
-
-  PROJECTED // <.>
-
-  NOT_SPECIFIED // <.>
+  PROJECTED     // <.>
+  NOT_SPECIFIED     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/PromptStyle.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/PromptStyle.adoc
index 9e7e4e8..f1efe98 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/PromptStyle.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/PromptStyle.adoc
@@ -1,33 +1,23 @@
-= PromptStyle : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 How prompting for new values of a property/arguments for an action should be performed
 
-.Java Sources
+== API
+
+.PromptStyle.java
 [source,java]
 ----
 enum PromptStyle {
-
-  AS_CONFIGURED // <.>
-
-  DIALOG // <.>
-
-  DIALOG_SIDEBAR // <.>
-
-  DIALOG_MODAL // <.>
-
-  INLINE // <.>
-
-  INLINE_AS_IF_EDIT // <.>
-
-  NOT_SPECIFIED // <.>
-
+  AS_CONFIGURED     // <.>
+  DIALOG     // <.>
+  DIALOG_SIDEBAR     // <.>
+  DIALOG_MODAL     // <.>
+  INLINE     // <.>
+  INLINE_AS_IF_EDIT     // <.>
+  NOT_SPECIFIED     // <.>
   boolean isDialog()
-
   boolean isInline()
-
   boolean isInlineAsIfEdit()
-
   boolean isInlineOrInlineAsIfEdit()
 }
 ----
@@ -44,7 +34,7 @@ If no style is configured, then _#INLINE_ is assumed.
 --
 Use a dialog for the prompt.
 
-This will be either modal dialog (same as if _#DIALOG_MODAL_ was selected) or sidebar (same as if _#DIALOG_SIDEBAR_ was selected) depending on the value of theisis.viweer.wicket.dialogModeconfiguration property.
+This will be either modal dialog (same as if _#DIALOG_MODAL_ was selected) or sidebar (same as if _#DIALOG_SIDEBAR_ was selected) depending on the value of the `isis.viweer.wicket.dialogModeconfiguration property.
 --
 <.> `[teal]#*_DIALOG_SIDEBAR_*#`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Property.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Property.adoc
index 3655b48..02e3d6a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Property.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Property.adoc
@@ -1,44 +1,29 @@
-= Property : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-Domain semantics for domain object property.
+Collects together all the domain semantics for the property of a domain object.
 
-.Java Sources
+== API
+
+.Property.java
 [source,java]
 ----
 @interface Property {
-
-  Class<? extends CommandDtoProcessor> commandDtoProcessor() default CommandDtoProcessor.class; // <.>
-
-  Publishing commandPublishing() default Publishing.NOT_SPECIFIED; // <.>
-
-  Class<? extends PropertyDomainEvent<?, ?>> domainEvent() default PropertyDomainEvent.Default.class; // <.>
-
-  Editing editing() default Editing.NOT_SPECIFIED; // <.>
-
-  String editingDisabledReason() default ""; // <.>
-
-  Publishing executionPublishing() default Publishing.NOT_SPECIFIED; // <.>
-
-  String fileAccept() default ""; // <.>
-
-  Where hidden() default Where.NOT_SPECIFIED; // <.>
-
-  int maxLength() default -1; // <.>
-
-  Snapshot snapshot() default Snapshot.NOT_SPECIFIED; // <.>
-
-  Class<? extends Specification>[] mustSatisfy() default {}; // <.>
-
-  Optionality optionality() default Optionality.NOT_SPECIFIED; // <.>
-
-  Projecting projecting() default Projecting.NOT_SPECIFIED; // <.>
-
-  String regexPattern() default ""; // <.>
-
-  int regexPatternFlags() default 0; // <.>
-
-  String regexPatternReplacement() default "Doesn't match pattern"; // <.>
+  Class<? extends CommandDtoProcessor> commandDtoProcessor() default CommandDtoProcessor.class;     // <.>
+  Publishing commandPublishing() default Publishing.NOT_SPECIFIED;     // <.>
+  Class<? extends PropertyDomainEvent<?, ?>> domainEvent() default PropertyDomainEvent.Default.class;     // <.>
+  Editing editing() default Editing.NOT_SPECIFIED;     // <.>
+  String editingDisabledReason() default "";     // <.>
+  Publishing executionPublishing() default Publishing.NOT_SPECIFIED;     // <.>
+  String fileAccept() default "";     // <.>
+  Where hidden() default Where.NOT_SPECIFIED;     // <.>
+  int maxLength() default -1;     // <.>
+  Snapshot snapshot() default Snapshot.NOT_SPECIFIED;     // <.>
+  Class<? extends Specification>[] mustSatisfy() default {};     // <.>
+  Optionality optionality() default Optionality.NOT_SPECIFIED;     // <.>
+  Projecting projecting() default Projecting.NOT_SPECIFIED;     // <.>
+  String regexPattern() default "";     // <.>
+  int regexPatternFlags() default 0;     // <.>
+  String regexPatternReplacement() default "Doesn't match pattern";     // <.>
 }
 ----
 
@@ -105,14 +90,14 @@ Indicates where the property is not visible to the user.
 --
 The maximum entry length of a field.
 
-The default value (-1) indicates that no maxLength has been specified.
+The default value ( `-1) indicates that no maxLength has been specified.
 --
 <.> `[teal]#*_snapshot_*#` : `xref:system:generated:index/applib/annotation/Snapshot.adoc[Snapshot]`
 +
 --
 Indicates whether the property should be included or excluded from mementos.
 
-To ensure that the property is actually not persisted in the objectstore, also annotate with the JDO annotationjavax.jdo.annotations.NotPersistent
+To ensure that the property is actually not persisted in the objectstore, also annotate with the JDO annotation `javax.jdo.annotations.NotPersistent
 --
 <.> `[teal]#*_mustSatisfy_*#` : `Class<? extends Specification>[]`
 +
@@ -126,7 +111,7 @@ If more than one is provided, then all must be satisfied (in effect "AND"ed toge
 --
 Whether this property is optional or is mandatory (ie required).
 
-For properties the default value, _org.apache.isis.applib.annotation.Optionality#DEFAULT_ , usually means that the property is required unless it has been overridden byjavax.jdo.annotations.Columnwith itsjavax.jdo.annotations.Column#allowsNull()attribute set to true.
+For properties the default value, _org.apache.isis.applib.annotation.Optionality#DEFAULT_ , usually means that the property is required unless it has been overridden by `javax.jdo.annotations.Columnwith its `javax.jdo.annotations.Column#allowsNull()attribute set to true.
 --
 <.> `[teal]#*_projecting_*#` : `xref:system:generated:index/applib/annotation/Projecting.adoc[Projecting]`
 +
@@ -147,7 +132,7 @@ Regular expression pattern that a value should conform to, and can be formatted
 --
 Pattern flags, as per _java.util.regex.Pattern#compile(String, int)_ .
 
-The default value,0, means that no flags have been specified.
+The default value, `0, means that no flags have been specified.
 --
 <.> `[teal]#*_regexPatternReplacement_*#` : `String`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/PropertyLayout.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/PropertyLayout.adoc
index efca208..149053d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/PropertyLayout.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/PropertyLayout.adoc
@@ -1,36 +1,25 @@
-= PropertyLayout : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-Layout hints for properties.
+Collects together all layout hints for a property of a domain object.
 
-.Java Sources
+== API
+
+.PropertyLayout.java
 [source,java]
 ----
 @interface PropertyLayout {
-
-  String cssClass() default ""; // <.>
-
-  String describedAs() default ""; // <.>
-
-  Where hidden() default Where.NOT_SPECIFIED; // <.>
-
-  LabelPosition labelPosition() default LabelPosition.NOT_SPECIFIED; // <.>
-
-  int multiLine() default -1; // <.>
-
-  String named() default ""; // <.>
-
-  boolean namedEscaped() default true; // <.>
-
-  Navigable navigable() default Navigable.NOT_SPECIFIED; // <.>
-
-  PromptStyle promptStyle() default PromptStyle.NOT_SPECIFIED; // <.>
-
-  RenderDay renderDay() default RenderDay.NOT_SPECIFIED; // <.>
-
-  Repainting repainting() default Repainting.NOT_SPECIFIED; // <.>
-
-  int typicalLength() default -1; // <.>
+  String cssClass() default "";     // <.>
+  String describedAs() default "";     // <.>
+  Where hidden() default Where.NOT_SPECIFIED;     // <.>
+  LabelPosition labelPosition() default LabelPosition.NOT_SPECIFIED;     // <.>
+  int multiLine() default -1;     // <.>
+  String named() default "";     // <.>
+  boolean namedEscaped() default true;     // <.>
+  Navigable navigable() default Navigable.NOT_SPECIFIED;     // <.>
+  PromptStyle promptStyle() default PromptStyle.NOT_SPECIFIED;     // <.>
+  RenderDay renderDay() default RenderDay.NOT_SPECIFIED;     // <.>
+  Repainting repainting() default Repainting.NOT_SPECIFIED;     // <.>
+  int typicalLength() default -1;     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Publishing.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Publishing.adoc
index 2e55cba..2c52069 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Publishing.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Publishing.adoc
@@ -1,4 +1,3 @@
-= Publishing : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 The available policies as to whether data should be published to corresponding subscribers. The framework supports several kinds of data that are available for publishing:
@@ -16,18 +15,16 @@ The available policies as to whether data should be published to corresponding s
 
  ** * * * 
 
-.Java Sources
+== API
+
+.Publishing.java
 [source,java]
 ----
 enum Publishing {
-
-  AS_CONFIGURED // <.>
-
-  ENABLED // <.>
-
-  DISABLED // <.>
-
-  NOT_SPECIFIED // <.>
+  AS_CONFIGURED     // <.>
+  ENABLED     // <.>
+  DISABLED     // <.>
+  NOT_SPECIFIED     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Redirect.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Redirect.adoc
index e2d3ca0..22ddeaa 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Redirect.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Redirect.adoc
@@ -1,25 +1,23 @@
-= Redirect : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 The available policies for rendering the next page if the result is the same as the target (in other words, an action that returns "this").
 
-.Java Sources
+== API
+
+.Redirect.java
 [source,java]
 ----
 enum Redirect {
-
-  AS_CONFIGURED // <.>
-
-  EVEN_IF_SAME // <.>
-
-  ONLY_IF_DIFFERS // <.>
+  AS_CONFIGURED     // <.>
+  EVEN_IF_SAME     // <.>
+  ONLY_IF_DIFFERS     // <.>
 }
 ----
 
 <.> `[teal]#*_AS_CONFIGURED_*#`
 +
 --
-As defined by configuration propertyisis.viewer.wicket.redirectEvenIfSameObject
+As defined by configuration property `isis.viewer.wicket.redirectEvenIfSameObject
 --
 <.> `[teal]#*_EVEN_IF_SAME_*#`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/RenderDay.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/RenderDay.adoc
index 8dcc301..f9867d4 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/RenderDay.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/RenderDay.adoc
@@ -1,18 +1,16 @@
-= RenderDay : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 How to render days.
 
-.Java Sources
+== API
+
+.RenderDay.java
 [source,java]
 ----
 enum RenderDay {
-
   AS_DAY
-
-  AS_DAY_BEFORE // <.>
-
-  NOT_SPECIFIED // <.>
+  AS_DAY_BEFORE     // <.>
+  NOT_SPECIFIED     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Repainting.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Repainting.adoc
index ebc6515..fbc6b5b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Repainting.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Repainting.adoc
@@ -1,18 +1,16 @@
-= Repainting : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Whether a component is unchanging and so does not require repainting.
 
-.Java Sources
+== API
+
+.Repainting.java
 [source,java]
 ----
 enum Repainting {
-
   REPAINT
-
-  NO_REPAINT // <.>
-
-  NOT_SPECIFIED // <.>
+  NO_REPAINT     // <.>
+  NOT_SPECIFIED     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/RestrictTo.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/RestrictTo.adoc
index 092478b..4a30f8e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/RestrictTo.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/RestrictTo.adoc
@@ -1,17 +1,15 @@
-= RestrictTo : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Whether an action is restricted to development mode, or available in all.
 
-.Java Sources
+== API
+
+.RestrictTo.java
 [source,java]
 ----
 enum RestrictTo {
-
   PROTOTYPING
-
   NO_RESTRICTIONS
-
   NOT_SPECIFIED
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/SemanticsOf.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/SemanticsOf.adoc
index 99a9a20..b963acd 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/SemanticsOf.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/SemanticsOf.adoc
@@ -1,37 +1,24 @@
-= SemanticsOf : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.SemanticsOf.java
 [source,java]
 ----
 enum SemanticsOf {
-
-  SAFE_AND_REQUEST_CACHEABLE // <.>
-
-  SAFE // <.>
-
-  IDEMPOTENT // <.>
-
-  NON_IDEMPOTENT // <.>
-
-  IDEMPOTENT_ARE_YOU_SURE // <.>
-
-  NON_IDEMPOTENT_ARE_YOU_SURE // <.>
-
-  NOT_SPECIFIED // <.>
-
+  SAFE_AND_REQUEST_CACHEABLE     // <.>
+  SAFE     // <.>
+  IDEMPOTENT     // <.>
+  NON_IDEMPOTENT     // <.>
+  IDEMPOTENT_ARE_YOU_SURE     // <.>
+  NON_IDEMPOTENT_ARE_YOU_SURE     // <.>
+  NOT_SPECIFIED     // <.>
   String getFriendlyName()
-
   String getCamelCaseName()
-
-  boolean isIdempotentInNature() // <.>
-
-  boolean isSafeInNature() // <.>
-
-  boolean isSafe() // <.>
-
+  boolean isIdempotentInNature()     // <.>
+  boolean isSafeInNature()     // <.>
+  boolean isSafe()     // <.>
   boolean isSafeAndRequestCacheable()
-
   boolean isAreYouSure()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Snapshot.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Snapshot.adoc
index a76291e..4b6410b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Snapshot.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Snapshot.adoc
@@ -1,18 +1,16 @@
-= Snapshot : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Whether the property is included if the domain object graph is serialized into a snapshot.
 
-.Java Sources
+== API
+
+.Snapshot.java
 [source,java]
 ----
 enum Snapshot {
-
-  INCLUDED // <.>
-
-  EXCLUDED // <.>
-
-  NOT_SPECIFIED // <.>
+  INCLUDED     // <.>
+  EXCLUDED     // <.>
+  NOT_SPECIFIED     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Title.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Title.adoc
index 64b286a..f476117 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Title.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Title.adoc
@@ -1,20 +1,19 @@
-= Title : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-A title annotation used to annotate methods used to construct the title of a domain object instance. It is used as a marker.
+Used to indicate which property or properties make up the object title.
 
-.Java Sources
+If more than one property is used, the order can be specified (using the same Dewey-decimal notation as used by `@MemberOrder`) and the string to use between the components can also be specified.
+
+== API
+
+.Title.java
 [source,java]
 ----
 @interface Title {
-
-  String sequence() default "1.0"; // <.>
-
-  String prepend() default " "; // <.>
-
-  String append() default ""; // <.>
-
-  int abbreviatedTo() default Integer.MAX_VALUE; // <.>
+  String sequence() default "1.0";     // <.>
+  String prepend() default " ";     // <.>
+  String append() default "";     // <.>
+  int abbreviatedTo() default Integer.MAX_VALUE;     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Value.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Value.adoc
index dd4f605..8422b55 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Value.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Value.adoc
@@ -1,4 +1,3 @@
-= Value : _annotation_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that the class has value semantics.
@@ -14,14 +13,14 @@ By "value semantics" all we actually mean that the class is aggregated (or embed
 Note also that though a value is conceptually not shared, if it is also immutable then it is in fact safe to share objects (as in the flyweight pattern). In addition, the xref:system:generated:index/applib/annotation/EqualByContent.adoc[EqualByContent] semantic means that we needn't care whether value types are being shared or not.
 --
 
-.Java Sources
+== API
+
+.Value.java
 [source,java]
 ----
 @interface Value {
-
-  String semanticsProviderName() default ""; // <.>
-
-  Class<?> semanticsProviderClass() default Value.class; // <.>
+  String semanticsProviderName() default "";     // <.>
+  Class<?> semanticsProviderClass() default Value.class;     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/annotation/Where.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/Where.adoc
index bd33de7..c5e7ce7 100644
--- a/antora/components/system/modules/generated/pages/index/applib/annotation/Where.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/annotation/Where.adoc
@@ -1,4 +1,3 @@
-= Where : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Represents the location in the user interface where a class member is to be rendered.
@@ -7,38 +6,26 @@ Used to control visibility (eg using the _Property#hidden()_ annotation) and ena
 
 The application programmer may use any of the values of this enum. Some represent concrete locations (eg _#OBJECT_FORMS_ , _#PARENTED_TABLES_ ), whereas some represent a combination of locations (eg _#ALL_TABLES_ , _#ANYWHERE_ ).
 
-.Java Sources
+== API
+
+.Where.java
 [source,java]
 ----
 enum Where {
-
-  EVERYWHERE // <.>
-
-  ANYWHERE // <.>
-
-  OBJECT_FORMS // <.>
-
-  REFERENCES_PARENT // <.>
-
-  PARENTED_TABLES // <.>
-
-  STANDALONE_TABLES // <.>
-
-  ALL_TABLES // <.>
-
-  ALL_EXCEPT_STANDALONE_TABLES // <.>
-
-  NOWHERE // <.>
-
-  NOT_SPECIFIED // <.>
-
+  EVERYWHERE     // <.>
+  ANYWHERE     // <.>
+  OBJECT_FORMS     // <.>
+  REFERENCES_PARENT     // <.>
+  PARENTED_TABLES     // <.>
+  STANDALONE_TABLES     // <.>
+  ALL_TABLES     // <.>
+  ALL_EXCEPT_STANDALONE_TABLES     // <.>
+  NOWHERE     // <.>
+  NOT_SPECIFIED     // <.>
   String getFriendlyName()
-
   boolean inParentedTable()
-
   boolean inStandaloneTable()
-
-  boolean includes(Where context) // <.>
+  boolean includes(Where context)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/client/RepresentationTypeSimplifiedV2.adoc b/antora/components/system/modules/generated/pages/index/applib/client/RepresentationTypeSimplifiedV2.adoc
index dc19908..bfc2aa4 100644
--- a/antora/components/system/modules/generated/pages/index/applib/client/RepresentationTypeSimplifiedV2.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/client/RepresentationTypeSimplifiedV2.adoc
@@ -1,42 +1,27 @@
-= RepresentationTypeSimplifiedV2 : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.RepresentationTypeSimplifiedV2.java
 [source,java]
 ----
 enum RepresentationTypeSimplifiedV2 {
-
-  OBJECT // <.>
-
-  OBJECT_COLLECTION // <.>
-
-  LIST // <.>
-
-  VALUE // <.>
-
-  VALUES // <.>
-
-  VOID // <.>
-
+  OBJECT     // <.>
+  OBJECT_COLLECTION     // <.>
+  LIST     // <.>
+  VALUE     // <.>
+  VALUES     // <.>
+  VOID     // <.>
   @Getter
 final String typeLiteral;
-
   boolean isObject()
-
   boolean isObjectCollection()
-
   boolean isList()
-
   boolean isValue()
-
   boolean isValues()
-
   boolean isVoid()
-
   String getContentTypeHeaderValue(final String profileName)
-
   Optional<RepresentationTypeSimplifiedV2> parse(final String typeLiteral)
-
   Optional<RepresentationTypeSimplifiedV2> parseContentTypeHeaderString(final String contentTypeHeaderString)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/client/SuppressionType.adoc b/antora/components/system/modules/generated/pages/index/applib/client/SuppressionType.adoc
index b850ce9..f888629 100644
--- a/antora/components/system/modules/generated/pages/index/applib/client/SuppressionType.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/client/SuppressionType.adoc
@@ -1,23 +1,17 @@
-= SuppressionType : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.SuppressionType.java
 [source,java]
 ----
 enum SuppressionType {
-
-  RO // <.>
-
-  HREF // <.>
-
-  ID // <.>
-
-  DOMAIN_TYPE // <.>
-
-  TITLE // <.>
-
-  ALL // <.>
-
+  RO     // <.>
+  HREF     // <.>
+  ID     // <.>
+  DOMAIN_TYPE     // <.>
+  TITLE     // <.>
+  ALL     // <.>
   EnumSet<SuppressionType> setOf(SuppressionType... types)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/clock/VirtualClock.adoc b/antora/components/system/modules/generated/pages/index/applib/clock/VirtualClock.adoc
index da6c289..152ae2e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/clock/VirtualClock.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/clock/VirtualClock.adoc
@@ -1,40 +1,27 @@
-= VirtualClock : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Works in connection with _org.apache.isis.core.interaction.session.InteractionFactory_ , such that it allows an xref:system:generated:index/applib/services/iactn/Interaction.adoc[Interaction] to run with its own simulated (or actual) time.
 
-.Java Sources
+== API
+
+.VirtualClock.java
 [source,java]
 ----
 interface VirtualClock {
-
-  Instant now() // <.>
-
-  VirtualClock system() // <.>
-
-  VirtualClock nowAt(Instant virtualNow) // <.>
-
-  VirtualClock frozenAt(Instant frozenAt) // <.>
-
-  VirtualClock frozenTestClock() // <.>
-
-  long getEpochMillis() // <.>
-
-  LocalDate localDate(final ZoneId zoneId) // <.>
-
-  LocalDateTime localDateTime(final ZoneId zoneId) // <.>
-
-  OffsetDateTime offsetDateTime(final ZoneId zoneId) // <.>
-
+  Instant now()     // <.>
+  VirtualClock system()     // <.>
+  VirtualClock nowAt(Instant virtualNow)     // <.>
+  VirtualClock frozenAt(Instant frozenAt)     // <.>
+  VirtualClock frozenTestClock()     // <.>
+  long getEpochMillis()     // <.>
+  LocalDate localDate(final ZoneId zoneId)     // <.>
+  LocalDateTime localDateTime(final ZoneId zoneId)     // <.>
+  OffsetDateTime offsetDateTime(final ZoneId zoneId)     // <.>
   java.util.Date javaUtilDate()
-
   java.sql.Timestamp javaSqlTimestamp()
-
   XMLGregorianCalendar xmlGregorianCalendar()
-
-  org.joda.time.DateTime asJodaDateTime(final ZoneId zoneId) // <.>
-
-  org.joda.time.LocalDate asJodaLocalDate(final ZoneId zoneId) // <.>
+  org.joda.time.DateTime asJodaDateTime(final ZoneId zoneId)     // <.>
+  org.joda.time.LocalDate asJodaLocalDate(final ZoneId zoneId)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/domain/DomainObjectList.adoc b/antora/components/system/modules/generated/pages/index/applib/domain/DomainObjectList.adoc
index 7d8acc2..5718f81 100644
--- a/antora/components/system/modules/generated/pages/index/applib/domain/DomainObjectList.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/domain/DomainObjectList.adoc
@@ -1,4 +1,3 @@
-= DomainObjectList : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 The initial idea of xref:system:generated:index/applib/domain/DomainObjectList.adoc[DomainObjectList] was to simplify restful clients.
@@ -9,27 +8,20 @@ Instead, if the RO client invokes the action but uses the _Accept Header_ to req
 
 Thus, the RO client then only ever needs to know how to render an object, in all cases.
 
-.Java Sources
+== API
+
+.DomainObjectList.java
 [source,java]
 ----
 class DomainObjectList {
-
   DomainObjectList()
-
   DomainObjectList(final String title, final String elementObjectType, final String actionOwningType, final String actionId, final String actionArguments)
-
   String title()
-
   String getElementObjectType()
-
   String getActionOwningType()
-
   String getActionId()
-
   String getActionArguments()
-
   List<Object> getObjects()
-
   void setObjects(final List<Object> objects)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/EventObjectBase.adoc b/antora/components/system/modules/generated/pages/index/applib/events/EventObjectBase.adoc
index efbcc22..5212499 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/EventObjectBase.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/EventObjectBase.adoc
@@ -1,16 +1,14 @@
-= EventObjectBase : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.EventObjectBase.java
 [source,java]
 ----
 class EventObjectBase {
-
-  T getSource() // <.>
-
-  void initSource(T source) // <.>
-
-  String toString() // <.>
+  T getSource()     // <.>
+  void initSource(T source)     // <.>
+  String toString()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/domain/AbstractDomainEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/domain/AbstractDomainEvent.adoc
index 4d8f4e1..7dce78f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/domain/AbstractDomainEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/domain/AbstractDomainEvent.adoc
@@ -1,45 +1,28 @@
-= AbstractDomainEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.AbstractDomainEvent.java
 [source,java]
 ----
 class AbstractDomainEvent {
-
-  AbstractDomainEvent() // <.>
-
+  AbstractDomainEvent()     // <.>
   AbstractDomainEvent(final S source, final Identifier identifier)
-
-  void setMixedIn(final Object mixedIn) // <.>
-
-  Object getSubject() // <.>
-
-  void setEventPhase(Phase phase) // <.>
-
-  void setIdentifier(final Identifier identifier) // <.>
-
-  void hide() // <.>
-
+  void setMixedIn(final Object mixedIn)     // <.>
+  Object getSubject()     // <.>
+  void setEventPhase(Phase phase)     // <.>
+  void setIdentifier(final Identifier identifier)     // <.>
+  void hide()     // <.>
   boolean isDisabled()
-
-  void disable(final String reason) // <.>
-
-  void disable(final TranslatableString reason) // <.>
-
+  void disable(final String reason)     // <.>
+  void disable(final TranslatableString reason)     // <.>
   boolean isInvalid()
-
-  void invalidate(final String reason) // <.>
-
-  void invalidate(final TranslatableString reason) // <.>
-
-  void veto(final String reason, final Object... args) // <.>
-
-  void veto(final TranslatableString translatableReason) // <.>
-
-  Object get(Object key) // <.>
-
-  void put(Object key, Object value) // <.>
-
+  void invalidate(final String reason)     // <.>
+  void invalidate(final TranslatableString reason)     // <.>
+  void veto(final String reason, final Object... args)     // <.>
+  void veto(final TranslatableString translatableReason)     // <.>
+  Object get(Object key)     // <.>
+  void put(Object key, Object value)     // <.>
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/domain/ActionDomainEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/domain/ActionDomainEvent.adoc
index 92b46ef..82930d1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/domain/ActionDomainEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/domain/ActionDomainEvent.adoc
@@ -1,23 +1,17 @@
-= ActionDomainEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ActionDomainEvent.java
 [source,java]
 ----
 class ActionDomainEvent {
-
-  ActionDomainEvent() // <.>
-
-  void setReturnValue(final Object returnValue) // <.>
-
-  void setSemantics(SemanticsOf semantics) // <.>
-
-  void setParameterNames(final List<String> parameterNames) // <.>
-
-  void setParameterTypes(final List<Class<?>> parameterTypes) // <.>
-
-  void setMixedIn(final Object mixedIn) // <.>
-
+  ActionDomainEvent()     // <.>
+  void setReturnValue(final Object returnValue)     // <.>
+  void setSemantics(SemanticsOf semantics)     // <.>
+  void setParameterNames(final List<String> parameterNames)     // <.>
+  void setParameterTypes(final List<Class<?>> parameterTypes)     // <.>
+  void setMixedIn(final Object mixedIn)     // <.>
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/domain/CollectionDomainEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/domain/CollectionDomainEvent.adoc
index 3a7d99c..34d0304 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/domain/CollectionDomainEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/domain/CollectionDomainEvent.adoc
@@ -1,17 +1,14 @@
-= CollectionDomainEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.CollectionDomainEvent.java
 [source,java]
 ----
 class CollectionDomainEvent {
-
-  CollectionDomainEvent() // <.>
-
-  void setValue(T value) // <.>
-
-  void setOf(Of of) // <.>
-
+  CollectionDomainEvent()     // <.>
+  void setValue(T value)     // <.>
+  void setOf(Of of)     // <.>
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/domain/PropertyDomainEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/domain/PropertyDomainEvent.adoc
index 2ff1a1b..0794970 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/domain/PropertyDomainEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/domain/PropertyDomainEvent.adoc
@@ -1,13 +1,12 @@
-= PropertyDomainEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.PropertyDomainEvent.java
 [source,java]
 ----
 class PropertyDomainEvent {
-
-  PropertyDomainEvent() // <.>
-
+  PropertyDomainEvent()     // <.>
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/AbstractLifecycleEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/AbstractLifecycleEvent.adoc
index ff1f13e..0ef9614 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/AbstractLifecycleEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/AbstractLifecycleEvent.adoc
@@ -1,13 +1,12 @@
-= AbstractLifecycleEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.AbstractLifecycleEvent.java
 [source,java]
 ----
 class AbstractLifecycleEvent {
-
   AbstractLifecycleEvent()
-
   AbstractLifecycleEvent(S source)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectCreatedEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectCreatedEvent.adoc
index f4ef758..43ada75 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectCreatedEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectCreatedEvent.adoc
@@ -1,13 +1,12 @@
-= ObjectCreatedEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ObjectCreatedEvent.java
 [source,java]
 ----
 class ObjectCreatedEvent {
-
   ObjectCreatedEvent()
-
   ObjectCreatedEvent(final S source)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectLoadedEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectLoadedEvent.adoc
index 6728365..a61f65b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectLoadedEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectLoadedEvent.adoc
@@ -1,13 +1,12 @@
-= ObjectLoadedEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ObjectLoadedEvent.java
 [source,java]
 ----
 class ObjectLoadedEvent {
-
   ObjectLoadedEvent()
-
   ObjectLoadedEvent(final S source)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectPersistedEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectPersistedEvent.adoc
index 020e2ee..6e9eafa 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectPersistedEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectPersistedEvent.adoc
@@ -1,13 +1,12 @@
-= ObjectPersistedEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ObjectPersistedEvent.java
 [source,java]
 ----
 class ObjectPersistedEvent {
-
   ObjectPersistedEvent()
-
   ObjectPersistedEvent(final S source)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectPersistingEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectPersistingEvent.adoc
index c3875c6..939ac43 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectPersistingEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectPersistingEvent.adoc
@@ -1,13 +1,12 @@
-= ObjectPersistingEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ObjectPersistingEvent.java
 [source,java]
 ----
 class ObjectPersistingEvent {
-
   ObjectPersistingEvent()
-
   ObjectPersistingEvent(final S source)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectRemovingEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectRemovingEvent.adoc
index 5505aea..6906722 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectRemovingEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectRemovingEvent.adoc
@@ -1,13 +1,12 @@
-= ObjectRemovingEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ObjectRemovingEvent.java
 [source,java]
 ----
 class ObjectRemovingEvent {
-
   ObjectRemovingEvent()
-
   ObjectRemovingEvent(final S source)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectUpdatedEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectUpdatedEvent.adoc
index 06567b2..cb65f26 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectUpdatedEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectUpdatedEvent.adoc
@@ -1,13 +1,12 @@
-= ObjectUpdatedEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ObjectUpdatedEvent.java
 [source,java]
 ----
 class ObjectUpdatedEvent {
-
   ObjectUpdatedEvent()
-
   ObjectUpdatedEvent(final S source)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectUpdatingEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectUpdatingEvent.adoc
index d9dd0db..44ea69e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectUpdatingEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/lifecycle/ObjectUpdatingEvent.adoc
@@ -1,13 +1,12 @@
-= ObjectUpdatingEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ObjectUpdatingEvent.java
 [source,java]
 ----
 class ObjectUpdatingEvent {
-
   ObjectUpdatingEvent()
-
   ObjectUpdatingEvent(final S source)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/ui/AbstractUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/ui/AbstractUiEvent.adoc
index 4973f89..e76cb69 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/ui/AbstractUiEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/ui/AbstractUiEvent.adoc
@@ -1,18 +1,15 @@
-= AbstractUiEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.AbstractUiEvent.java
 [source,java]
 ----
 class AbstractUiEvent {
-
-  AbstractUiEvent() // <.>
-
+  AbstractUiEvent()     // <.>
   AbstractUiEvent(final S source)
-
-  Object get(Object key) // <.>
-
-  void put(Object key, Object value) // <.>
+  Object get(Object key)     // <.>
+  void put(Object key, Object value)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/ui/CssClassUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/ui/CssClassUiEvent.adoc
index f7c1084..1c6a5ea 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/ui/CssClassUiEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/ui/CssClassUiEvent.adoc
@@ -1,18 +1,16 @@
-= CssClassUiEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Emitted for subscribers to obtain a cssClass hint (equivalent to the `cssClass()` supporting method or the _DomainObjectLayout#cssClass()_ attribute).
 
-.Java Sources
+== API
+
+.CssClassUiEvent.java
 [source,java]
 ----
 class CssClassUiEvent {
-
-  CssClassUiEvent() // <.>
-
+  CssClassUiEvent()     // <.>
   CssClassUiEvent(final S source)
-
-  void setCssClass(final String cssClass) // <.>
+  void setCssClass(final String cssClass)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/ui/IconUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/ui/IconUiEvent.adoc
index a5e7d2c..99b0f8e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/ui/IconUiEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/ui/IconUiEvent.adoc
@@ -1,20 +1,17 @@
-= IconUiEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Emitted for subscribers to obtain a cssClass hint (equivalent to the `iconName()` supporting method).
 
-.Java Sources
+== API
+
+.IconUiEvent.java
 [source,java]
 ----
 class IconUiEvent {
-
-  IconUiEvent() // <.>
-
+  IconUiEvent()     // <.>
   IconUiEvent(final S source)
-
-  String getIconName() // <.>
-
-  void setIconName(final String iconName) // <.>
+  String getIconName()     // <.>
+  void setIconName(final String iconName)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/ui/LayoutUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/ui/LayoutUiEvent.adoc
index d4736cc..200f3d2 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/ui/LayoutUiEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/ui/LayoutUiEvent.adoc
@@ -1,18 +1,16 @@
-= LayoutUiEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Emitted for subscribers to obtain a layout hint (equivalent to the `layout()` supporting method).
 
-.Java Sources
+== API
+
+.LayoutUiEvent.java
 [source,java]
 ----
 class LayoutUiEvent {
-
-  LayoutUiEvent() // <.>
-
+  LayoutUiEvent()     // <.>
   LayoutUiEvent(final S source)
-
-  void setLayout(final String layout) // <.>
+  void setLayout(final String layout)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/events/ui/TitleUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/ui/TitleUiEvent.adoc
index d01c31e..52e9670 100644
--- a/antora/components/system/modules/generated/pages/index/applib/events/ui/TitleUiEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/events/ui/TitleUiEvent.adoc
@@ -1,20 +1,17 @@
-= TitleUiEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Emitted for subscribers to obtain a cssClass hint (equivalent to the `title()` supporting method).
 
-.Java Sources
+== API
+
+.TitleUiEvent.java
 [source,java]
 ----
 class TitleUiEvent {
-
-  TitleUiEvent() // <.>
-
+  TitleUiEvent()     // <.>
   TitleUiEvent(final S source)
-
-  void setTitle(final String title) // <.>
-
-  void setTranslatableTitle(final TranslatableString translatableTitle) // <.>
+  void setTitle(final String title)     // <.>
+  void setTranslatableTitle(final TranslatableString translatableTitle)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/RecoverableException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/RecoverableException.adoc
index fd4714a..501e255 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/RecoverableException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/RecoverableException.adoc
@@ -1,4 +1,3 @@
-= RecoverableException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that an exceptional condition/problem has occurred within the application's domain logic.
@@ -9,25 +8,19 @@ This exception should only be thrown for "recoverable" exceptions, that is, thos
 
 The framework attempts to apply some heuristics; if the underlying Isis transaction has been aborted (for example as the result of a problem persisting some data) but then the application attempts to throw this exception, the exception will be promoted to a fatal exception.
 
-.Java Sources
+== API
+
+.RecoverableException.java
 [source,java]
 ----
 class RecoverableException {
-
   RecoverableException(final String msg)
-
   RecoverableException(final TranslatableString translatableMessage, final Class<?> translationContextClass, final String translationContextMethod)
-
   RecoverableException(final Throwable cause)
-
   RecoverableException(final String msg, final Throwable cause)
-
   RecoverableException(final TranslatableString translatableMessage, final Class<?> translationContextClass, final String translationContextMethod, final Throwable cause)
-
   String getMessage()
-
   TranslatableString getTranslatableMessage()
-
   String getTranslationContext()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/TranslatableException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/TranslatableException.adoc
index 616a0e4..289f83a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/TranslatableException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/TranslatableException.adoc
@@ -1,18 +1,17 @@
-= TranslatableException : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Exceptions that provide translations should implement this interface.
 
-The _org.apache.isis.applib.services.exceprecog.ExceptionRecognizer_ will automatically detect and use the translation. In addition, the integration testing support provides a rule (ExceptionRecognizerTranslations) that will exercise any thrown exceptions, ensuring tha the message is captured in thetranslations.pofile so that it can be translated.
+The _org.apache.isis.applib.services.exceprecog.ExceptionRecognizer_ will automatically detect and use the translation. In addition, the integration testing support provides a rule ( `ExceptionRecognizerTranslations) that will exercise any thrown exceptions, ensuring tha the message is captured in the `translations.pofile so that it can be translated.
 
-.Java Sources
+== API
+
+.TranslatableException.java
 [source,java]
 ----
 interface TranslatableException {
-
-  TranslatableString getTranslatableMessage() // <.>
-
-  String getTranslationContext() // <.>
+  TranslatableString getTranslatableMessage()     // <.>
+  String getTranslationContext()     // <.>
 }
 ----
 
@@ -21,7 +20,7 @@ interface TranslatableException {
 --
 In the spirit of _Exception#getLocalizedMessage()_ , but using xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] instead.
 
-If returnsnull, then _Exception#getMessage()_ will be used as a fallback. This design allows the Isis-provided xref:system:generated:index/applib/exceptions/RecoverableException.adoc[RecoverableException] and xref:system:generated:index/applib/exceptions/UnrecoverableException.adoc[UnrecoverableException] to provide constructors that accept a xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] , but can be left as null for any existing code.
+If returns `null, then _Exception#getMessage()_ will be used as a fallback. This design allows the Isis-provided xref:system:generated:index/applib/exceptions/RecoverableException.adoc[RecoverableException] and xref:system:generated:index/applib/exceptions/UnrecoverableException.adoc[UnrecoverableException] to provide constructors that accept a xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] , but can be left as null for any existing code.
 --
 <.> `[teal]#*getTranslationContext*#()` : `String`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/UnrecoverableException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/UnrecoverableException.adoc
index d427f2f..508a0b7 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/UnrecoverableException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/UnrecoverableException.adoc
@@ -1,29 +1,22 @@
-= UnrecoverableException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that an unexpected, non-recoverable (fatal) exception has occurred within the application logic.
 
 Throwing this exception will (dependent on the viewer) result in some sort of an error page being displayed to the user.
 
-.Java Sources
+== API
+
+.UnrecoverableException.java
 [source,java]
 ----
 class UnrecoverableException {
-
   UnrecoverableException(final String msg)
-
   UnrecoverableException(final TranslatableString translatableMessage, final Class<?> translationContextClass, final String translationContextMethod)
-
   UnrecoverableException(final Throwable cause)
-
   UnrecoverableException(final String msg, final Throwable cause)
-
   UnrecoverableException(final TranslatableString translatableMessage, final Class<?> translationContextClass, final String translationContextMethod, final Throwable cause)
-
   String getMessage()
-
   TranslatableString getTranslatableMessage()
-
   String getTranslationContext()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/DomainModelException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/DomainModelException.adoc
index 96e065b..d1c84ab 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/DomainModelException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/DomainModelException.adoc
@@ -1,17 +1,15 @@
-= DomainModelException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Thrown when a problem is found with the domain model, and Isis cannot proceed.
 
-.Java Sources
+== API
+
+.DomainModelException.java
 [source,java]
 ----
 class DomainModelException {
-
   DomainModelException(final String message)
-
   DomainModelException(final Throwable cause)
-
   DomainModelException(final String message, final Throwable cause)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/MetaModelException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/MetaModelException.adoc
index ed63d06..8a5c99f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/MetaModelException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/MetaModelException.adoc
@@ -1,15 +1,13 @@
-= MetaModelException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MetaModelException.java
 [source,java]
 ----
 class MetaModelException {
-
   MetaModelException(final String message)
-
   MetaModelException(final Throwable cause)
-
   MetaModelException(final String message, final Throwable cause)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/NoAuthenticatorException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/NoAuthenticatorException.adoc
index d9df14e..1ce5a3f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/NoAuthenticatorException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/NoAuthenticatorException.adoc
@@ -1,17 +1,15 @@
-= NoAuthenticatorException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that there is no Authenticator available to authenticate a user based on this request.
 
-.Java Sources
+== API
+
+.NoAuthenticatorException.java
 [source,java]
 ----
 class NoAuthenticatorException {
-
   NoAuthenticatorException(final String msg)
-
   NoAuthenticatorException(final String msg, final Throwable cause)
-
   NoAuthenticatorException(final Throwable cause)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ObjectNotFoundException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ObjectNotFoundException.adoc
index 2370806..dccfc74 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ObjectNotFoundException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ObjectNotFoundException.adoc
@@ -1,15 +1,14 @@
-= ObjectNotFoundException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that the persistence context was unable to get an instantiate for the specified object identifier.
 
-.Java Sources
+== API
+
+.ObjectNotFoundException.java
 [source,java]
 ----
 class ObjectNotFoundException {
-
   ObjectNotFoundException(final String oid)
-
   ObjectNotFoundException(final String oid, final Throwable cause)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ObjectPersistenceException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ObjectPersistenceException.adoc
index a1440ad..42f8655 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ObjectPersistenceException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ObjectPersistenceException.adoc
@@ -1,15 +1,13 @@
-= ObjectPersistenceException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ObjectPersistenceException.java
 [source,java]
 ----
 class ObjectPersistenceException {
-
   ObjectPersistenceException(final String message)
-
   ObjectPersistenceException(final String message, final Throwable cause)
-
   ObjectPersistenceException(final Throwable cause)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/PersistFailedException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/PersistFailedException.adoc
index 72684d1..8695e9f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/PersistFailedException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/PersistFailedException.adoc
@@ -1,19 +1,17 @@
-= PersistFailedException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that the persistence of an object failed.
 
 This exception is intended to represent an unexpected and non-recoverable condition (eg a unique/primary key/ foreign key constaint has been violated), and so is a subclass of xref:system:generated:index/applib/exceptions/UnrecoverableException.adoc[UnrecoverableException] . Throwing this exception will therefore result in (some sort of) error page being displayed to the user.
 
-.Java Sources
+== API
+
+.PersistFailedException.java
 [source,java]
 ----
 class PersistFailedException {
-
   PersistFailedException(final String msg)
-
   PersistFailedException(final Throwable cause)
-
   PersistFailedException(final String msg, final Throwable cause)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ReflectiveActionException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ReflectiveActionException.adoc
index ff7f3b4..89956fa 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ReflectiveActionException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/ReflectiveActionException.adoc
@@ -1,15 +1,13 @@
-= ReflectiveActionException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ReflectiveActionException.java
 [source,java]
 ----
 class ReflectiveActionException {
-
   ReflectiveActionException(final String msg)
-
   ReflectiveActionException(final Throwable cause)
-
   ReflectiveActionException(final String msg, final Throwable cause)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/RepositoryException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/RepositoryException.adoc
index c7d396d..c4d213f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/RepositoryException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/RepositoryException.adoc
@@ -1,19 +1,17 @@
-= RepositoryException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that a repository method has failed.
 
 This exception is intended to represent an unexpected and non-recoverable condition (eg a syntax error in some JDOQL query syntax or similar), and so is a subclass of xref:system:generated:index/applib/exceptions/UnrecoverableException.adoc[UnrecoverableException] . Throwing this exception will therefore result in (some sort of) error page being displayed to the user.
 
-.Java Sources
+== API
+
+.RepositoryException.java
 [source,java]
 ----
 class RepositoryException {
-
   RepositoryException(final String msg)
-
   RepositoryException(final Throwable cause)
-
   RepositoryException(final String msg, final Throwable cause)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/UnexpectedCallException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/UnexpectedCallException.adoc
index 710b0b1..a0a3865 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/UnexpectedCallException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/UnexpectedCallException.adoc
@@ -1,13 +1,13 @@
-= UnexpectedCallException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Indicates that a call was made to a method (normally an overridden one) that was not expected, and hence not coded for.
 
-.Java Sources
+== API
+
+.UnexpectedCallException.java
 [source,java]
 ----
 class UnexpectedCallException {
-
   UnexpectedCallException()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/UnknownTypeException.adoc b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/UnknownTypeException.adoc
index 4d74df1..13b4e84 100644
--- a/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/UnknownTypeException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/exceptions/unrecoverable/UnknownTypeException.adoc
@@ -1,13 +1,12 @@
-= UnknownTypeException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.UnknownTypeException.java
 [source,java]
 ----
 class UnknownTypeException {
-
   UnknownTypeException(final String message)
-
   UnknownTypeException(final Object object)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/graph/Edge.adoc b/antora/components/system/modules/generated/pages/index/applib/graph/Edge.adoc
index d24be2c..99d5dd7 100644
--- a/antora/components/system/modules/generated/pages/index/applib/graph/Edge.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/graph/Edge.adoc
@@ -1,15 +1,14 @@
-= Edge : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Fundamental building block for graph structures.
 
-.Java Sources
+== API
+
+.Edge.java
 [source,java]
 ----
 interface Edge {
-
   Vertex<T> getFrom()
-
   Vertex<T> getTo()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/graph/SimpleEdge.adoc b/antora/components/system/modules/generated/pages/index/applib/graph/SimpleEdge.adoc
index 62edb76..cda939b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/graph/SimpleEdge.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/graph/SimpleEdge.adoc
@@ -1,15 +1,14 @@
-= SimpleEdge : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Fundamental building block for graph structures.
 
-.Java Sources
+== API
+
+.SimpleEdge.java
 [source,java]
 ----
 class SimpleEdge {
-
   Vertex<T> from;
-
   Vertex<T> to;
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/graph/Vertex.adoc b/antora/components/system/modules/generated/pages/index/applib/graph/Vertex.adoc
index 07ef4f3..86700f2 100644
--- a/antora/components/system/modules/generated/pages/index/applib/graph/Vertex.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/graph/Vertex.adoc
@@ -1,21 +1,17 @@
-= Vertex : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Fundamental building block for graph structures.
 
-.Java Sources
+== API
+
+.Vertex.java
 [source,java]
 ----
 interface Vertex {
-
   T getValue()
-
   int getIncomingCount()
-
   int getOutgoingCount()
-
   Stream<Edge<T>> streamIncoming()
-
   Stream<Edge<T>> streamOutgoing()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/graph/tree/LazyTreeNode.adoc b/antora/components/system/modules/generated/pages/index/applib/graph/tree/LazyTreeNode.adoc
index d88f4ac..568fb3c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/graph/tree/LazyTreeNode.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/graph/tree/LazyTreeNode.adoc
@@ -1,25 +1,18 @@
-= LazyTreeNode : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.LazyTreeNode.java
 [source,java]
 ----
 class LazyTreeNode {
-
   TreeNode<T> of(T value, Class<? extends TreeAdapter<T>> treeAdapterClass, TreeState sharedState)
-
   T getValue()
-
   TreeNode<T> getParentIfAny()
-
   int getChildCount()
-
   Stream<TreeNode<T>> streamChildren()
-
   Class<? extends TreeAdapter<T>> getTreeAdapterClass()
-
   TreePath getPositionAsPath()
-
   TreeState getTreeState()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeAdapter.adoc b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeAdapter.adoc
index 151c40f..a896081 100644
--- a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeAdapter.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeAdapter.adoc
@@ -1,18 +1,16 @@
-= TreeAdapter : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides the parent/child relationship information between pojos to derive a tree-structure.
 
-.Java Sources
+== API
+
+.TreeAdapter.java
 [source,java]
 ----
 interface TreeAdapter {
-
-  Optional<T> parentOf(T value) // <.>
-
-  int childCountOf(T value) // <.>
-
-  Stream<T> childrenOf(T value) // <.>
+  Optional<T> parentOf(T value)     // <.>
+  int childCountOf(T value)     // <.>
+  Stream<T> childrenOf(T value)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeNode.adoc b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeNode.adoc
index d2bddc7..2d89470 100644
--- a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeNode.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeNode.adoc
@@ -1,56 +1,35 @@
-= TreeNode : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Fundamental building block of Tree structures.
 
-.Java Sources
+== API
+
+.TreeNode.java
 [source,java]
 ----
 interface TreeNode {
-
   int getIncomingCount()
-
   int getOutgoingCount()
-
   Stream<Edge<T>> streamIncoming()
-
   Stream<Edge<T>> streamOutgoing()
-
   TreeNode<T> getParentIfAny()
-
   int getChildCount()
-
   Stream<TreeNode<T>> streamChildren()
-
   boolean isRoot()
-
   boolean isLeaf()
-
   TreePath getPositionAsPath()
-
-  TreeState getTreeState() // <.>
-
+  TreeState getTreeState()     // <.>
   boolean isExpanded(TreePath treePath)
-
-  void expand(TreePath... treePaths) // <.>
-
-  void collapse(TreePath... treePaths) // <.>
-
-  TreeNode<T> lazy(T node, Class<? extends TreeAdapter<T>> treeAdapterClass) // <.>
-
+  void expand(TreePath... treePaths)     // <.>
+  void collapse(TreePath... treePaths)     // <.>
+  TreeNode<T> lazy(T node, Class<? extends TreeAdapter<T>> treeAdapterClass)     // <.>
   Iterator<TreeNode<T>> iteratorHierarchyUp()
-
   Stream<TreeNode<T>> streamHierarchyUp()
-
   Iterator<TreeNode<T>> iteratorDepthFirst()
-
   Iterator<TreeNode<T>> iteratorBreadthFirst()
-
   Stream<TreeNode<T>> streamDepthFirst()
-
   Stream<TreeNode<T>> streamBreadthFirst()
-
-  Class<? extends TreeAdapter<T>> getTreeAdapterClass() // <.>
+  Class<? extends TreeAdapter<T>> getTreeAdapterClass()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreePath.adoc b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreePath.adoc
index bcc3163..515a13d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreePath.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreePath.adoc
@@ -1,4 +1,3 @@
-= TreePath : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides an unambiguous way to address nodes by position within a tree-structure. Examples:
@@ -7,19 +6,16 @@ Provides an unambiguous way to address nodes by position within a tree-structure
 * /0/1 ... the second child of root
 * /0/0/0 ... the first child of first child of root
 
-.Java Sources
+== API
+
+.TreePath.java
 [source,java]
 ----
 interface TreePath {
-
-  TreePath append(int indexWithinSiblings) // <.>
-
-  TreePath getParentIfAny() // <.>
-
+  TreePath append(int indexWithinSiblings)     // <.>
+  TreePath getParentIfAny()     // <.>
   boolean isRoot()
-
   TreePath of(final int... canonicalPath)
-
   TreePath root()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeState.adoc b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeState.adoc
index c341859..f07c278 100644
--- a/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeState.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/graph/tree/TreeState.adoc
@@ -1,13 +1,12 @@
-= TreeState : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.TreeState.java
 [source,java]
 ----
 interface TreeState {
-
   TreeState rootCollapsed()
-
   Set<TreePath> getExpandedNodePaths()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/jaxb/DataTypeFactory.adoc b/antora/components/system/modules/generated/pages/index/applib/jaxb/DataTypeFactory.adoc
index 397b841..dd623ba 100644
--- a/antora/components/system/modules/generated/pages/index/applib/jaxb/DataTypeFactory.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/jaxb/DataTypeFactory.adoc
@@ -1,11 +1,11 @@
-= DataTypeFactory : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.DataTypeFactory.java
 [source,java]
 ----
 class DataTypeFactory {
-
   XMLGregorianCalendar withTypeFactoryDo(Function<DatatypeFactory, XMLGregorianCalendar> factory)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaSqlJaxbAdapters.adoc b/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaSqlJaxbAdapters.adoc
index 2462526..f95321e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaSqlJaxbAdapters.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaSqlJaxbAdapters.adoc
@@ -1,4 +1,3 @@
-= JavaSqlJaxbAdapters : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides JAXB XmlAdapters for java sql temporal types.
@@ -11,7 +10,9 @@ Example:
 @Getter @Setter private java.sql.Date date;
 ----
 
-.Java Sources
+== API
+
+.JavaSqlJaxbAdapters.java
 [source,java]
 ----
 class JavaSqlJaxbAdapters {
diff --git a/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaSqlXMLGregorianCalendarMarshalling.adoc b/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaSqlXMLGregorianCalendarMarshalling.adoc
index d72a8d4..29dc7f1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaSqlXMLGregorianCalendarMarshalling.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaSqlXMLGregorianCalendarMarshalling.adoc
@@ -1,15 +1,13 @@
-= JavaSqlXMLGregorianCalendarMarshalling : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.JavaSqlXMLGregorianCalendarMarshalling.java
 [source,java]
 ----
 class JavaSqlXMLGregorianCalendarMarshalling {
-
   static DatatypeFactory datatypeFactory;
-
   Timestamp toTimestamp(final XMLGregorianCalendar calendar)
-
   XMLGregorianCalendar toXMLGregorianCalendar(final Timestamp timestamp)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaTimeJaxbAdapters.adoc b/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaTimeJaxbAdapters.adoc
index d8bc925..b22cba7 100644
--- a/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaTimeJaxbAdapters.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaTimeJaxbAdapters.adoc
@@ -1,4 +1,3 @@
-= JavaTimeJaxbAdapters : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides JAXB XmlAdapters for Java time temporal types.
@@ -11,7 +10,9 @@ Example:
 @Getter @Setter private java.time.LocalDate localDate;
 ----
 
-.Java Sources
+== API
+
+.JavaTimeJaxbAdapters.java
 [source,java]
 ----
 class JavaTimeJaxbAdapters {
diff --git a/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaTimeXMLGregorianCalendarMarshalling.adoc b/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaTimeXMLGregorianCalendarMarshalling.adoc
index 9bd8487..a6c7b95 100644
--- a/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaTimeXMLGregorianCalendarMarshalling.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaTimeXMLGregorianCalendarMarshalling.adoc
@@ -1,33 +1,22 @@
-= JavaTimeXMLGregorianCalendarMarshalling : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.JavaTimeXMLGregorianCalendarMarshalling.java
 [source,java]
 ----
 class JavaTimeXMLGregorianCalendarMarshalling {
-
   LocalDate toLocalDate(XMLGregorianCalendar cal)
-
   LocalTime toLocalTime(XMLGregorianCalendar cal)
-
   LocalDateTime toLocalDateTime(XMLGregorianCalendar cal)
-
   OffsetDateTime toOffsetDateTime(XMLGregorianCalendar cal)
-
   OffsetTime toOffsetTime(XMLGregorianCalendar cal)
-
   ZonedDateTime toZonedDateTime(XMLGregorianCalendar cal)
-
   XMLGregorianCalendar toXMLGregorianCalendar2(LocalDate localDate)
-
   XMLGregorianCalendar toXMLGregorianCalendar2(LocalTime localTime)
-
   XMLGregorianCalendar toXMLGregorianCalendar2(LocalDateTime localDateTime)
-
   XMLGregorianCalendar toXMLGregorianCalendar2(OffsetTime offsetTime)
-
   XMLGregorianCalendar toXMLGregorianCalendar2(OffsetDateTime offsetDateTime)
-
   XMLGregorianCalendar toXMLGregorianCalendar2(ZonedDateTime zonedDateTime)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaUtilJaxbAdapters.adoc b/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaUtilJaxbAdapters.adoc
index 69953f2..14fa60b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaUtilJaxbAdapters.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/jaxb/JavaUtilJaxbAdapters.adoc
@@ -1,4 +1,3 @@
-= JavaUtilJaxbAdapters : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides JAXB XmlAdapters for Java util temporal types.
@@ -11,7 +10,9 @@ Example:
 @Getter @Setter private java.utilDate javaLocalDate;
 ----
 
-.Java Sources
+== API
+
+.JavaUtilJaxbAdapters.java
 [source,java]
 ----
 class JavaUtilJaxbAdapters {
diff --git a/antora/components/system/modules/generated/pages/index/applib/jaxb/JodaTimeJaxbAdapters.adoc b/antora/components/system/modules/generated/pages/index/applib/jaxb/JodaTimeJaxbAdapters.adoc
index e4214a2..0f35777 100644
--- a/antora/components/system/modules/generated/pages/index/applib/jaxb/JodaTimeJaxbAdapters.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/jaxb/JodaTimeJaxbAdapters.adoc
@@ -1,7 +1,8 @@
-= JodaTimeJaxbAdapters : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.JodaTimeJaxbAdapters.java
 [source,java]
 ----
 class JodaTimeJaxbAdapters {
diff --git a/antora/components/system/modules/generated/pages/index/applib/jaxb/JodaTimeXMLGregorianCalendarMarshalling.adoc b/antora/components/system/modules/generated/pages/index/applib/jaxb/JodaTimeXMLGregorianCalendarMarshalling.adoc
index 5b57426..fe044bb 100644
--- a/antora/components/system/modules/generated/pages/index/applib/jaxb/JodaTimeXMLGregorianCalendarMarshalling.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/jaxb/JodaTimeXMLGregorianCalendarMarshalling.adoc
@@ -1,25 +1,18 @@
-= JodaTimeXMLGregorianCalendarMarshalling : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.JodaTimeXMLGregorianCalendarMarshalling.java
 [source,java]
 ----
 class JodaTimeXMLGregorianCalendarMarshalling {
-
   DateTime toDateTime(final XMLGregorianCalendar xgc)
-
   LocalDate toLocalDate(final XMLGregorianCalendar xgc)
-
   LocalDateTime toLocalDateTime(final XMLGregorianCalendar xgc)
-
   LocalTime toLocalTime(final XMLGregorianCalendar xgc)
-
   XMLGregorianCalendar toXMLGregorianCalendar(DateTime dateTime)
-
   XMLGregorianCalendar toXMLGregorianCalendar(final LocalDateTime localDateTime)
-
   XMLGregorianCalendar toXMLGregorianCalendar(final LocalDate localDate)
-
   XMLGregorianCalendar toXMLGregorianCalendar(final LocalTime localTime)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/jaxb/PersistentEntitiesAdapter.adoc b/antora/components/system/modules/generated/pages/index/applib/jaxb/PersistentEntitiesAdapter.adoc
index 1d51290..b53c3ae 100644
--- a/antora/components/system/modules/generated/pages/index/applib/jaxb/PersistentEntitiesAdapter.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/jaxb/PersistentEntitiesAdapter.adoc
@@ -1,13 +1,12 @@
-= PersistentEntitiesAdapter : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.PersistentEntitiesAdapter.java
 [source,java]
 ----
 class PersistentEntitiesAdapter {
-
   List<Object> unmarshal(final OidsDto oidsDto)
-
   OidsDto marshal(final List<Object> domainObjects)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/jaxb/PersistentEntityAdapter.adoc b/antora/components/system/modules/generated/pages/index/applib/jaxb/PersistentEntityAdapter.adoc
index f429e5e..0451289 100644
--- a/antora/components/system/modules/generated/pages/index/applib/jaxb/PersistentEntityAdapter.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/jaxb/PersistentEntityAdapter.adoc
@@ -1,13 +1,12 @@
-= PersistentEntityAdapter : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.PersistentEntityAdapter.java
 [source,java]
 ----
 class PersistentEntityAdapter {
-
   Object unmarshal(final OidDto oidDto)
-
   OidDto marshal(final Object domainObject)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/jaxb/PrimitiveJaxbAdapters.adoc b/antora/components/system/modules/generated/pages/index/applib/jaxb/PrimitiveJaxbAdapters.adoc
index 6f1f079..6134945 100644
--- a/antora/components/system/modules/generated/pages/index/applib/jaxb/PrimitiveJaxbAdapters.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/jaxb/PrimitiveJaxbAdapters.adoc
@@ -1,7 +1,8 @@
-= PrimitiveJaxbAdapters : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.PrimitiveJaxbAdapters.java
 [source,java]
 ----
 class PrimitiveJaxbAdapters {
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutData.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutData.adoc
index f4b90b6..f66c91a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutData.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutData.adoc
@@ -1,77 +1,45 @@
-= ActionLayoutData : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Describes the layout of a single action, broadly corresponding to _org.apache.isis.applib.annotation.ActionLayout_ .
 
-.Java Sources
+== API
+
+.ActionLayoutData.java
 [source,java]
 ----
 class ActionLayoutData {
-
   ActionLayoutData()
-
   ActionLayoutData(final String id)
-
-  String getId() // <.>
-
+  String getId()     // <.>
   void setId(String id)
-
   BookmarkPolicy getBookmarking()
-
   void setBookmarking(BookmarkPolicy bookmarking)
-
   String getCssClass()
-
   void setCssClass(String cssClass)
-
   String getCssClassFa()
-
   void setCssClassFa(String cssClassFa)
-
   CssClassFaPosition getCssClassFaPosition()
-
   void setCssClassFaPosition(CssClassFaPosition cssClassFaPosition)
-
   String getDescribedAs()
-
   void setDescribedAs(String describedAs)
-
   Where getHidden()
-
   void setHidden(Where hidden)
-
   String getNamed()
-
   void setNamed(String named)
-
   Boolean getNamedEscaped()
-
   void setNamedEscaped(Boolean namedEscaped)
-
   org.apache.isis.applib.annotation.ActionLayout.Position getPosition()
-
   void setPosition(org.apache.isis.applib.annotation.ActionLayout.Position position)
-
   PromptStyle getPromptStyle()
-
   void setPromptStyle(PromptStyle promptStyle)
-
   Redirect getRedirect()
-
   void setRedirect(Redirect redirect)
-
-  ActionLayoutDataOwner getOwner() // <.>
-
+  ActionLayoutDataOwner getOwner()     // <.>
   void setOwner(final ActionLayoutDataOwner owner)
-
-  String getMetadataError() // <.>
-
+  String getMetadataError()     // <.>
   void setMetadataError(final String metadataError)
-
-  Link getLink() // <.>
-
+  Link getLink()     // <.>
   void setLink(final Link link)
-
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutDataOwner.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutDataOwner.adoc
index 26db570..b46fdda 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutDataOwner.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/ActionLayoutDataOwner.adoc
@@ -1,13 +1,12 @@
-= ActionLayoutDataOwner : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ActionLayoutDataOwner.java
 [source,java]
 ----
 interface ActionLayoutDataOwner {
-
   List<ActionLayoutData> getActions()
-
   void setActions(List<ActionLayoutData> actions)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutData.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutData.adoc
index 6dbffe4..afd3ebe 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutData.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutData.adoc
@@ -1,69 +1,41 @@
-= CollectionLayoutData : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Describes the layout of a single collection, broadly corresponds to the _org.apache.isis.applib.annotation.CollectionLayout_ annotation.
 
-.Java Sources
+== API
+
+.CollectionLayoutData.java
 [source,java]
 ----
 class CollectionLayoutData {
-
   CollectionLayoutData()
-
   CollectionLayoutData(final String id)
-
-  String getId() // <.>
-
+  String getId()     // <.>
   void setId(String id)
-
   String getCssClass()
-
   void setCssClass(String cssClass)
-
   String getDescribedAs()
-
   void setDescribedAs(String describedAs)
-
-  String getDefaultView() // <.>
-
+  String getDefaultView()     // <.>
   void setDefaultView(String defaultView)
-
   Where getHidden()
-
   void setHidden(Where hidden)
-
   String getNamed()
-
   void setNamed(String named)
-
   Boolean getNamedEscaped()
-
   void setNamedEscaped(Boolean namedEscaped)
-
   Integer getPaged()
-
   void setPaged(Integer paged)
-
   String getSortedBy()
-
   void setSortedBy(String sortedBy)
-
   List<ActionLayoutData> getActions()
-
   void setActions(List<ActionLayoutData> actionLayoutDatas)
-
-  CollectionLayoutDataOwner getOwner() // <.>
-
+  CollectionLayoutDataOwner getOwner()     // <.>
   void setOwner(final CollectionLayoutDataOwner owner)
-
-  String getMetadataError() // <.>
-
+  String getMetadataError()     // <.>
   void setMetadataError(final String metadataError)
-
-  Link getLink() // <.>
-
+  Link getLink()     // <.>
   void setLink(final Link link)
-
   String toString()
 }
 ----
@@ -76,7 +48,7 @@ Collection identifier, being the getter method without "get" prefix, first lette
 <.> `[teal]#*getDefaultView*#()` : `String`
 +
 --
-Typicallytableorhidden, but could be any other named view that is configured and appropriate, eggmap3orfullcalendar2.
+Typically `tableor `hidden, but could be any other named view that is configured and appropriate, eg `gmap3or `fullcalendar2.
 --
 <.> `[teal]#*getOwner*#()` : `xref:system:generated:index/applib/layout/component/CollectionLayoutDataOwner.adoc[CollectionLayoutDataOwner]`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutDataOwner.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutDataOwner.adoc
index 4a48090..2529e9e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutDataOwner.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/CollectionLayoutDataOwner.adoc
@@ -1,11 +1,11 @@
-= CollectionLayoutDataOwner : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.CollectionLayoutDataOwner.java
 [source,java]
 ----
 interface CollectionLayoutDataOwner {
-
   List<CollectionLayoutData> getCollections()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/CssClassFaPosition.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/CssClassFaPosition.adoc
index a6be340..34b72f9 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/CssClassFaPosition.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/CssClassFaPosition.adoc
@@ -1,15 +1,13 @@
-= CssClassFaPosition : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.CssClassFaPosition.java
 [source,java]
 ----
 enum CssClassFaPosition {
-
   LEFT
-
   RIGHT
-
   boolean isLeftOrUnspecified(final CssClassFaPosition posistion)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutData.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutData.adoc
index 65628ca..84eff9a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutData.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutData.adoc
@@ -1,57 +1,35 @@
-= DomainObjectLayoutData : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Describes the layout of the title and icon of a domain object, broadly corresponding to _org.apache.isis.applib.annotation.DomainObjectLayout_ .
 
-.Java Sources
+== API
+
+.DomainObjectLayoutData.java
 [source,java]
 ----
 class DomainObjectLayoutData {
-
   DomainObjectLayoutData()
-
   BookmarkPolicy getBookmarking()
-
   void setBookmarking(BookmarkPolicy bookmarking)
-
   String getCssClass()
-
   void setCssClass(String cssClass)
-
   String getCssClassFa()
-
   void setCssClassFa(String cssClassFa)
-
   CssClassFaPosition getCssClassFaPosition()
-
   void setCssClassFaPosition(CssClassFaPosition cssClassFaPosition)
-
   String getDescribedAs()
-
   void setDescribedAs(String describedAs)
-
   String getNamed()
-
   void setNamed(String named)
-
   Boolean getNamedEscaped()
-
   void setNamedEscaped(Boolean namedEscaped)
-
   String getPlural()
-
   void setPlural(String plural)
-
-  String getMetadataError() // <.>
-
+  String getMetadataError()     // <.>
   void setMetadataError(final String metadataError)
-
-  DomainObjectLayoutDataOwner getOwner() // <.>
-
+  DomainObjectLayoutDataOwner getOwner()     // <.>
   void setOwner(final DomainObjectLayoutDataOwner owner)
-
-  Link getLink() // <.>
-
+  Link getLink()     // <.>
   void setLink(final Link link)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutDataOwner.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutDataOwner.adoc
index 8100efc..1bce3c5 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutDataOwner.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/DomainObjectLayoutDataOwner.adoc
@@ -1,13 +1,12 @@
-= DomainObjectLayoutDataOwner : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.DomainObjectLayoutDataOwner.java
 [source,java]
 ----
 interface DomainObjectLayoutDataOwner {
-
   DomainObjectLayoutData getDomainObject()
-
   void setDomainObject(DomainObjectLayoutData domainObjectLayoutData)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSet.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSet.adoc
index d9d208e..3a0b454 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSet.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSet.adoc
@@ -1,49 +1,31 @@
-= FieldSet : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 A xref:system:generated:index/applib/layout/component/MemberRegion.adoc[MemberRegion] of the page containing a set of related xref:system:generated:index/applib/layout/component/PropertyLayoutData.adoc[PropertyLayoutData] and associated xref:system:generated:index/applib/layout/component/ActionLayoutData.adoc[ActionLayoutData] .
 
-.Java Sources
+== API
+
+.FieldSet.java
 [source,java]
 ----
 class FieldSet {
-
   FieldSet()
-
   FieldSet(final String name)
-
-  String getId() // <.>
-
+  String getId()     // <.>
   void setId(final String id)
-
-  Boolean isUnreferencedActions() // <.>
-
+  Boolean isUnreferencedActions()     // <.>
   void setUnreferencedActions(final Boolean unreferencedActions)
-
-  Boolean isUnreferencedProperties() // <.>
-
+  Boolean isUnreferencedProperties()     // <.>
   void setUnreferencedProperties(final Boolean unreferencedProperties)
-
-  String getName() // <.>
-
+  String getName()     // <.>
   void setName(String name)
-
   List<ActionLayoutData> getActions()
-
   void setActions(List<ActionLayoutData> actionLayoutDatas)
-
   List<PropertyLayoutData> getProperties()
-
   void setProperties(List<PropertyLayoutData> properties)
-
-  FieldSetOwner getOwner() // <.>
-
+  FieldSetOwner getOwner()     // <.>
   void setOwner(final FieldSetOwner owner)
-
-  String getMetadataError() // <.>
-
+  String getMetadataError()     // <.>
   void setMetadataError(final String metadataError)
-
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSetOwner.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSetOwner.adoc
index d831081..f677382 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSetOwner.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/FieldSetOwner.adoc
@@ -1,11 +1,11 @@
-= FieldSetOwner : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.FieldSetOwner.java
 [source,java]
 ----
 interface FieldSetOwner {
-
   List<FieldSet> getFieldSets()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasBookmarking.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasBookmarking.adoc
index 0f4ee75..7c212dc 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasBookmarking.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasBookmarking.adoc
@@ -1,13 +1,12 @@
-= HasBookmarking : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.HasBookmarking.java
 [source,java]
 ----
 interface HasBookmarking {
-
   BookmarkPolicy getBookmarking()
-
   void setBookmarking(BookmarkPolicy bookmarking)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasCssClass.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasCssClass.adoc
index a8c92d5..f4ebdb6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasCssClass.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasCssClass.adoc
@@ -1,13 +1,12 @@
-= HasCssClass : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.HasCssClass.java
 [source,java]
 ----
 interface HasCssClass {
-
   String getCssClass()
-
   void setCssClass(String cssClass)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasCssClassFa.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasCssClassFa.adoc
index 9c85bd4..ad68ae0 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasCssClassFa.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasCssClassFa.adoc
@@ -1,17 +1,14 @@
-= HasCssClassFa : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.HasCssClassFa.java
 [source,java]
 ----
 interface HasCssClassFa {
-
   String getCssClassFa()
-
   void setCssClassFa(String cssClassFa)
-
   CssClassFaPosition getCssClassFaPosition()
-
   void setCssClassFaPosition(CssClassFaPosition cssClassFaPosition)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasDescribedAs.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasDescribedAs.adoc
index 57053a4..c39fb10 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasDescribedAs.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasDescribedAs.adoc
@@ -1,13 +1,12 @@
-= HasDescribedAs : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.HasDescribedAs.java
 [source,java]
 ----
 interface HasDescribedAs {
-
   String getDescribedAs()
-
   void setDescribedAs(String describedAs)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasHidden.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasHidden.adoc
index 4e38d68..503909e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasHidden.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasHidden.adoc
@@ -1,13 +1,12 @@
-= HasHidden : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.HasHidden.java
 [source,java]
 ----
 interface HasHidden {
-
   Where getHidden()
-
   void setHidden(Where hidden)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasNamed.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasNamed.adoc
index 6cdadfe..b36f26a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/HasNamed.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/HasNamed.adoc
@@ -1,17 +1,14 @@
-= HasNamed : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.HasNamed.java
 [source,java]
 ----
 interface HasNamed {
-
   String getNamed()
-
   void setNamed(String named)
-
   Boolean getNamedEscaped()
-
   void setNamedEscaped(Boolean namedEscaped)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegion.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegion.adoc
index 75579ea..c3930e6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegion.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegion.adoc
@@ -1,11 +1,12 @@
-= MemberRegion : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Represents an area on the page containing one or several related members.
 
-Implementations include aFieldSet(containing a number of properties and their actions), and aCollectionLayoutData(containing a single collection and associated actions)
+Implementations include a `FieldSet(containing a number of properties and their actions), and a `CollectionLayoutData(containing a single collection and associated actions)
 
-.Java Sources
+== API
+
+.MemberRegion.java
 [source,java]
 ----
 interface MemberRegion {
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegionOwner.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegionOwner.adoc
index 5b67df8..b8cf002 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegionOwner.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/MemberRegionOwner.adoc
@@ -1,7 +1,8 @@
-= MemberRegionOwner : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MemberRegionOwner.java
 [source,java]
 ----
 interface MemberRegionOwner {
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/Owned.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/Owned.adoc
index e876c60..494acba 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/Owned.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/Owned.adoc
@@ -1,11 +1,11 @@
-= Owned : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Owned.java
 [source,java]
 ----
 interface Owned {
-
   T getOwner()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/Owner.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/Owner.adoc
index 57ac280..91532d1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/Owner.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/Owner.adoc
@@ -1,7 +1,8 @@
-= Owner : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Owner.java
 [source,java]
 ----
 interface Owner {
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/PropertyLayoutData.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/PropertyLayoutData.adoc
index 9430fd1..dee05a9 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/PropertyLayoutData.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/PropertyLayoutData.adoc
@@ -1,81 +1,47 @@
-= PropertyLayoutData : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Describes the layout of a single property, broadly corresponds to the _org.apache.isis.applib.annotation.PropertyLayout_ annotation.
 
-.Java Sources
+== API
+
+.PropertyLayoutData.java
 [source,java]
 ----
 class PropertyLayoutData {
-
   PropertyLayoutData()
-
   PropertyLayoutData(final String id)
-
-  String getId() // <.>
-
+  String getId()     // <.>
   void setId(String id)
-
   String getCssClass()
-
   void setCssClass(String cssClass)
-
   String getDescribedAs()
-
   void setDescribedAs(String describedAs)
-
   Where getHidden()
-
   void setHidden(Where hidden)
-
   LabelPosition getLabelPosition()
-
   void setLabelPosition(LabelPosition labelPosition)
-
   Integer getMultiLine()
-
   void setMultiLine(Integer multiLine)
-
   String getNamed()
-
   void setNamed(String named)
-
   Boolean getNamedEscaped()
-
   void setNamedEscaped(Boolean namedEscaped)
-
   PromptStyle getPromptStyle()
-
   void setPromptStyle(PromptStyle promptStyle)
-
   RenderDay getRenderDay()
-
   void setRenderDay(final RenderDay renderDay)
-
   Integer getTypicalLength()
-
   void setTypicalLength(Integer typicalLength)
-
   Repainting getRepainting()
-
   void setRepainting(final Repainting repainting)
-
   List<ActionLayoutData> getActions()
-
   void setActions(List<ActionLayoutData> actionLayoutDatas)
-
-  FieldSet getOwner() // <.>
-
+  FieldSet getOwner()     // <.>
   void setOwner(final FieldSet owner)
-
-  String getMetadataError() // <.>
-
+  String getMetadataError()     // <.>
   void setMetadataError(final String metadataError)
-
-  Link getLink() // <.>
-
+  Link getLink()     // <.>
   void setLink(final Link link)
-
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutData.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutData.adoc
index b40bd8f..d9298dd 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutData.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutData.adoc
@@ -1,63 +1,38 @@
-= ServiceActionLayoutData : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Describes the layout of a single action, broadly corresponding to _org.apache.isis.applib.annotation.ActionLayout_ .
 
-.Java Sources
+== API
+
+.ServiceActionLayoutData.java
 [source,java]
 ----
 class ServiceActionLayoutData {
-
   ServiceActionLayoutData()
-
   ServiceActionLayoutData(final String objectType, final String id)
-
   String getObjectType()
-
   void setObjectType(final String objectType)
-
-  String getId() // <.>
-
+  String getId()     // <.>
   void setId(String id)
-
   BookmarkPolicy getBookmarking()
-
   void setBookmarking(BookmarkPolicy bookmarking)
-
   String getCssClass()
-
   void setCssClass(String cssClass)
-
   String getCssClassFa()
-
   void setCssClassFa(String cssClassFa)
-
   String getDescribedAs()
-
   void setDescribedAs(String describedAs)
-
   String getNamed()
-
   void setNamed(String named)
-
   Boolean getNamedEscaped()
-
   void setNamedEscaped(Boolean namedEscaped)
-
-  ServiceActionLayoutDataOwner getOwner() // <.>
-
+  ServiceActionLayoutDataOwner getOwner()     // <.>
   void setOwner(final ServiceActionLayoutDataOwner owner)
-
-  String getMetadataError() // <.>
-
+  String getMetadataError()     // <.>
   void setMetadataError(final String metadataError)
-
-  Link getLink() // <.>
-
+  Link getLink()     // <.>
   void setLink(final Link link)
-
   String getObjectTypeAndId()
-
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutDataOwner.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutDataOwner.adoc
index 7861793..d1ea46d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutDataOwner.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/component/ServiceActionLayoutDataOwner.adoc
@@ -1,13 +1,12 @@
-= ServiceActionLayoutDataOwner : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ServiceActionLayoutDataOwner.java
 [source,java]
 ----
 interface ServiceActionLayoutDataOwner {
-
   List<ServiceActionLayoutData> getServiceActions()
-
   void setServiceActions(List<ServiceActionLayoutData> actions)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/Grid.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/Grid.adoc
index bc48d11..60f6cad 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/Grid.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/Grid.adoc
@@ -1,33 +1,24 @@
-= Grid : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 All top-level page layout classes should implement this interface.
 
 It is used by the xref:system:generated:index/applib/services/layout/LayoutService.adoc[LayoutService] as a common based type for any layouts read in from XML.
 
-.Java Sources
+== API
+
+.Grid.java
 [source,java]
 ----
 interface Grid {
-
   Class<?> getDomainClass()
-
   void setDomainClass(final Class<?> domainClass)
-
   String getTnsAndSchemaLocation()
-
   void setTnsAndSchemaLocation(final String tnsAndSchemaLocation)
-
   boolean isNormalized()
-
   void setNormalized(final boolean normalized)
-
   LinkedHashMap<String, PropertyLayoutData> getAllPropertiesById()
-
   LinkedHashMap<String, CollectionLayoutData> getAllCollectionsById()
-
   LinkedHashMap<String, ActionLayoutData> getAllActionsById()
-
   void visit(final Grid.Visitor visitor)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/GridAbstract.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/GridAbstract.adoc
index a05459d..fb48472 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/GridAbstract.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/GridAbstract.adoc
@@ -1,33 +1,24 @@
-= GridAbstract : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 All top-level page layout classes should implement this interface.
 
 It is used by the xref:system:generated:index/applib/services/layout/LayoutService.adoc[LayoutService] as a common based type for any layouts read in from XML.
 
-.Java Sources
+== API
+
+.GridAbstract.java
 [source,java]
 ----
 class GridAbstract {
-
   Class<?> getDomainClass()
-
   void setDomainClass(final Class<?> domainClass)
-
   String getTnsAndSchemaLocation()
-
   void setTnsAndSchemaLocation(final String tnsAndSchemaLocation)
-
   boolean isNormalized()
-
   void setNormalized(final boolean normalized)
-
   LinkedHashMap<String, PropertyLayoutData> getAllPropertiesById()
-
   LinkedHashMap<String, CollectionLayoutData> getAllCollectionsById()
-
   LinkedHashMap<String, ActionLayoutData> getAllActionsById()
-
   LinkedHashMap<String, FieldSet> getAllFieldSetsByName()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFix.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFix.adoc
index 4f54214..242d5da 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFix.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFix.adoc
@@ -1,7 +1,8 @@
-= BS3ClearFix : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.BS3ClearFix.java
 [source,java]
 ----
 class BS3ClearFix {
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFixHidden.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFixHidden.adoc
index 025aefe..a795d63 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFixHidden.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFixHidden.adoc
@@ -1,15 +1,15 @@
-= BS3ClearFixHidden : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 One of theResponsive utility classes.
 
 It is rendered as a (eg) <div class="clearfix hidden-xs ...">
 
-.Java Sources
+== API
+
+.BS3ClearFixHidden.java
 [source,java]
 ----
 class BS3ClearFixHidden {
-
   String toCssClass()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFixVisible.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFixVisible.adoc
index ae99ae6..018cc20 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFixVisible.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ClearFixVisible.adoc
@@ -1,19 +1,17 @@
-= BS3ClearFixVisible : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 One of theResponsive utility classes.
 
 It is rendered as a (eg) <div class="clearfix visible-xs-block ...">
 
-.Java Sources
+== API
+
+.BS3ClearFixVisible.java
 [source,java]
 ----
 class BS3ClearFixVisible {
-
   CssDisplay getCssDisplay()
-
   void setCssDisplay(final CssDisplay cssDisplay)
-
   String toCssClass()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Col.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Col.adoc
index e63d09b..84b9794 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Col.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Col.adoc
@@ -1,4 +1,3 @@
-= BS3Col : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 A column within a row which, depending on its _#getSpan()_ , could be as narrow as 1/12th of the page's width, all the way up to spanning the entire page.
@@ -7,61 +6,37 @@ Pretty much other content can be contained within a column, though most commonly
 
 It is rendered as a (eg) <div class="col-md-4 ...">
 
-.Java Sources
+== API
+
+.BS3Col.java
 [source,java]
 ----
 class BS3Col {
-
-  String getId() // <.>
-
+  String getId()     // <.>
   void setId(final String id)
-
   int getSpan()
-
   void setSpan(final int span)
-
-  Boolean isUnreferencedActions() // <.>
-
+  Boolean isUnreferencedActions()     // <.>
   void setUnreferencedActions(final Boolean unreferencedActions)
-
-  Boolean isUnreferencedCollections() // <.>
-
+  Boolean isUnreferencedCollections()     // <.>
   void setUnreferencedCollections(final Boolean unreferencedCollections)
-
-  DomainObjectLayoutData getDomainObject() // <.>
-
+  DomainObjectLayoutData getDomainObject()     // <.>
   void setDomainObject(final DomainObjectLayoutData domainObjectLayoutData)
-
   List<SizeSpan> getSizeSpans()
-
   void setSizeSpans(final List<SizeSpan> sizeSpans)
-
   List<ActionLayoutData> getActions()
-
   void setActions(final List<ActionLayoutData> actions)
-
   List<BS3Row> getRows()
-
   void setRows(final List<BS3Row> rows)
-
   List<BS3TabGroup> getTabGroups()
-
   void setTabGroups(final List<BS3TabGroup> tabGroups)
-
   List<FieldSet> getFieldSets()
-
   void setFieldSets(final List<FieldSet> fieldSets)
-
   List<CollectionLayoutData> getCollections()
-
   void setCollections(final List<CollectionLayoutData> collections)
-
-  String getMetadataError() // <.>
-
+  String getMetadataError()     // <.>
   void setMetadataError(final String metadataError)
-
   String toCssClass()
-
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Element.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Element.adoc
index b585b68..c0e308f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Element.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Element.adoc
@@ -1,13 +1,12 @@
-= BS3Element : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.BS3Element.java
 [source,java]
 ----
 interface BS3Element {
-
-  String getCssClass() // <.>
-
+  String getCssClass()     // <.>
   void setCssClass(final String cssClass)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ElementAbstract.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ElementAbstract.adoc
index ca5302a..fde5656 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ElementAbstract.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3ElementAbstract.adoc
@@ -1,15 +1,14 @@
-= BS3ElementAbstract : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Superclass for all layout classes, factoring out the common _#getCssClass()_ attribute.
 
-.Java Sources
+== API
+
+.BS3ElementAbstract.java
 [source,java]
 ----
 class BS3ElementAbstract {
-
-  String getCssClass() // <.>
-
+  String getCssClass()     // <.>
   void setCssClass(final String cssClass)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Grid.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Grid.adoc
index 30188f3..0fd4818 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Grid.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Grid.adoc
@@ -1,33 +1,24 @@
-= BS3Grid : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 This is the top-level for rendering the domain object's properties, collections and actions. It simply consists of a number of rows.
 
 The element is rendered as a <div class="...">
 
-.Java Sources
+== API
+
+.BS3Grid.java
 [source,java]
 ----
 class BS3Grid {
-
   String getCssClass()
-
   void setCssClass(final String cssClass)
-
   List<BS3Row> getRows()
-
   void setRows(final List<BS3Row> rows)
-
-  List<String> getMetadataErrors() // <.>
-
+  List<String> getMetadataErrors()     // <.>
   void setMetadataErrors(final List<String> metadataErrors)
-
   void visit(final Grid.Visitor visitor)
-
   LinkedHashMap<String, BS3Tab> getAllTabsByName()
-
   LinkedHashMap<String, HasCssId> getAllCssId()
-
   BS3Grid getGrid()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Row.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Row.adoc
index 10bb685..48adf61 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Row.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Row.adoc
@@ -1,33 +1,24 @@
-= BS3Row : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Contains a row of content, either on the top-level xref:system:generated:index/applib/layout/grid/bootstrap3/BS3Grid.adoc[BS3Grid] or at any other lower-level element that can contain rows, eg xref:system:generated:index/applib/layout/grid/bootstrap3/BS3Tab.adoc[BS3Tab] .
 
 It is rendered as a <div class="row ...">
 
-.Java Sources
+== API
+
+.BS3Row.java
 [source,java]
 ----
 class BS3Row {
-
-  String getId() // <.>
-
+  String getId()     // <.>
   void setId(final String id)
-
   List<BS3RowContent> getCols()
-
   void setCols(final List<BS3RowContent> cols)
-
-  String getMetadataError() // <.>
-
+  String getMetadataError()     // <.>
   void setMetadataError(final String metadataError)
-
-  BS3RowOwner getOwner() // <.>
-
+  BS3RowOwner getOwner()     // <.>
   void setOwner(final BS3RowOwner owner)
-
   BS3Grid getGrid()
-
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContent.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContent.adoc
index 2c01dbc..6b55d14 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContent.adoc
@@ -1,23 +1,19 @@
-= BS3RowContent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Common superclass for any content of a row.
 
 Most commonly the content of a row is xref:system:generated:index/applib/layout/grid/bootstrap3/BS3Col.adoc[BS3Col] umns, but it may be either of the xref:system:generated:index/applib/layout/grid/bootstrap3/BS3ClearFix.adoc[BS3ClearFix] classes.
 
-.Java Sources
+== API
+
+.BS3RowContent.java
 [source,java]
 ----
 class BS3RowContent {
-
-  Size getSize() // <.>
-
+  Size getSize()     // <.>
   void setSize(final Size size)
-
-  BS3RowContentOwner getOwner() // <.>
-
+  BS3RowContentOwner getOwner()     // <.>
   void setOwner(final BS3RowContentOwner owner)
-
   BS3Grid getGrid()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContentOwner.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContentOwner.adoc
index 6f27e5d..96f2f6a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContentOwner.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowContentOwner.adoc
@@ -1,7 +1,8 @@
-= BS3RowContentOwner : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.BS3RowContentOwner.java
 [source,java]
 ----
 interface BS3RowContentOwner {
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowOwner.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowOwner.adoc
index d4ccdb0..d9c9889 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowOwner.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3RowOwner.adoc
@@ -1,11 +1,11 @@
-= BS3RowOwner : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.BS3RowOwner.java
 [source,java]
 ----
 interface BS3RowOwner {
-
   List<BS3Row> getRows()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Tab.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Tab.adoc
index 7b8afd0..de11179 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Tab.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3Tab.adoc
@@ -1,29 +1,22 @@
-= BS3Tab : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Represents a tab within a xref:system:generated:index/applib/layout/grid/bootstrap3/BS3TabGroup.adoc[BS3TabGroup] .
 
 They simply contain one or more xref:system:generated:index/applib/layout/grid/bootstrap3/BS3Row.adoc[BS3Row] s.
 
-.Java Sources
+== API
+
+.BS3Tab.java
 [source,java]
 ----
 class BS3Tab {
-
   String getName()
-
   void setName(final String name)
-
   List<BS3Row> getRows()
-
   void setRows(final List<BS3Row> rows)
-
-  BS3TabOwner getOwner() // <.>
-
+  BS3TabOwner getOwner()     // <.>
   void setOwner(final BS3TabOwner owner)
-
   BS3Grid getGrid()
-
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroup.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroup.adoc
index 1b1e76e..b710c5a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroup.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroup.adoc
@@ -1,33 +1,23 @@
-= BS3TabGroup : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Represents a tab group containing one or more xref:system:generated:index/applib/layout/grid/bootstrap3/BS3Tab.adoc[BS3Tab] s.
 
-.Java Sources
+== API
+
+.BS3TabGroup.java
 [source,java]
 ----
 class BS3TabGroup {
-
-  Boolean isUnreferencedCollections() // <.>
-
+  Boolean isUnreferencedCollections()     // <.>
   void setUnreferencedCollections(final Boolean unreferencedCollections)
-
-  Boolean isCollapseIfOne() // <.>
-
+  Boolean isCollapseIfOne()     // <.>
   void setCollapseIfOne(final Boolean collapseIfOne)
-
   List<BS3Tab> getTabs()
-
   void setTabs(final List<BS3Tab> tabs)
-
-  BS3TabGroupOwner getOwner() // <.>
-
+  BS3TabGroupOwner getOwner()     // <.>
   void setOwner(final BS3TabGroupOwner owner)
-
-  String getMetadataError() // <.>
-
+  String getMetadataError()     // <.>
   void setMetadataError(final String metadataError)
-
   BS3Grid getGrid()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroupOwner.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroupOwner.adoc
index 7289758..902dfc9 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroupOwner.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabGroupOwner.adoc
@@ -1,11 +1,11 @@
-= BS3TabGroupOwner : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.BS3TabGroupOwner.java
 [source,java]
 ----
 interface BS3TabGroupOwner {
-
   List<BS3TabGroup> getTabGroups()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabOwner.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabOwner.adoc
index 0dc816c..8f42108 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabOwner.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/BS3TabOwner.adoc
@@ -1,11 +1,11 @@
-= BS3TabOwner : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.BS3TabOwner.java
 [source,java]
 ----
 interface BS3TabOwner {
-
   List<BS3Tab> getTabs()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/HasCssId.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/HasCssId.adoc
index 92b3b88..a0e9ac4 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/HasCssId.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/HasCssId.adoc
@@ -1,12 +1,12 @@
-= HasCssId : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.HasCssId.java
 [source,java]
 ----
 interface HasCssId {
-
-  String getId() // <.>
+  String getId()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/Size.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/Size.adoc
index 6370e12..296642b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/Size.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/Size.adoc
@@ -1,21 +1,17 @@
-= Size : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 As pergrid options, also used inresponsive utilityclasses.
 
-.Java Sources
+== API
+
+.Size.java
 [source,java]
 ----
 enum Size {
-
   XS
-
   SM
-
   MD
-
   LG
-
   String toCssClassFragment()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/SizeSpan.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/SizeSpan.adoc
index bf6195ae..8b6e2f7 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/SizeSpan.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/SizeSpan.adoc
@@ -1,29 +1,20 @@
-= SizeSpan : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.SizeSpan.java
 [source,java]
 ----
 class SizeSpan {
-
   SizeSpan with(final Size size, final int span)
-
   SizeSpan offset(final Size size, final int span)
-
   Size getSize()
-
   void setSize(final Size size)
-
   int getSpan()
-
   void setSpan(final int span)
-
   Boolean isOffset()
-
   void setOffset(final Boolean offset)
-
   String toCssClassFragment()
-
   StringBuilder appendCssClassFragment(final StringBuilder buf)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/WithinGrid.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/WithinGrid.adoc
index d54c6f5..258b791 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/WithinGrid.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/grid/bootstrap3/WithinGrid.adoc
@@ -1,11 +1,11 @@
-= WithinGrid : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.WithinGrid.java
 [source,java]
 ----
 interface WithinGrid {
-
   BS3Grid getGrid()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/links/Link.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/links/Link.adoc
index 2c1780f..7ebc078 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/links/Link.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/links/Link.adoc
@@ -1,23 +1,17 @@
-= Link : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Link.java
 [source,java]
 ----
 class Link {
-
   Link()
-
   Link(final String rel, final String method, final String href, final String type)
-
   String getRel()
-
   String getMethod()
-
   String getHref()
-
   String getType()
-
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/HasNamed.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/HasNamed.adoc
index 9ddc7d8..093405c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/HasNamed.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/HasNamed.adoc
@@ -1,11 +1,11 @@
-= HasNamed : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.HasNamed.java
 [source,java]
 ----
 interface HasNamed {
-
   String getNamed()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/Menu.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/Menu.adoc
index abcfce2..a077c67 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/Menu.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/Menu.adoc
@@ -1,7 +1,8 @@
-= Menu : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Menu.java
 [source,java]
 ----
 interface Menu {
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBar.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBar.adoc
index 4093673..f6dbccf 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBar.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBar.adoc
@@ -1,7 +1,8 @@
-= MenuBar : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MenuBar.java
 [source,java]
 ----
 interface MenuBar {
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBars.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBars.adoc
index 0fa49ef..4f24443 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBars.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBars.adoc
@@ -1,19 +1,15 @@
-= MenuBars : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MenuBars.java
 [source,java]
 ----
 interface MenuBars {
-
   String getTnsAndSchemaLocation()
-
   void setTnsAndSchemaLocation(final String tnsAndSchemaLocation)
-
   MenuBar menuBarFor(DomainServiceLayout.MenuBar menuBar)
-
   void visit(Visitor visitor)
-
   Map<String, ServiceActionLayoutData> getAllServiceActionsByObjectTypeAndId()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBarsAbstract.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBarsAbstract.adoc
index 0b26941..2c70651 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBarsAbstract.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuBarsAbstract.adoc
@@ -1,15 +1,13 @@
-= MenuBarsAbstract : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MenuBarsAbstract.java
 [source,java]
 ----
 class MenuBarsAbstract {
-
   String getTnsAndSchemaLocation()
-
   void setTnsAndSchemaLocation(final String tnsAndSchemaLocation)
-
   LinkedHashMap<String, ServiceActionLayoutData> getAllServiceActionsByObjectTypeAndId()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuSection.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuSection.adoc
index 39b5ac1..d06a26e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuSection.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/MenuSection.adoc
@@ -1,11 +1,11 @@
-= MenuSection : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MenuSection.java
 [source,java]
 ----
 interface MenuSection {
-
   List<ServiceActionLayoutData> getServiceActions()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3Menu.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3Menu.adoc
index 9953dca..bfb8e82 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3Menu.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3Menu.adoc
@@ -1,29 +1,21 @@
-= BS3Menu : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Describes the collection of domain services into menubars, broadly corresponding to the aggregation of information of xref:system:generated:index/applib/annotation/DomainServiceLayout.adoc[DomainServiceLayout] that have the same value of _DomainServiceLayout#named()_ .
 
-.Java Sources
+== API
+
+.BS3Menu.java
 [source,java]
 ----
 class BS3Menu {
-
   BS3Menu()
-
   BS3Menu(String named)
-
   String getNamed()
-
   void setNamed(String named)
-
   String getCssClassFa()
-
   void setCssClassFa(final String cssClassFa)
-
   List<BS3MenuSection> getSections()
-
-  Boolean isUnreferencedActions() // <.>
-
+  Boolean isUnreferencedActions()     // <.>
   void setUnreferencedActions(final Boolean unreferencedActions)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBar.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBar.adoc
index 2f3fa53..e939117 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBar.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBar.adoc
@@ -1,17 +1,15 @@
-= BS3MenuBar : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Describes the collection of domain services into menubars, broadly corresponding to the aggregation of information of xref:system:generated:index/applib/annotation/DomainServiceLayout.adoc[DomainServiceLayout] that have the same value of _DomainServiceLayout#named()_ .
 
-.Java Sources
+== API
+
+.BS3MenuBar.java
 [source,java]
 ----
 class BS3MenuBar {
-
   BS3MenuBar()
-
   List<BS3Menu> getMenus()
-
   void setMenus(List<BS3Menu> menus)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc
index 84adb3c..9d5610c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc
@@ -1,33 +1,23 @@
-= BS3MenuBars : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Describes the collection of domain services into menubars, broadly corresponding to the aggregation of information within xref:system:generated:index/applib/annotation/DomainServiceLayout.adoc[DomainServiceLayout] .
 
-.Java Sources
+== API
+
+.BS3MenuBars.java
 [source,java]
 ----
 class BS3MenuBars {
-
   BS3MenuBars()
-
   BS3MenuBar getPrimary()
-
   void setPrimary(final BS3MenuBar primary)
-
   BS3MenuBar getSecondary()
-
   void setSecondary(final BS3MenuBar secondary)
-
   BS3MenuBar getTertiary()
-
   void setTertiary(final BS3MenuBar tertiary)
-
   BS3MenuBar menuBarFor(final DomainServiceLayout.MenuBar menuBar)
-
   void visit(final MenuBars.Visitor visitor)
-
-  String getMetadataError() // <.>
-
+  String getMetadataError()     // <.>
   void setMetadataError(final String metadataError)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuSection.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuSection.adoc
index d9600d9..3e602a3 100644
--- a/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuSection.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/layout/menubars/bootstrap3/BS3MenuSection.adoc
@@ -1,21 +1,17 @@
-= BS3MenuSection : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Corresponds to a domain service that contributes its serviceActions under a particular xref:system:generated:index/applib/layout/menubars/bootstrap3/BS3MenuBar.adoc[BS3MenuBar] .
 
-.Java Sources
+== API
+
+.BS3MenuSection.java
 [source,java]
 ----
 class BS3MenuSection {
-
   BS3MenuSection()
-
   String getNamed()
-
   void setNamed(String named)
-
   List<ServiceActionLayoutData> getServiceActions()
-
   void setServiceActions(List<ServiceActionLayoutData> actionLayoutDatas)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/mixins/MixinConstants.adoc b/antora/components/system/modules/generated/pages/index/applib/mixins/MixinConstants.adoc
index 5b163f9..3ec553f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/mixins/MixinConstants.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/mixins/MixinConstants.adoc
@@ -1,15 +1,13 @@
-= MixinConstants : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MixinConstants.java
 [source,java]
 ----
 class MixinConstants {
-
   public static final String METADATA_LAYOUT_GROUPNAME;
-
   public static final String FILENAME_PROPERTY_NAME;
-
   public static final String FILENAME_PROPERTY_DESCRIPTION;
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto.adoc b/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto.adoc
index 1b6a383..d5d99fe 100644
--- a/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto.adoc
@@ -1,7 +1,8 @@
-= Dto : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Dto.java
 [source,java]
 ----
 interface Dto {
diff --git a/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto_downloadXml.adoc b/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto_downloadXml.adoc
index b5d3c5c..2e379cf 100644
--- a/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto_downloadXml.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto_downloadXml.adoc
@@ -1,16 +1,14 @@
-= Dto_downloadXml : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Dto_downloadXml.java
 [source,java]
 ----
 class Dto_downloadXml {
-
   @Inject
 JaxbService jaxbService;
-
   Object act(final String fileName)
-
   String default0Act()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto_downloadXsd.adoc b/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto_downloadXsd.adoc
index 5d803d1..0daa7ec 100644
--- a/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto_downloadXsd.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto_downloadXsd.adoc
@@ -1,21 +1,17 @@
-= Dto_downloadXsd : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Dto_downloadXsd.java
 [source,java]
 ----
 class Dto_downloadXsd {
-
   @Inject
 MessageService messageService;
-
   @Inject
 JaxbService jaxbService;
-
   Object act(final String fileName, final JaxbService.IsisSchemas isisSchemas)
-
   String default0Act()
-
   JaxbService.IsisSchemas default1Act()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_downloadLayoutXml.adoc b/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_downloadLayoutXml.adoc
index f57ab4c..ffda79c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_downloadLayoutXml.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_downloadLayoutXml.adoc
@@ -1,18 +1,15 @@
-= Object_downloadLayoutXml : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Object_downloadLayoutXml.java
 [source,java]
 ----
 class Object_downloadLayoutXml {
-
   @Inject
 LayoutService layoutService;
-
   Object act(final String fileName, final LayoutService.Style style)
-
   String default0Act()
-
   LayoutService.Style default1Act()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_openRestApi.adoc b/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_openRestApi.adoc
index 5535433..bd132f0 100644
--- a/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_openRestApi.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_openRestApi.adoc
@@ -1,17 +1,15 @@
-= Object_openRestApi : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Object_openRestApi.java
 [source,java]
 ----
 class Object_openRestApi {
-
   @Inject
 BookmarkService bookmarkService;
-
   @Inject
 RestfulPathProvider restfulPathProvider;
-
   LocalResourcePath act()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_rebuildMetamodel.adoc b/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_rebuildMetamodel.adoc
index 7f66f5c..0543bed 100644
--- a/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_rebuildMetamodel.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/mixins/layout/Object_rebuildMetamodel.adoc
@@ -1,14 +1,13 @@
-= Object_rebuildMetamodel : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Object_rebuildMetamodel.java
 [source,java]
 ----
 class Object_rebuildMetamodel {
-
   @Inject
 MetaModelService metaModelService;
-
   Object act()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_downloadMetamodelXml.adoc b/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_downloadMetamodelXml.adoc
index c6834a5..2f7f274 100644
--- a/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_downloadMetamodelXml.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_downloadMetamodelXml.adoc
@@ -1,22 +1,18 @@
-= Object_downloadMetamodelXml : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Object_downloadMetamodelXml.java
 [source,java]
 ----
 class Object_downloadMetamodelXml {
-
   @Inject
 MetaModelService metaModelService;
-
   @Inject
 JaxbService jaxbService;
-
   @Inject
 MetaModelServiceMenu metaModelServiceMenu;
-
   Object act(final String fileName)
-
   String default0Act()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_objectIdentifier.adoc b/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_objectIdentifier.adoc
index cb0681c..654c82b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_objectIdentifier.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_objectIdentifier.adoc
@@ -1,11 +1,11 @@
-= Object_objectIdentifier : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Object_objectIdentifier.java
 [source,java]
 ----
 class Object_objectIdentifier {
-
   String prop()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_objectType.adoc b/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_objectType.adoc
index b01c134..5e54eac 100644
--- a/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_objectType.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/mixins/metamodel/Object_objectType.adoc
@@ -1,11 +1,11 @@
-= Object_objectType : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Object_objectType.java
 [source,java]
 ----
 class Object_objectType {
-
   String prop()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/query/AllInstancesQuery.adoc b/antora/components/system/modules/generated/pages/index/applib/query/AllInstancesQuery.adoc
index 6c6f3fe..d26c6b9 100644
--- a/antora/components/system/modules/generated/pages/index/applib/query/AllInstancesQuery.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/query/AllInstancesQuery.adoc
@@ -1,7 +1,8 @@
-= AllInstancesQuery : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.AllInstancesQuery.java
 [source,java]
 ----
 interface AllInstancesQuery {
diff --git a/antora/components/system/modules/generated/pages/index/applib/query/NamedQuery.adoc b/antora/components/system/modules/generated/pages/index/applib/query/NamedQuery.adoc
index bc4ae7c..96052f6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/query/NamedQuery.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/query/NamedQuery.adoc
@@ -1,17 +1,14 @@
-= NamedQuery : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.NamedQuery.java
 [source,java]
 ----
 interface NamedQuery {
-
   String getName()
-
   Map<String, Object> getParametersByName()
-
   NamedQuery<T> withRange(QueryRange range)
-
   NamedQuery<T> withParameter(String parameterName, Object parameterValue)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/query/Query.adoc b/antora/components/system/modules/generated/pages/index/applib/query/Query.adoc
index b2c134c..006c2cc 100644
--- a/antora/components/system/modules/generated/pages/index/applib/query/Query.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/query/Query.adoc
@@ -1,4 +1,3 @@
-= Query : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 For use by repository implementations, representing the values of a query.
@@ -9,27 +8,20 @@ Implementations are expected to implement the _#getRange()_ method, which is use
 
  *Note:* not every object store will necessarily support this interface. In particular, the in-memory object store does not. For this, you can use the _Predicate_ interface to similar effect, for example in _RepositoryService#allMatches(Class, Predicate, long, long)_ ). *Note:* that the predicate is applied within the xref:system:generated:index/applib/services/repository/RepositoryService.adoc[RepositoryService] (ie client-side) rather than being pushed back to the object store.
 
-.Java Sources
+== API
+
+.Query.java
 [source,java]
 ----
 interface Query {
-
-  Class<T> getResultType() // <.>
-
-  String getDescription() // <.>
-
-  QueryRange getRange() // <.>
-
+  Class<T> getResultType()     // <.>
+  String getDescription()     // <.>
+  QueryRange getRange()     // <.>
   Query<T> withRange(QueryRange range)
-
   Query<T> withRange(long... range)
-
   Query<T> withStart(long start)
-
   Query<T> withLimit(long limit)
-
   Query<T> allInstances(final Class<T> resultType)
-
   NamedQuery<T> named(final Class<T> resultType, final String queryName)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/query/QueryRange.adoc b/antora/components/system/modules/generated/pages/index/applib/query/QueryRange.adoc
index bf48272..d99c3e9 100644
--- a/antora/components/system/modules/generated/pages/index/applib/query/QueryRange.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/query/QueryRange.adoc
@@ -1,39 +1,25 @@
-= QueryRange : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.QueryRange.java
 [source,java]
 ----
 interface QueryRange {
-
   boolean isUnconstrained()
-
   boolean hasOffset()
-
   boolean hasLimit()
-
-  long getStart() // <.>
-
-  long getLimit() // <.>
-
-  long getEnd() // <.>
-
-  int getStartAsInt() // <.>
-
-  int getLimitAsInt() // <.>
-
-  int getEndAsInt() // <.>
-
+  long getStart()     // <.>
+  long getLimit()     // <.>
+  long getEnd()     // <.>
+  int getStartAsInt()     // <.>
+  int getLimitAsInt()     // <.>
+  int getEndAsInt()     // <.>
   QueryRange unconstrained()
-
   QueryRange start(long start)
-
   QueryRange limit(long limit)
-
   QueryRange of(long... range)
-
   QueryRange withStart(long start)
-
   QueryRange withLimit(long limit)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/DomainChangeRecord.adoc b/antora/components/system/modules/generated/pages/index/applib/services/DomainChangeRecord.adoc
index bdedbbf..71cea27 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/DomainChangeRecord.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/DomainChangeRecord.adoc
@@ -1,30 +1,22 @@
-= DomainChangeRecord : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 An abstraction of some sort of recorded change to a domain object: commands, audit entries or published events.
 
-.Java Sources
+== API
+
+.DomainChangeRecord.java
 [source,java]
 ----
 interface DomainChangeRecord {
-
-  ChangeType getType() // <.>
-
-  UUID getUniqueId() // <.>
-
-  String getUsername() // <.>
-
-  Timestamp getTimestamp() // <.>
-
-  String getTargetObjectType() // <.>
-
-  Bookmark getTarget() // <.>
-
-  String getTargetMember() // <.>
-
-  String getPreValue() // <.>
-
-  String getPostValue() // <.>
+  ChangeType getType()     // <.>
+  UUID getUniqueId()     // <.>
+  String getUsername()     // <.>
+  Timestamp getTimestamp()     // <.>
+  String getTargetObjectType()     // <.>
+  Bookmark getTarget()     // <.>
+  String getTargetMember()     // <.>
+  String getPreValue()     // <.>
+  String getPostValue()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/MethodReferences.adoc b/antora/components/system/modules/generated/pages/index/applib/services/MethodReferences.adoc
index 1e77920..b3bdc77 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/MethodReferences.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/MethodReferences.adoc
@@ -1,7 +1,8 @@
-= MethodReferences : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MethodReferences.java
 [source,java]
 ----
 class MethodReferences {
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/RepresentsInteractionMemberExecution.adoc b/antora/components/system/modules/generated/pages/index/applib/services/RepresentsInteractionMemberExecution.adoc
index b820457..b9309cd 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/RepresentsInteractionMemberExecution.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/RepresentsInteractionMemberExecution.adoc
@@ -1,15 +1,15 @@
-= RepresentsInteractionMemberExecution : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Extends xref:system:generated:index/commons/having/HasUniqueId.adoc[HasUniqueId] , where the _HasUniqueId#getUniqueId()_ is interpreted as an interaction (cf _InteractionDto_ ) that has at least one member execution (cf _MemberExecutionDto_ ) and may (by way of xref:system:generated:index/applib/services/wrapper/WrapperFactory.adoc[WrapperFactory] ) contain several.
 
 Examples could include SPI services that persist published events and status messages.
 
-.Java Sources
+== API
+
+.RepresentsInteractionMemberExecution.java
 [source,java]
 ----
 interface RepresentsInteractionMemberExecution {
-
   int getSequence()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/acceptheader/AcceptHeaderService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/acceptheader/AcceptHeaderService.adoc
index d269fac..9805e10 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/acceptheader/AcceptHeaderService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/acceptheader/AcceptHeaderService.adoc
@@ -1,12 +1,24 @@
-= AcceptHeaderService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+This service simply exposes the HTTP `Accept` header to the domain.
+
+Its intended use is to support multiple versions of a REST API, where the responsibility for content negotiation (determining which version of the REST API is to be used) is managed by logic in the domain objects themselves.
+
+== API
+
+.AcceptHeaderService.java
 [source,java]
 ----
 interface AcceptHeaderService {
-
-  List<MediaType> getAcceptableMediaTypes()
+  List<MediaType> getAcceptableMediaTypes()     // <.>
 }
 ----
 
+<.> `[teal]#*getAcceptableMediaTypes*#()` : `List<MediaType>`
++
+--
+The intention is that this service only returns a list when the request is initiated through the _Restful Objects viewer_.
+
+Otherwise the service will likely return `null`.
+--
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/appfeat/ApplicationFeatureRepository.adoc b/antora/components/system/modules/generated/pages/index/applib/services/appfeat/ApplicationFeatureRepository.adoc
index 55d3950..6a210e6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/appfeat/ApplicationFeatureRepository.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/appfeat/ApplicationFeatureRepository.adoc
@@ -1,19 +1,17 @@
-= ApplicationFeatureRepository : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+Provides the access to string representations of the packages, classes and class members (collectively: "application features") of the domain classes within the framework's internal metamodel.
+
+== API
+
+.ApplicationFeatureRepository.java
 [source,java]
 ----
 interface ApplicationFeatureRepository {
-
   SortedSet<String> packageNames()
-
   SortedSet<String> packageNamesContainingClasses(ApplicationMemberType memberType)
-
   SortedSet<String> classNamesContainedIn(String packageFqn, ApplicationMemberType memberType)
-
   SortedSet<String> classNamesRecursivelyContainedIn(String packageFqn)
-
   SortedSet<String> memberNamesOf(String packageFqn, String className, ApplicationMemberType memberType)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/appfeat/ApplicationMemberType.adoc b/antora/components/system/modules/generated/pages/index/applib/services/appfeat/ApplicationMemberType.adoc
index b931fae..02dc670 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/appfeat/ApplicationMemberType.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/appfeat/ApplicationMemberType.adoc
@@ -1,17 +1,14 @@
-= ApplicationMemberType : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ApplicationMemberType.java
 [source,java]
 ----
 enum ApplicationMemberType {
-
   PROPERTY
-
   COLLECTION
-
   ACTION
-
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/Bookmark.adoc b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/Bookmark.adoc
index 7c0321d..f162c5f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/Bookmark.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/Bookmark.adoc
@@ -1,27 +1,21 @@
-= Bookmark : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 String representation of any persistable or re-createable object managed by the framework.
 
 Analogous to the `RootOid` .
 
-.Java Sources
+== API
+
+.Bookmark.java
 [source,java]
 ----
 class Bookmark {
-
   Bookmark of(String objectType, String identifier)
-
-  Optional<Bookmark> parse(String str) // <.>
-
+  Optional<Bookmark> parse(String str)     // <.>
   OidDto toOidDto()
-
   Bookmark from(OidDto oidDto)
-
-  String toString() // <.>
-
+  String toString()     // <.>
   Bookmark withHintId(String hintId)
-
   String toStringUsingIdentifier(String id)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder.adoc b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder.adoc
index b2ac31d..f60388d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder.adoc
@@ -1,11 +1,11 @@
-= BookmarkHolder : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.BookmarkHolder.java
 [source,java]
 ----
 interface BookmarkHolder {
-
   Bookmark bookmark()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder_lookup.adoc b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder_lookup.adoc
index 07df383..3c18883 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder_lookup.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder_lookup.adoc
@@ -1,11 +1,11 @@
-= BookmarkHolder_lookup : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.BookmarkHolder_lookup.java
 [source,java]
 ----
 class BookmarkHolder_lookup {
-
   Object act()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder_object.adoc b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder_object.adoc
index 78a10b7..27a4c1b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder_object.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkHolder_object.adoc
@@ -1,11 +1,11 @@
-= BookmarkHolder_object : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.BookmarkHolder_object.java
 [source,java]
 ----
 class BookmarkHolder_object {
-
   Object prop()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkService.adoc
index 5c4c4aa..9b571d3 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/bookmark/BookmarkService.adoc
@@ -1,24 +1,19 @@
-= BookmarkService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-This service enables a serializable 'bookmark' to be created for an entity.
+This service provides a serializable 'bookmark' for any entity, and conversely to lookup an entity from a bookmark.
 
-.Java Sources
+== API
+
+.BookmarkService.java
 [source,java]
 ----
 interface BookmarkService {
-
-  Bookmark bookmarkFor(Object domainObject) // <.>
-
-  Bookmark bookmarkForElseThrow(Object domainObject) // <.>
-
-  Bookmark bookmarkFor(Class<?> cls, String identifier) // <.>
-
-  Object lookup(BookmarkHolder bookmarkHolder) // <.>
-
-  Object lookup(Bookmark bookmark) // <.>
-
-  T lookup(Bookmark bookmark, Class<T> cls) // <.>
+  Bookmark bookmarkFor(Object domainObject)     // <.>
+  Bookmark bookmarkForElseThrow(Object domainObject)     // <.>
+  Bookmark bookmarkFor(Class<?> cls, String identifier)     // <.>
+  Object lookup(BookmarkHolder bookmarkHolder)     // <.>
+  Object lookup(Bookmark bookmark)     // <.>
+  T lookup(Bookmark bookmark, Class<T> cls)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/bookmarkui/BookmarkUiService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/bookmarkui/BookmarkUiService.adoc
index a260c2b..01daa51 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/bookmarkui/BookmarkUiService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/bookmarkui/BookmarkUiService.adoc
@@ -1,12 +1,20 @@
-= BookmarkUiService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+Provides the ability to programmatically interact with bookmarked pages and breadcrumbs, as rendered by the Wicket viewer.
+
+== API
+
+.BookmarkUiService.java
 [source,java]
 ----
 interface BookmarkUiService {
-
-  void clear()
+  void clear()     // <.>
 }
 ----
 
+<.> `[teal]#*clear*#()` : `void`
++
+--
+Simply clears the current list of breadcrumbs and bookmarks.
+--
+
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/clock/ClockService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/clock/ClockService.adoc
index 97cd126..58474a9 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/clock/ClockService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/clock/ClockService.adoc
@@ -1,15 +1,14 @@
-= ClockService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 This service allows an application to be decoupled from the system time. The most common use case is in support of testing scenarios, to "mock the clock". Use of this service also opens up the use of centralized co-ordinated time management through a centralized time service.
 
-.Java Sources
+== API
+
+.ClockService.java
 [source,java]
 ----
 interface ClockService {
-
   VirtualClock getClock()
-
   long getEpochMillis()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/command/Command.adoc b/antora/components/system/modules/generated/pages/index/applib/services/command/Command.adoc
index 7f79709..9c06358 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/command/Command.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/command/Command.adoc
@@ -1,4 +1,3 @@
-= Command : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Represents the _intention to_ invoke either an action or modify a property. There can be only one such intention per (web) request, so a command is in effect interaction-scoped.
@@ -11,20 +10,17 @@ Note that when invoking an action, other actions may be invoked courtesy of the
 
 That said, if the sub-action is invoked asynchronously (using _WrapperFactory#asyncWrap(Object, AsyncControl)_ or _WrapperFactory#asyncWrapMixin(Class, Object, AsyncControl)_ ), then a separate xref:system:generated:index/applib/services/command/Command.adoc[Command] object is created, and the originating xref:system:generated:index/applib/services/command/Command.adoc[Command] is set to be its _Command#getParent() parent_ .
 
-.Java Sources
+== API
+
+.Command.java
 [source,java]
 ----
 class Command {
-
-  String getUsername() // <.>
-
-  Timestamp getTimestamp() // <.>
-
-  Bookmark getTarget() // <.>
-
-  String getLogicalMemberIdentifier() // <.>
-
-  Updater updater() // <.>
+  String getUsername()     // <.>
+  Timestamp getTimestamp()     // <.>
+  Bookmark getTarget()     // <.>
+  String getLogicalMemberIdentifier()     // <.>
+  Updater updater()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/command/CommandExecutorService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/command/CommandExecutorService.adoc
index a1fb582..6691b30 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/command/CommandExecutorService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/command/CommandExecutorService.adoc
@@ -1,17 +1,14 @@
-= CommandExecutorService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.CommandExecutorService.java
 [source,java]
 ----
 interface CommandExecutorService {
-
-  Bookmark executeCommand(SudoPolicy sudoPolicy, Command command) // <.>
-
+  Bookmark executeCommand(SudoPolicy sudoPolicy, Command command)     // <.>
   Bookmark executeCommand(SudoPolicy sudoPolicy, CommandDto commandDto, CommandOutcomeHandler outcomeHandler)
-
   Bookmark executeCommand(Command command)
-
   Bookmark executeCommand(CommandDto commandDto, CommandOutcomeHandler outcomeHandler)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/command/CommandOutcomeHandler.adoc b/antora/components/system/modules/generated/pages/index/applib/services/command/CommandOutcomeHandler.adoc
index 409e365..6c4d18a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/command/CommandOutcomeHandler.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/command/CommandOutcomeHandler.adoc
@@ -1,19 +1,15 @@
-= CommandOutcomeHandler : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.CommandOutcomeHandler.java
 [source,java]
 ----
 interface CommandOutcomeHandler {
-
   CommandOutcomeHandler NULL;
-
   Timestamp getStartedAt()
-
   void setStartedAt(Timestamp startedAt)
-
   void setCompletedAt(Timestamp completedAt)
-
   void setResult(Result<Bookmark> resultBookmark)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/HasCommandDto.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/HasCommandDto.adoc
index afbff80..91148fa 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/HasCommandDto.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/HasCommandDto.adoc
@@ -1,13 +1,13 @@
-= HasCommandDto : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Objects implementing this interface will be processed automatically by _org.apache.isis.applib.services.commanddto.conmap.ContentMappingServiceForCommandDto_ .
 
-.Java Sources
+== API
+
+.HasCommandDto.java
 [source,java]
 ----
 interface HasCommandDto {
-
   CommandDto getCommandDto()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc
index 2a06715..ca74195 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc
@@ -1,19 +1,16 @@
-= ContentMappingServiceForCommandDto : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ContentMappingServiceForCommandDto.java
 [source,java]
 ----
 class ContentMappingServiceForCommandDto {
-
   @Inject
 MetaModelService metaModelService;
-
   @Inject
 List<CommandDtoProcessorService> commandDtoProcessorServices;
-
   Object map(final Object object, final List<MediaType> acceptableMediaTypes)
-
   CommandDto asProcessedDto(final Object object)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc
index aa393e9..05d341e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/ContentMappingServiceForCommandsDto.adoc
@@ -1,17 +1,15 @@
-= ContentMappingServiceForCommandsDto : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ContentMappingServiceForCommandsDto.java
 [source,java]
 ----
 class ContentMappingServiceForCommandsDto {
-
   @Inject
 ContentMappingServiceForCommandDto contentMappingServiceForCommandDto;
-
   Object map(Object object, final List<MediaType> acceptableMediaTypes)
-
-  CommandsDto map(final Object object) // <.>
+  CommandsDto map(final Object object)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/UserDataKeys.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/UserDataKeys.adoc
index 5a0a321..8cc59c6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/UserDataKeys.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/conmap/UserDataKeys.adoc
@@ -1,15 +1,14 @@
-= UserDataKeys : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Keys used in _CommandDto#getUserData()_ to marshall the command's results
 
-.Java Sources
+== API
+
+.UserDataKeys.java
 [source,java]
 ----
 class UserDataKeys {
-
   public static String RESULT;
-
   public static String EXCEPTION;
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessor.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessor.adoc
index 528d6f4..9962781 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessor.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessor.adoc
@@ -1,14 +1,14 @@
-= CommandDtoProcessor : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Refine (or possibly ignore) a command when replicating from primary to secondary.
 
-.Java Sources
+== API
+
+.CommandDtoProcessor.java
 [source,java]
 ----
 interface CommandDtoProcessor {
-
-  CommandDto process(CommandDto commandDto) // <.>
+  CommandDto process(CommandDto commandDto)     // <.>
 }
 ----
 
@@ -17,6 +17,6 @@ interface CommandDtoProcessor {
 --
 The implementation can if necessary refine or alter the _CommandDto_ to be replicated from primary to secondary.
 
-That said, the most common use case is to returnnull, which results in the command effectively being ignore.
+That said, the most common use case is to return `null, which results in the command effectively being ignore.
 --
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessorForActionAbstract.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessorForActionAbstract.adoc
index cc5c9c4..01d32f1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessorForActionAbstract.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessorForActionAbstract.adoc
@@ -1,9 +1,10 @@
-= CommandDtoProcessorForActionAbstract : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Convenience adapter for command processors for action invocations.
 
-.Java Sources
+== API
+
+.CommandDtoProcessorForActionAbstract.java
 [source,java]
 ----
 class CommandDtoProcessorForActionAbstract {
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessorForPropertyAbstract.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessorForPropertyAbstract.adoc
index 1bec0cb..fb3cbc1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessorForPropertyAbstract.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/CommandDtoProcessorForPropertyAbstract.adoc
@@ -1,9 +1,10 @@
-= CommandDtoProcessorForPropertyAbstract : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Convenience adapter for command processors for property edits.
 
-.Java Sources
+== API
+
+.CommandDtoProcessorForPropertyAbstract.java
 [source,java]
 ----
 class CommandDtoProcessorForPropertyAbstract {
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorService.adoc
index 7a75d4f..77b9283 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorService.adoc
@@ -1,14 +1,16 @@
-= CommandDtoProcessorService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-Optional SPI called by xref:system:generated:index/applib/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc[ContentMappingServiceForCommandDto] . Similar to xref:system:generated:index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor] , but applied to all _CommandDto_ s globally.
+Service used to convert a domain object into a _CommandDto_ , called by xref:system:generated:index/applib/services/commanddto/conmap/ContentMappingServiceForCommandDto.adoc[ContentMappingServiceForCommandDto] .
 
-.Java Sources
+The service is used as a fallback if an xref:system:generated:index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor] , hasn't been explicitly specified using _Action#commandDtoProcessor()_ or _Property#commandDtoProcessor()_ .
+
+== API
+
+.CommandDtoProcessorService.java
 [source,java]
 ----
 interface CommandDtoProcessorService {
-
-  CommandDto process(final Object domainObject, final CommandDto commandDto) // <.>
+  CommandDto process(final Object domainObject, final CommandDto commandDto)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorServiceIdentity.adoc b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorServiceIdentity.adoc
index fd5adf3..27e1fb2 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorServiceIdentity.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/commanddto/processor/spi/CommandDtoProcessorServiceIdentity.adoc
@@ -1,13 +1,13 @@
-= CommandDtoProcessorServiceIdentity : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 At least one implementation is required.
 
-.Java Sources
+== API
+
+.CommandDtoProcessorServiceIdentity.java
 [source,java]
 ----
 class CommandDtoProcessorServiceIdentity {
-
   CommandDto process(final Object domainObject, final CommandDto commandDto)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationMenu.adoc b/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationMenu.adoc
index 5a1326b..e00e8d2 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationMenu.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationMenu.adoc
@@ -1,13 +1,12 @@
-= ConfigurationMenu : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ConfigurationMenu.java
 [source,java]
 ----
 class ConfigurationMenu {
-
   ConfigurationMenu(ConfigurationViewService configurationService)
-
   Set<ConfigurationProperty> configuration()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationProperty.adoc b/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationProperty.adoc
index 39a830c..6253548 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationProperty.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationProperty.adoc
@@ -1,13 +1,12 @@
-= ConfigurationProperty : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ConfigurationProperty.java
 [source,java]
 ----
 class ConfigurationProperty {
-
   ConfigurationProperty(final String key, final String value)
-
   int compareTo(final ConfigurationProperty other)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationViewService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationViewService.adoc
index 79f9e67..d3d4e2f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationViewService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/confview/ConfigurationViewService.adoc
@@ -1,12 +1,12 @@
-= ConfigurationViewService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ConfigurationViewService.java
 [source,java]
 ----
 interface ConfigurationViewService {
-
-  Set<ConfigurationProperty> allProperties() // <.>
+  Set<ConfigurationProperty> allProperties()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/conmap/ContentMappingService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/conmap/ContentMappingService.adoc
index 36f9dc7..e399d21 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/conmap/ContentMappingService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/conmap/ContentMappingService.adoc
@@ -1,12 +1,12 @@
-= ContentMappingService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ContentMappingService.java
 [source,java]
 ----
 interface ContentMappingService {
-
-  Object map(Object object, final List<MediaType> acceptableMediaTypes) // <.>
+  Object map(Object object, final List<MediaType> acceptableMediaTypes)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/email/EmailService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/email/EmailService.adoc
index faf3e52..063c109 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/email/EmailService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/email/EmailService.adoc
@@ -1,20 +1,18 @@
-= EmailService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides the ability to send emails to one or more recipients.
 
 The core framework also provides a default implementation `EmailServiceDefault` that sends email as an HTML message, using an external SMTP provider. See the Isis website for further details.
 
-.Java Sources
+== API
+
+.EmailService.java
 [source,java]
 ----
 interface EmailService {
-
   void init()
-
   boolean send(List<String> to, List<String> cc, List<String> bcc, String subject, String body, DataSource... attachments)
-
-  boolean isConfigured() // <.>
+  boolean isConfigured()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/error/ErrorDetails.adoc b/antora/components/system/modules/generated/pages/index/applib/services/error/ErrorDetails.adoc
index 7227fbf..15e0356 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/error/ErrorDetails.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/error/ErrorDetails.adoc
@@ -1,11 +1,12 @@
-= ErrorDetails : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Details of the error (obtained from the thrown exception), passed as part of the request to the xref:system:generated:index/applib/services/error/ErrorReportingService.adoc[ErrorReportingService] .
 
 Implementation note: a class has been used here so that additional fields might be added in the future.
 
-.Java Sources
+== API
+
+.ErrorDetails.java
 [source,java]
 ----
 class ErrorDetails {
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/error/ErrorReportingService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/error/ErrorReportingService.adoc
index fb0c5d6..5e3505e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/error/ErrorReportingService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/error/ErrorReportingService.adoc
@@ -1,13 +1,13 @@
-= ErrorReportingService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Optional SPI service providing the ability to record errors occurring in the application into an external incident recording system (such as JIRA) and to provide a user-friendly (jargon-free) error message to the end-user, along with incident reference.
 
-.Java Sources
+== API
+
+.ErrorReportingService.java
 [source,java]
 ----
 interface ErrorReportingService {
-
   Ticket reportError(final ErrorDetails errorDetails)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/error/SimpleTicket.adoc b/antora/components/system/modules/generated/pages/index/applib/services/error/SimpleTicket.adoc
index a9867dc..0f80231 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/error/SimpleTicket.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/error/SimpleTicket.adoc
@@ -1,4 +1,3 @@
-= SimpleTicket : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Response from the xref:system:generated:index/applib/services/error/ErrorReportingService.adoc[ErrorReportingService] , containing information to show to the end-user.
@@ -10,29 +9,21 @@ Implementation notes:
 
 so that it can be stored by the Wicket viewer as a Wicket model.
 
-.Java Sources
+== API
+
+.SimpleTicket.java
 [source,java]
 ----
 class SimpleTicket {
-
   SimpleTicket(final String reference, final String userMessage, final String details)
-
   SimpleTicket(final String reference, final String userMessage, final String details, final StackTracePolicy stackTracePolicy)
-
   SimpleTicket(final String reference, final String userMessage, final String details, final String kittenUrl)
-
   SimpleTicket(final String reference, final String userMessage, final String details, final StackTracePolicy stackTracePolicy, final String kittenUrl)
-
   String getReference()
-
   String getUserMessage()
-
   String getDetails()
-
   StackTracePolicy getStackTracePolicy()
-
-  String getKittenUrl() // <.>
-
+  String getKittenUrl()     // <.>
   String getMarkup()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/error/Ticket.adoc b/antora/components/system/modules/generated/pages/index/applib/services/error/Ticket.adoc
index 82330a7..c813e9b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/error/Ticket.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/error/Ticket.adoc
@@ -1,4 +1,3 @@
-= Ticket : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Response from the xref:system:generated:index/applib/services/error/ErrorReportingService.adoc[ErrorReportingService] , containing information to show to the end-user.
@@ -10,20 +9,17 @@ Implementation notes:
 
 so that it can be stored by the Wicket viewer as a Wicket model.
 
-.Java Sources
+== API
+
+.Ticket.java
 [source,java]
 ----
 interface Ticket {
-
-  String getReference() // <.>
-
-  String getUserMessage() // <.>
-
-  String getDetails() // <.>
-
-  StackTracePolicy getStackTracePolicy() // <.>
-
-  String getMarkup() // <.>
+  String getReference()     // <.>
+  String getUserMessage()     // <.>
+  String getDetails()     // <.>
+  StackTracePolicy getStackTracePolicy()     // <.>
+  String getMarkup()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/eventbus/EventBusService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/eventbus/EventBusService.adoc
index 09e2a44..71670ff 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/eventbus/EventBusService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/eventbus/EventBusService.adoc
@@ -1,13 +1,13 @@
-= EventBusService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 A service implementing an Event Bus, allowing arbitrary events to be posted.
 
-.Java Sources
+== API
+
+.EventBusService.java
 [source,java]
 ----
 interface EventBusService {
-
   void post(Object event)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizer.adoc b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizer.adoc
index 03e6942..bd8e744 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizer.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizer.adoc
@@ -1,4 +1,3 @@
-= ExceptionRecognizer : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Domain service to (attempt) to recognize certain exceptions, and return user-friendly messages instead.
@@ -11,12 +10,13 @@ The Isis framework also provides a default implementation of this service that r
 
 Initially introduced for the Wicket viewer; check the documentation of other viewers to determine whether they also support this service.
 
-.Java Sources
+== API
+
+.ExceptionRecognizer.java
 [source,java]
 ----
 interface ExceptionRecognizer {
-
-  Optional<Recognition> recognize(Throwable ex) // <.>
+  Optional<Recognition> recognize(Throwable ex)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerAbstract.adoc b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerAbstract.adoc
index 4ebf6c0..cb11a4a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerAbstract.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerAbstract.adoc
@@ -1,23 +1,19 @@
-= ExceptionRecognizerAbstract : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Abstract implementation of xref:system:generated:index/applib/services/exceprecog/ExceptionRecognizer.adoc[ExceptionRecognizer] that looks exceptions meeting the _Predicate_ supplied in the constructor and, if found anywhere in the causal chain, then returns a non-null message indicating that the exception has been recognized.
 
 If a messaging-parsing _Function_ is provided through the constructor, then the message can be altered. Otherwise the exception's _Throwable#getMessage() message_ is returned as-is.
 
-.Java Sources
+== API
+
+.ExceptionRecognizerAbstract.java
 [source,java]
 ----
 class ExceptionRecognizerAbstract {
-
   ExceptionRecognizerAbstract(final Category category, Predicate<Throwable> predicate, final Function<String, String> messageParser)
-
   ExceptionRecognizerAbstract(Predicate<Throwable> predicate, final Function<String, String> messageParser)
-
   ExceptionRecognizerAbstract(Category category, Predicate<Throwable> predicate)
-
   ExceptionRecognizerAbstract(Predicate<Throwable> predicate)
-
   Optional<Recognition> recognize(Throwable ex)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerForType.adoc b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerForType.adoc
index 65a2473..bab6813 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerForType.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerForType.adoc
@@ -1,25 +1,20 @@
-= ExceptionRecognizerForType : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 A specific implementation of xref:system:generated:index/applib/services/exceprecog/ExceptionRecognizer.adoc[ExceptionRecognizer] that looks for an exception of the type provided in the constructor and, if found anywhere in the causal chain, then returns a non-null message indicating that the exception has been recognized.
 
 If a messaging-parsing _Function_ is provided through the constructor, then the message can be altered. Otherwise the exception's _Throwable#getMessage() message_ is returned as-is.
 
-.Java Sources
+== API
+
+.ExceptionRecognizerForType.java
 [source,java]
 ----
 class ExceptionRecognizerForType {
-
   ExceptionRecognizerForType(final Category category, final Class<? extends Exception> exceptionType, final UnaryOperator<String> messageParser)
-
   ExceptionRecognizerForType(final Category category, final Predicate<Throwable> predicate, final UnaryOperator<String> messageParser)
-
   ExceptionRecognizerForType(final Category category, final Class<? extends Exception> exceptionType)
-
   ExceptionRecognizerForType(final Class<? extends Exception> exceptionType, final UnaryOperator<String> messageParser)
-
   ExceptionRecognizerForType(final Predicate<Throwable> predicate, final UnaryOperator<String> messageParser)
-
   ExceptionRecognizerForType(Class<? extends Exception> exceptionType)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerService.adoc
index 97b9891..f6a6400 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/ExceptionRecognizerService.adoc
@@ -1,16 +1,14 @@
-= ExceptionRecognizerService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ExceptionRecognizerService.java
 [source,java]
 ----
 interface ExceptionRecognizerService {
-
-  Can<ExceptionRecognizer> getExceptionRecognizers() // <.>
-
-  Optional<Recognition> recognize(Throwable ex) // <.>
-
-  Optional<Recognition> recognizeFromSelected(Can<ExceptionRecognizer> recognizers, Throwable ex) // <.>
+  Can<ExceptionRecognizer> getExceptionRecognizers()     // <.>
+  Optional<Recognition> recognize(Throwable ex)     // <.>
+  Optional<Recognition> recognizeFromSelected(Can<ExceptionRecognizer> recognizers, Throwable ex)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/factory/FactoryService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/factory/FactoryService.adoc
index 76eea7d..c7d4cfe 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/factory/FactoryService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/factory/FactoryService.adoc
@@ -1,30 +1,21 @@
-= FactoryService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.FactoryService.java
 [source,java]
 ----
 interface FactoryService {
-
-  T getOrCreate(Class<T> requiredType) // <.>
-
-  T get(Class<T> requiredType) // <.>
-
-  T detachedEntity(Class<T> domainClass) // <.>
-
-  T detachedEntity(T entity) // <.>
-
-  T mixin(Class<T> mixinClass, Object mixedIn) // <.>
-
-  T viewModel(Class<T> viewModelClass, String mementoStr) // <.>
-
-  T viewModel(Class<T> viewModelClass) // <.>
-
-  T viewModel(T viewModel) // <.>
-
-  T create(Class<T> domainClass) // <.>
-
-  T instantiate(Class<T> domainClass) // <.>
+  T getOrCreate(Class<T> requiredType)     // <.>
+  T get(Class<T> requiredType)     // <.>
+  T detachedEntity(Class<T> domainClass)     // <.>
+  T detachedEntity(T entity)     // <.>
+  T mixin(Class<T> mixinClass, Object mixedIn)     // <.>
+  T viewModel(Class<T> viewModelClass, String mementoStr)     // <.>
+  T viewModel(Class<T> viewModelClass)     // <.>
+  T viewModel(T viewModel)     // <.>
+  T create(Class<T> domainClass)     // <.>
+  T instantiate(Class<T> domainClass)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridLoaderService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridLoaderService.adoc
index d5224f2..19f7246 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridLoaderService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridLoaderService.adoc
@@ -1,20 +1,16 @@
-= GridLoaderService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.GridLoaderService.java
 [source,java]
 ----
 interface GridLoaderService {
-
-  boolean supportsReloading() // <.>
-
-  void remove(Class<?> domainClass) // <.>
-
-  boolean existsFor(Class<?> domainClass) // <.>
-
-  Grid load(final Class<?> domainClass) // <.>
-
-  Grid load(final Class<?> domainClass, String layout) // <.>
+  boolean supportsReloading()     // <.>
+  void remove(Class<?> domainClass)     // <.>
+  boolean existsFor(Class<?> domainClass)     // <.>
+  Grid load(final Class<?> domainClass)     // <.>
+  Grid load(final Class<?> domainClass, String layout)     // <.>
 }
 ----
 
@@ -31,16 +27,16 @@ To support metamodel invalidation/rebuilding of spec.
 <.> `[teal]#*existsFor*#(Class<?> domainClass)` : `boolean`
 +
 --
-Whether any persisted layout metadata (eg a.layout.xmlfile) exists for this domain class.
+Whether any persisted layout metadata (eg a `.layout.xmlfile) exists for this domain class.
 --
 <.> `[teal]#*load*#(Class<?> domainClass)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
 +
 --
-Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from alayout.xmlfile, elsenull.
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xmlfile, else `null.
 --
 <.> `[teal]#*load*#(Class<?> domainClass, String layout)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
 +
 --
-Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from alayout.xmlfile, elsenull.
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xmlfile, else `null.
 --
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridService.adoc
index 4fc353f..e2a99be 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridService.adoc
@@ -1,28 +1,20 @@
-= GridService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.GridService.java
 [source,java]
 ----
 interface GridService {
-
-  boolean supportsReloading() // <.>
-
-  void remove(Class<?> domainClass) // <.>
-
-  boolean existsFor(Class<?> domainClass) // <.>
-
-  Grid load(final Class<?> domainClass) // <.>
-
-  Grid load(Class<?> domainClass, String layout) // <.>
-
-  Grid defaultGridFor(Class<?> domainClass) // <.>
-
-  Grid normalize(final Grid grid) // <.>
-
-  Grid complete(Grid grid) // <.>
-
-  Grid minimal(Grid grid) // <.>
+  boolean supportsReloading()     // <.>
+  void remove(Class<?> domainClass)     // <.>
+  boolean existsFor(Class<?> domainClass)     // <.>
+  Grid load(final Class<?> domainClass)     // <.>
+  Grid load(Class<?> domainClass, String layout)     // <.>
+  Grid defaultGridFor(Class<?> domainClass)     // <.>
+  Grid normalize(final Grid grid)     // <.>
+  Grid complete(Grid grid)     // <.>
+  Grid minimal(Grid grid)     // <.>
 }
 ----
 
@@ -39,17 +31,17 @@ To support metamodel invalidation/rebuilding of spec.
 <.> `[teal]#*existsFor*#(Class<?> domainClass)` : `boolean`
 +
 --
-Whether any persisted layout metadata (eg a.layout.xmlfile) exists for this domain class.
+Whether any persisted layout metadata (eg a `.layout.xmlfile) exists for this domain class.
 --
 <.> `[teal]#*load*#(Class<?> domainClass)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
 +
 --
-Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from alayout.xmlfile, elsenull.
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `layout.xmlfile, else `null.
 --
 <.> `[teal]#*load*#(Class<?> domainClass, String layout)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
 +
 --
-Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a[domainClass].layout.[layout].xmlfile, elsenull.
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, eg from a `[domainClass].layout.[layout].xmlfile, else `null.
 --
 <.> `[teal]#*defaultGridFor*#(Class<?> domainClass)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
 +
@@ -61,20 +53,20 @@ Returns a default grid; eg where none can be loaded using _#load(Class)_ .
 --
 Returns a normalized grid for the domain class obtained previously using _#load(Class)_ .
 
-If a "normalized" grid is persisted as thelayout.xml, then the expectation is that the xref:system:generated:index/applib/annotation/MemberOrder.adoc[MemberOrder] annotation can be removed from the domain class because the binding of properties/collections/actions will be within the XML. However, the layout annotations ( xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc[DomainObjectLayout] , xref:system:generated:index/applib/annotation/ActionLayout.adoc[ActionLayout] [...]
+If a "normalized" grid is persisted as the `layout.xml, then the expectation is that the xref:system:generated:index/applib/annotation/MemberOrder.adoc[MemberOrder] annotation can be removed from the domain class because the binding of properties/collections/actions will be within the XML. However, the layout annotations ( xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc[DomainObjectLayout] , xref:system:generated:index/applib/annotation/ActionLayout.adoc[ActionLayou [...]
 --
 <.> `[teal]#*complete*#(xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] grid)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
 +
 --
 Modifies the provided xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] with additional metadata, broadly speaking corresponding to the xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc[DomainObjectLayout] , xref:system:generated:index/applib/annotation/ActionLayout.adoc[ActionLayout] , xref:system:generated:index/applib/annotation/PropertyLayout.adoc[PropertyLayout] and xref:system:generated:index/applib/annotation/CollectionLayout.adoc[CollectionLayout] .
 
-If a "completed" grid is persisted as thelayout.xml, then there should be no need for any of the layout annotations, nor the xref:system:generated:index/applib/annotation/MemberOrder.adoc[MemberOrder] annotations, to be required in the domain class itself.
+If a "completed" grid is persisted as the `layout.xml, then there should be no need for any of the layout annotations, nor the xref:system:generated:index/applib/annotation/MemberOrder.adoc[MemberOrder] annotations, to be required in the domain class itself.
 --
 <.> `[teal]#*minimal*#(xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] grid)` : `xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid]`
 +
 --
 Modifies the provided xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] , removing all metadata except the basic grid structure.
 
-If a "minimal" grid is persisted as thelayout.xml, then the expectation is that most of the layout annotations ( xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc[DomainObjectLayout] , xref:system:generated:index/applib/annotation/ActionLayout.adoc[ActionLayout] , xref:system:generated:index/applib/annotation/PropertyLayout.adoc[PropertyLayout] , xref:system:generated:index/applib/annotation/CollectionLayout.adoc[CollectionLayout] , but also xref:system:generated:inde [...]
+If a "minimal" grid is persisted as the `layout.xml, then the expectation is that most of the layout annotations ( xref:system:generated:index/applib/annotation/DomainObjectLayout.adoc[DomainObjectLayout] , xref:system:generated:index/applib/annotation/ActionLayout.adoc[ActionLayout] , xref:system:generated:index/applib/annotation/PropertyLayout.adoc[PropertyLayout] , xref:system:generated:index/applib/annotation/CollectionLayout.adoc[CollectionLayout] , but also xref:system:generated:in [...]
 --
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridSystemService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridSystemService.adoc
index c5ac8d6..f0fb561 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/grid/GridSystemService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/grid/GridSystemService.adoc
@@ -1,25 +1,19 @@
-= GridSystemService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides an implementation of xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] .
 
-.Java Sources
+== API
+
+.GridSystemService.java
 [source,java]
 ----
 interface GridSystemService {
-
-  Class<G> gridImplementation() // <.>
-
+  Class<G> gridImplementation()     // <.>
   String tns()
-
   String schemaLocation()
-
   G defaultGrid(Class<?> domainClass)
-
-  void normalize(G grid, Class<?> domainClass) // <.>
-
+  void normalize(G grid, Class<?> domainClass)     // <.>
   void complete(G grid, Class<?> domainClass)
-
   void minimal(G grid, Class<?> domainClass)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/health/Health.adoc b/antora/components/system/modules/generated/pages/index/applib/services/health/Health.adoc
index 750fabe..338244d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/health/Health.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/health/Health.adoc
@@ -1,17 +1,14 @@
-= Health : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.Health.java
 [source,java]
 ----
 class Health {
-
   Health ok()
-
   Health error(final Throwable throwable)
-
   Health error(String message)
-
   boolean getResult()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/health/HealthCheckService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/health/HealthCheckService.adoc
index 0c7b3df..ad292b4 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/health/HealthCheckService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/health/HealthCheckService.adoc
@@ -1,11 +1,11 @@
-= HealthCheckService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.HealthCheckService.java
 [source,java]
 ----
 interface HealthCheckService {
-
   Health check()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/hint/HintStore.adoc b/antora/components/system/modules/generated/pages/index/applib/services/hint/HintStore.adoc
index 5d42a42..753721d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/hint/HintStore.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/hint/HintStore.adoc
@@ -1,19 +1,15 @@
-= HintStore : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.HintStore.java
 [source,java]
 ----
 interface HintStore {
-
   String get(final Bookmark bookmark, String hintKey)
-
   void set(final Bookmark bookmark, String hintKey, String value)
-
   void remove(final Bookmark bookmark, String hintKey)
-
   void removeAll(Bookmark bookmark)
-
   Set<String> findHintKeys(Bookmark bookmark)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/homepage/HomePageResolverService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/homepage/HomePageResolverService.adoc
index e87ee7c..b1300d8 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/homepage/HomePageResolverService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/homepage/HomePageResolverService.adoc
@@ -1,13 +1,13 @@
-= HomePageResolverService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Returns a view model annotated with xref:system:generated:index/applib/annotation/HomePage.adoc[HomePage] .
 
-.Java Sources
+== API
+
+.HomePageResolverService.java
 [source,java]
 ----
 interface HomePageResolverService {
-
   Object getHomePage()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/i18n/LocaleProvider.adoc b/antora/components/system/modules/generated/pages/index/applib/services/i18n/LocaleProvider.adoc
index afedcb3..c7e38ec 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/i18n/LocaleProvider.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/i18n/LocaleProvider.adoc
@@ -1,11 +1,11 @@
-= LocaleProvider : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.LocaleProvider.java
 [source,java]
 ----
 interface LocaleProvider {
-
   Locale getLocale()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslatableString.adoc b/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslatableString.adoc
index 91564f6..d981cf2 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslatableString.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslatableString.adoc
@@ -1,35 +1,23 @@
-= TranslatableString : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.TranslatableString.java
 [source,java]
 ----
 class TranslatableString {
-
-  TranslatableString tr(final String pattern, final Object... paramArgs) // <.>
-
-  TranslatableString trn(final String singularPattern, final String pluralPattern, final int number, final Object... paramArgs) // <.>
-
-  String getSingularText() // <.>
-
-  String getPluralText() // <.>
-
+  TranslatableString tr(final String pattern, final Object... paramArgs)     // <.>
+  TranslatableString trn(final String singularPattern, final String pluralPattern, final int number, final Object... paramArgs)     // <.>
+  String getSingularText()     // <.>
+  String getPluralText()     // <.>
   boolean isPluralForm()
-
-  Map<String, Object> getArgumentsByParameterName() // <.>
-
-  String translate(final TranslationService translationService, final String context) // <.>
-
-  String getPattern() // <.>
-
+  Map<String, Object> getArgumentsByParameterName()     // <.>
+  String translate(final TranslationService translationService, final String context)     // <.>
+  String getPattern()     // <.>
   String translated(final String translatedText)
-
   String format(String format, Map<String, Object> values)
-
   boolean equals(final Object o)
-
   int hashCode()
-
   String toString()
 }
 ----
@@ -47,12 +35,12 @@ A translatable string with different patterns for singular and plural forms, sel
 <.> `[teal]#*getSingularText*#()` : `String`
 +
 --
-The text as provided in (either of the _#tr(String, Object...) factory_ _#trn(String, String, int, Object...) method_ s, with placeholders rather than substituted arguments; if _#isPluralForm()_ istruethen used only for the singular form.
+The text as provided in (either of the _#tr(String, Object...) factory_ _#trn(String, String, int, Object...) method_ s, with placeholders rather than substituted arguments; if _#isPluralForm()_ is `truethen used only for the singular form.
 --
 <.> `[teal]#*getPluralText*#()` : `String`
 +
 --
-The plural text as provided in the _#trn(String, String, int, Object...) factory method_ , with placeholders rather than substituted arguments; but will benullif _#isPluralForm()_ isfalse.
+The plural text as provided in the _#trn(String, String, int, Object...) factory method_ , with placeholders rather than substituted arguments; but will be `nullif _#isPluralForm()_ is `false.
 --
 <.> `[teal]#*getArgumentsByParameterName*#()` : `Map<String, Object>`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationService.adoc
index 8ee9c09..b8a33f6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationService.adoc
@@ -1,16 +1,14 @@
-= TranslationService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.TranslationService.java
 [source,java]
 ----
 interface TranslationService {
-
-  String translate(final String context, final String text) // <.>
-
-  String translate(final String context, final String singularText, final String pluralText, int num) // <.>
-
-  Mode getMode() // <.>
+  String translate(final String context, final String text)     // <.>
+  String translate(final String context, final String singularText, final String pluralText, int num)     // <.>
+  Mode getMode()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationsResolver.adoc b/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationsResolver.adoc
index b0009fe..8b23cc6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationsResolver.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/i18n/TranslationsResolver.adoc
@@ -1,11 +1,11 @@
-= TranslationsResolver : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.TranslationsResolver.java
 [source,java]
 ----
 interface TranslationsResolver {
-
   List<String> readLines(final String file)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/iactn/ExecutionContext.adoc b/antora/components/system/modules/generated/pages/index/applib/services/iactn/ExecutionContext.adoc
index fb1c5cf..0e9adad 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/iactn/ExecutionContext.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/iactn/ExecutionContext.adoc
@@ -1,14 +1,14 @@
-= ExecutionContext : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides the user and scenario specific environment for an _Interaction.Execution_
 
-.Java Sources
+== API
+
+.ExecutionContext.java
 [source,java]
 ----
 class ExecutionContext {
-
-  ExecutionContext ofUserWithSystemDefaults(final UserMemento user) // <.>
+  ExecutionContext ofUserWithSystemDefaults(final UserMemento user)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/iactn/Interaction.adoc b/antora/components/system/modules/generated/pages/index/applib/services/iactn/Interaction.adoc
index 570945d..5f31fa5 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/iactn/Interaction.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/iactn/Interaction.adoc
@@ -1,4 +1,3 @@
-= Interaction : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Represents an action invocation or property modification, resulting in some state change of the system. It captures not only the target object and arguments passed, but also builds up the call-graph, and captures metrics, eg for profiling.
@@ -9,18 +8,16 @@ To confuse matters slightly, historically the xref:system:generated:index/applib
 
 NOTE: you could also think of this interface as being analogous to the (database) transaction. The name "Transaction" has not been used for the interface not chosen however because there is also the system-level transaction that manages the persistence of the xref:system:generated:index/applib/services/command/Command.adoc[Command] object itself.
 
-.Java Sources
+== API
+
+.Interaction.java
 [source,java]
 ----
 interface Interaction {
-
   Command getCommand()
-
-  Execution<?, ?> getCurrentExecution() // <.>
-
-  Execution<?, ?> getPriorExecution() // <.>
-
-  int next(final String sequenceId) // <.>
+  Execution<?, ?> getCurrentExecution()     // <.>
+  Execution<?, ?> getPriorExecution()     // <.>
+  int next(final String sequenceId)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/iactn/InteractionContext.adoc b/antora/components/system/modules/generated/pages/index/applib/services/iactn/InteractionContext.adoc
index c7b19641..897822d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/iactn/InteractionContext.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/iactn/InteractionContext.adoc
@@ -1,15 +1,14 @@
-= InteractionContext : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides the current thread's xref:system:generated:index/applib/services/iactn/Interaction.adoc[Interaction] .
 
-.Java Sources
+== API
+
+.InteractionContext.java
 [source,java]
 ----
 interface InteractionContext {
-
-  Optional<Interaction> currentInteraction() // <.>
-
+  Optional<Interaction> currentInteraction()     // <.>
   Interaction currentInteractionElseFail()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/inject/ServiceInjector.adoc b/antora/components/system/modules/generated/pages/index/applib/services/inject/ServiceInjector.adoc
index 93fe115..11ab3ce 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/inject/ServiceInjector.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/inject/ServiceInjector.adoc
@@ -1,17 +1,16 @@
-= ServiceInjector : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Resolves injection points using the ServiceRegistry.
 
 Implementation must be thread-safe.
 
-.Java Sources
+== API
+
+.ServiceInjector.java
 [source,java]
 ----
 interface ServiceInjector {
-
   T injectServicesInto(final T domainObject, Consumer<InjectionPoint> onNotResolvable)
-
   T injectServicesInto(final T domainObject)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/jaxb/JaxbService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/jaxb/JaxbService.adoc
index 97ef9fb..b04e305 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/jaxb/JaxbService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/jaxb/JaxbService.adoc
@@ -1,23 +1,17 @@
-= JaxbService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.JaxbService.java
 [source,java]
 ----
 interface JaxbService {
-
   Object fromXml(JAXBContext jaxbContext, String xml)
-
   Object fromXml(JAXBContext jaxbContext, String xml, Map<String, Object> unmarshallerProperties)
-
-  T fromXml(Class<T> domainClass, String xml) // <.>
-
-  T fromXml(Class<T> domainClass, String xml, Map<String, Object> unmarshallerProperties) // <.>
-
+  T fromXml(Class<T> domainClass, String xml)     // <.>
+  T fromXml(Class<T> domainClass, String xml, Map<String, Object> unmarshallerProperties)     // <.>
   String toXml(Object domainObject)
-
   String toXml(Object domainObject, Map<String, Object> marshallerProperties)
-
   Map<String, String> toXsd(Object domainObject, IsisSchemas isisSchemas)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutService.adoc
index 1517344..889e51b 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutService.adoc
@@ -1,16 +1,14 @@
-= LayoutService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.LayoutService.java
 [source,java]
 ----
 interface LayoutService {
-
-  String toXml(Class<?> domainClass, Style style) // <.>
-
-  byte[] toZip(final Style style) // <.>
-
-  String toMenuBarsXml(final MenuBarsService.Type type) // <.>
+  String toXml(Class<?> domainClass, Style style)     // <.>
+  byte[] toZip(final Style style)     // <.>
+  String toMenuBarsXml(final MenuBarsService.Type type)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutServiceMenu.adoc b/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutServiceMenu.adoc
index 9872266..0593ad0 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutServiceMenu.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutServiceMenu.adoc
@@ -1,24 +1,18 @@
-= LayoutServiceMenu : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.LayoutServiceMenu.java
 [source,java]
 ----
 class LayoutServiceMenu {
-
   @Inject
 LayoutService layoutService;
-
   LayoutServiceMenu()
-
   Blob downloadLayouts(final LayoutService.Style style)
-
   LayoutService.Style default0DownloadLayouts()
-
   Clob downloadMenuBarsLayout(final String fileName, final MenuBarsService.Type type)
-
   String default0DownloadMenuBarsLayout()
-
   MenuBarsService.Type default1DownloadMenuBarsLayout()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/linking/DeepLinkService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/linking/DeepLinkService.adoc
index 792cbad..fed12eb 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/linking/DeepLinkService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/linking/DeepLinkService.adoc
@@ -1,16 +1,16 @@
-= DeepLinkService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 A service that creates a web link to any domain object in one of the Isis viewers.
 
 The implementation is specific to the viewer(s) configured for Isis. At the time of writing only one implementation is available, for the Wicket viewer.
 
-.Java Sources
+== API
+
+.DeepLinkService.java
 [source,java]
 ----
 interface DeepLinkService {
-
-  URI deepLinkFor(Object domainObject) // <.>
+  URI deepLinkFor(Object domainObject)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsLoaderService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsLoaderService.adoc
index 9c179ab..a335724 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsLoaderService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsLoaderService.adoc
@@ -1,14 +1,13 @@
-= MenuBarsLoaderService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MenuBarsLoaderService.java
 [source,java]
 ----
 interface MenuBarsLoaderService {
-
-  boolean supportsReloading() // <.>
-
-  BS3MenuBars menuBars() // <.>
+  boolean supportsReloading()     // <.>
+  BS3MenuBars menuBars()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsService.adoc
index 0e6f0f6..3edebd7 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/menu/MenuBarsService.adoc
@@ -1,13 +1,12 @@
-= MenuBarsService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MenuBarsService.java
 [source,java]
 ----
 interface MenuBarsService {
-
-  MenuBars menuBars() // <.>
-
+  MenuBars menuBars()     // <.>
   MenuBars menuBars(final Type type)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/message/MessageService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/message/MessageService.adoc
index e2f2f8d..af0f6f6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/message/MessageService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/message/MessageService.adoc
@@ -1,28 +1,20 @@
-= MessageService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MessageService.java
 [source,java]
 ----
 interface MessageService {
-
-  void informUser(String message) // <.>
-
-  String informUser(TranslatableString message, final Class<?> contextClass, final String contextMethod) // <.>
-
-  String informUser(TranslatableString message, final String translationContext) // <.>
-
-  void warnUser(String message) // <.>
-
-  String warnUser(TranslatableString message, final Class<?> contextClass, final String contextMethod) // <.>
-
-  String warnUser(TranslatableString message, final String translationContext) // <.>
-
-  void raiseError(String message) // <.>
-
-  String raiseError(TranslatableString message, final Class<?> contextClass, final String contextMethod) // <.>
-
-  String raiseError(TranslatableString message, final String translationContext) // <.>
+  void informUser(String message)     // <.>
+  String informUser(TranslatableString message, final Class<?> contextClass, final String contextMethod)     // <.>
+  String informUser(TranslatableString message, final String translationContext)     // <.>
+  void warnUser(String message)     // <.>
+  String warnUser(TranslatableString message, final Class<?> contextClass, final String contextMethod)     // <.>
+  String warnUser(TranslatableString message, final String translationContext)     // <.>
+  void raiseError(String message)     // <.>
+  String raiseError(TranslatableString message, final Class<?> contextClass, final String contextMethod)     // <.>
+  String raiseError(TranslatableString message, final String translationContext)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/BeanSort.adoc b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/BeanSort.adoc
index 98fc8f9..93c84c3 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/BeanSort.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/BeanSort.adoc
@@ -1,45 +1,29 @@
-= BeanSort : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Top level object classification.
 
-.Java Sources
+== API
+
+.BeanSort.java
 [source,java]
 ----
 enum BeanSort {
-
-  VIEW_MODEL // <.>
-
-  ENTITY // <.>
-
-  MANAGED_BEAN_CONTRIBUTING // <.>
-
-  MANAGED_BEAN_NOT_CONTRIBUTING // <.>
-
-  MIXIN // <.>
-
-  VALUE // <.>
-
-  COLLECTION // <.>
-
+  VIEW_MODEL     // <.>
+  ENTITY     // <.>
+  MANAGED_BEAN_CONTRIBUTING     // <.>
+  MANAGED_BEAN_NOT_CONTRIBUTING     // <.>
+  MIXIN     // <.>
+  VALUE     // <.>
+  COLLECTION     // <.>
   UNKNOWN
-
   boolean isManagedBean()
-
   boolean isMixin()
-
   boolean isViewModel()
-
   boolean isValue()
-
   boolean isCollection()
-
   boolean isEntity()
-
   boolean isUnknown()
-
   boolean isToBeIntrospected()
-
   boolean isWrappingSupported()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/DomainMember.adoc b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/DomainMember.adoc
index e28015f..f716808 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/DomainMember.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/DomainMember.adoc
@@ -1,37 +1,24 @@
-= DomainMember : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.DomainMember.java
 [source,java]
 ----
 interface DomainMember {
-
   String getClassType()
-
   String getClassName()
-
   String getPackageName()
-
   String getType()
-
   String getMemberName()
-
   String getNumParams()
-
   boolean isMixedIn()
-
   String getMixin()
-
   String getHidden()
-
   String getDisabled()
-
   String getValidate()
-
   String getChoices()
-
   String getAutoComplete()
-
   String getDefault()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/DomainModel.adoc b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/DomainModel.adoc
index 41feffb..ba1b47e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/DomainModel.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/DomainModel.adoc
@@ -1,11 +1,11 @@
-= DomainModel : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.DomainModel.java
 [source,java]
 ----
 interface DomainModel {
-
   List<DomainMember> getDomainMembers()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelService.adoc
index 985778c..a118193 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelService.adoc
@@ -1,29 +1,22 @@
-= MetaModelService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 This service provides a formal API into Isis' metamodel.
 
 This API is currently extremely limited, but the intention is to extend it gradually as use cases emerge.
 
-.Java Sources
+== API
+
+.MetaModelService.java
 [source,java]
 ----
 interface MetaModelService {
-
-  Class<?> fromObjectType(final String objectType) // <.>
-
-  String toObjectType(final Class<?> domainType) // <.>
-
+  Class<?> fromObjectType(final String objectType)     // <.>
+  String toObjectType(final Class<?> domainType)     // <.>
   void rebuild(final Class<?> domainType)
-
-  DomainModel getDomainModel() // <.>
-
+  DomainModel getDomainModel()     // <.>
   BeanSort sortOf(Class<?> domainType, Mode mode)
-
   BeanSort sortOf(Bookmark bookmark, Mode mode)
-
   CommandDtoProcessor commandDtoProcessorFor(String logicalMemberIdentifier)
-
   MetamodelDto exportMetaModel(final Config config)
 }
 ----
@@ -31,12 +24,12 @@ interface MetaModelService {
 <.> `[teal]#*fromObjectType*#(String objectType)` : `Class<?>`
 +
 --
-Provides a reverse lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis'ObjectSpecIdFacet).
+Provides a reverse lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis' `ObjectSpecIdFacet).
 --
 <.> `[teal]#*toObjectType*#(Class<?> domainType)` : `String`
 +
 --
-Provides a lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis'ObjectSpecIdFacet).
+Provides a lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis' `ObjectSpecIdFacet).
 --
 <.> `[teal]#*getDomainModel*#()` : `xref:system:generated:index/applib/services/metamodel/DomainModel.adoc[DomainModel]`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelServiceMenu.adoc b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelServiceMenu.adoc
index 2162e61..351b743 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelServiceMenu.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/MetaModelServiceMenu.adoc
@@ -1,35 +1,24 @@
-= MetaModelServiceMenu : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MetaModelServiceMenu.java
 [source,java]
 ----
 class MetaModelServiceMenu {
-
   final MimeType mimeTypeTextCsv;
-
   final MimeType mimeTypeTextXml;
-
   @Inject
 MetaModelService metaModelService;
-
   @Inject
 JaxbService jaxbService;
-
   MetaModelServiceMenu()
-
   Clob downloadMetaModelCsv(final String csvFileName)
-
   String default0DownloadMetaModelCsv()
-
   Clob downloadMetaModelXml(final String fileName, final List<String> packages, final boolean ignoreInterfaces)
-
   String validateDownloadMetaModelXml(final String fileName, final List<String> packagePrefixes, final boolean ignoreInterfaces)
-
   String default0DownloadMetaModelXml()
-
   List<String> choices1DownloadMetaModelXml()
-
   boolean default2DownloadMetaModelXml()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/metrics/MetricsService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/metrics/MetricsService.adoc
index 0066349..f83e294 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/metrics/MetricsService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/metrics/MetricsService.adoc
@@ -1,14 +1,13 @@
-= MetricsService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.MetricsService.java
 [source,java]
 ----
 interface MetricsService {
-
-  int numberEntitiesLoaded() // <.>
-
-  int numberEntitiesDirtied() // <.>
+  int numberEntitiesLoaded()     // <.>
+  int numberEntitiesDirtied()     // <.>
 }
 ----
 
@@ -17,7 +16,7 @@ interface MetricsService {
 --
 The number of entities that have, so far in this request, been loaded from the database.
 
-Corresponds to the number of times thatjavax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)(or equivalent) is fired.
+Corresponds to the number of times that `javax.jdo.listener.LoadLifecycleListener#postLoad(InstanceLifecycleEvent)(or equivalent) is fired.
 
 Is captured within _MemberExecutionDto#getMetrics()_ (accessible from _InteractionContext#currentInteraction()_ ).
 --
@@ -26,7 +25,7 @@ Is captured within _MemberExecutionDto#getMetrics()_ (accessible from _Interacti
 --
 The number of objects that have, so far in this request, been dirtied/will need updating in the database); a good measure of the footprint of the interaction.
 
-Corresponds to the number of times thatjavax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)(or equivalent) callback is fired.
+Corresponds to the number of times that `javax.jdo.listener.DirtyLifecycleListener#preDirty(InstanceLifecycleEvent)(or equivalent) callback is fired.
 
 Is captured within _MemberExecutionDto#getMetrics()_ (accessible from _InteractionContext#currentInteraction()_ .
 --
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/CommandLogger.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/CommandLogger.adoc
index 7d2ad3f..165c71f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/CommandLogger.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/CommandLogger.adoc
@@ -1,13 +1,12 @@
-= CommandLogger : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.CommandLogger.java
 [source,java]
 ----
 class CommandLogger {
-
   boolean isEnabled()
-
   void onCompleted(Command command)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/EntityChangesLogger.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/EntityChangesLogger.adoc
index 655560b..d0b8d6e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/EntityChangesLogger.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/EntityChangesLogger.adoc
@@ -1,13 +1,12 @@
-= EntityChangesLogger : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.EntityChangesLogger.java
 [source,java]
 ----
 class EntityChangesLogger {
-
   boolean isEnabled()
-
   void onChanging(final EntityChanges changingEntities)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/EntityPropertyChangeLogger.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/EntityPropertyChangeLogger.adoc
index 6f29861..b98f2ef 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/EntityPropertyChangeLogger.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/EntityPropertyChangeLogger.adoc
@@ -1,13 +1,12 @@
-= EntityPropertyChangeLogger : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.EntityPropertyChangeLogger.java
 [source,java]
 ----
 class EntityPropertyChangeLogger {
-
   boolean isEnabled()
-
   void onChanging(final EntityPropertyChange entityPropertyChange)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/ExecutionLogger.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/ExecutionLogger.adoc
index 60608d7..c0b10cb 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/ExecutionLogger.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/log/ExecutionLogger.adoc
@@ -1,13 +1,12 @@
-= ExecutionLogger : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ExecutionLogger.java
 [source,java]
 ----
 class ExecutionLogger {
-
   boolean isEnabled()
-
   void onExecution(final Interaction.Execution<?, ?> execution)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/CommandSubscriber.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/CommandSubscriber.adoc
index 27e3106..5fd1f2e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/CommandSubscriber.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/CommandSubscriber.adoc
@@ -1,14 +1,14 @@
-= CommandSubscriber : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Part of the _Publishing SPI_ . A component to receive xref:system:generated:index/applib/services/command/Command.adoc[Command] s (with publishing enabled) that just completed.
 
-.Java Sources
+== API
+
+.CommandSubscriber.java
 [source,java]
 ----
 interface CommandSubscriber {
-
-  void onCompleted(Command command) // <.>
+  void onCompleted(Command command)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChanges.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChanges.adoc
index 724cf98..331e578 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChanges.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChanges.adoc
@@ -1,23 +1,17 @@
-= EntityChanges : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.EntityChanges.java
 [source,java]
 ----
 interface EntityChanges {
-
   Timestamp getCompletedAt()
-
   int getNumberLoaded()
-
   int getNumberCreated()
-
   int getNumberUpdated()
-
   int getNumberDeleted()
-
   int getNumberPropertiesModified()
-
   ChangesDto getDto()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChangesSubscriber.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChangesSubscriber.adoc
index 0bc0185..6bfc73c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChangesSubscriber.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityChangesSubscriber.adoc
@@ -1,14 +1,14 @@
-= EntityChangesSubscriber : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Part of the _Publishing SPI_ . A component to receive the entire set of entities (with publishing enabled) that are about to change, serializable as ChangesDto.
 
-.Java Sources
+== API
+
+.EntityChangesSubscriber.java
 [source,java]
 ----
 interface EntityChangesSubscriber {
-
-  void onChanging(EntityChanges entityChanges) // <.>
+  void onChanging(EntityChanges entityChanges)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChange.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChange.adoc
index 98310a4..e867efb 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChange.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChange.adoc
@@ -1,13 +1,13 @@
-= EntityPropertyChange : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Immutable data record for xref:system:generated:index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc[EntityPropertyChangeSubscriber] s.
 
-.Java Sources
+== API
+
+.EntityPropertyChange.java
 [source,java]
 ----
 class EntityPropertyChange {
-
   String toString()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc
index 3cb6789..be2e3c1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/EntityPropertyChangeSubscriber.adoc
@@ -1,14 +1,14 @@
-= EntityPropertyChangeSubscriber : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Part of the _Publishing SPI_ . A component to receive pre-post property values for each changed entity (with publishing enabled).
 
-.Java Sources
+== API
+
+.EntityPropertyChangeSubscriber.java
 [source,java]
 ----
 interface EntityPropertyChangeSubscriber {
-
-  void onChanging(EntityPropertyChange entityPropertyChange) // <.>
+  void onChanging(EntityPropertyChange entityPropertyChange)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/ExecutionSubscriber.adoc b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/ExecutionSubscriber.adoc
index f8634ac..fd496b7 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/ExecutionSubscriber.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/publishing/spi/ExecutionSubscriber.adoc
@@ -1,14 +1,14 @@
-= ExecutionSubscriber : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 SPI that allows individual interactions (action invocations or property edits) to be _#onExecution(Interaction.Execution) published_ . Note that re-publishing is not part of this SPI.
 
-.Java Sources
+== API
+
+.ExecutionSubscriber.java
 [source,java]
 ----
 interface ExecutionSubscriber {
-
-  void onExecution(Interaction.Execution<?, ?> execution) // <.>
+  void onExecution(Interaction.Execution<?, ?> execution)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultCacheControl.adoc b/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultCacheControl.adoc
index b2b1652..0fa06ff 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultCacheControl.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultCacheControl.adoc
@@ -1,11 +1,11 @@
-= QueryResultCacheControl : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.QueryResultCacheControl.java
 [source,java]
 ----
 interface QueryResultCacheControl {
-
   boolean isIgnoreCache()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultsCache.adoc b/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultsCache.adoc
index f4234dd..d2f875a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultsCache.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultsCache.adoc
@@ -1,29 +1,22 @@
-= QueryResultsCache : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 This service (API and implementation) provides a mechanism by which idempotent query results can be cached for the duration of an interaction. Most commonly this allows otherwise "naive" - eg that makes a repository call many times within a loop - to be performance tuned. The benefit is that the algorithm of the business logic can remain easy to understand.
 
 This implementation has no UI and there is only one implementation (this class) in applib, it is annotated with _org.apache.isis.applib.annotation.DomainService_ . This means that it is automatically registered and available for use; no further configuration is required.
 
-.Java Sources
+== API
+
+.QueryResultsCache.java
 [source,java]
 ----
 interface QueryResultsCache {
-
   T execute(Callable<T> callable, Class<?> callingClass, String methodName, Object... keys)
-
-  void onTransactionEnded() // <.>
-
+  void onTransactionEnded()     // <.>
   R execute(MethodReferences.Call0<? extends R> action, Class<?> callingClass, String methodName)
-
   R execute(MethodReferences.Call1<? extends R, A0> action, Class<?> callingClass, String methodName, A0 arg0)
-
   R execute(MethodReferences.Call2<? extends R, A0, A1> action, Class<?> callingClass, String methodName, A0 arg0, A1 arg1)
-
   R execute(MethodReferences.Call3<? extends R, A0, A1, A2> action, Class<?> callingClass, String methodName, A0 arg0, A1 arg1, A2 arg2)
-
   R execute(MethodReferences.Call4<? extends R, A0, A1, A2, A3> action, Class<?> callingClass, String methodName, A0 arg0, A1 arg1, A2 arg2, A3 arg3)
-
   R execute(MethodReferences.Call5<? extends R, A0, A1, A2, A3, A4> action, Class<?> callingClass, String methodName, A0 arg0, A1 arg1, A2 arg2, A3 arg3, A4 arg4)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/registry/ServiceRegistry.adoc b/antora/components/system/modules/generated/pages/index/applib/services/registry/ServiceRegistry.adoc
index aa89170..55a8f45 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/registry/ServiceRegistry.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/registry/ServiceRegistry.adoc
@@ -1,27 +1,19 @@
-= ServiceRegistry : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.ServiceRegistry.java
 [source,java]
 ----
 interface ServiceRegistry {
-
-  Can<T> select(Class<T> type, Annotation[] qualifiers) // <.>
-
-  Can<T> select(final Class<T> type) // <.>
-
-  Stream<_ManagedBeanAdapter> streamRegisteredBeansOfType(Class<?> requiredType) // <.>
-
-  Stream<_ManagedBeanAdapter> streamRegisteredBeans() // <.>
-
-  Optional<_ManagedBeanAdapter> lookupRegisteredBeanById(String id) // <.>
-
-  _ManagedBeanAdapter lookupRegisteredBeanByIdElseFail(String id) // <.>
-
+  Can<T> select(Class<T> type, Annotation[] qualifiers)     // <.>
+  Can<T> select(final Class<T> type)     // <.>
+  Stream<_ManagedBeanAdapter> streamRegisteredBeansOfType(Class<?> requiredType)     // <.>
+  Stream<_ManagedBeanAdapter> streamRegisteredBeans()     // <.>
+  Optional<_ManagedBeanAdapter> lookupRegisteredBeanById(String id)     // <.>
+  _ManagedBeanAdapter lookupRegisteredBeanByIdElseFail(String id)     // <.>
   Optional<?> lookupBeanById(final String id)
-
-  Optional<T> lookupService(final Class<T> serviceClass) // <.>
-
+  Optional<T> lookupService(final Class<T> serviceClass)     // <.>
   T lookupServiceElseFail(final Class<T> serviceClass)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/repository/EntityState.adoc b/antora/components/system/modules/generated/pages/index/applib/services/repository/EntityState.adoc
index 7d5acf9..d10ceff 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/repository/EntityState.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/repository/EntityState.adoc
@@ -1,25 +1,18 @@
-= EntityState : _enum_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.EntityState.java
 [source,java]
 ----
 enum EntityState {
-
   NOT_PERSISTABLE
-
   PERSISTABLE_ATTACHED
-
   PERSISTABLE_DETACHED
-
   PERSISTABLE_DESTROYED
-
   boolean isPersistable()
-
   boolean isAttached()
-
   boolean isDetached()
-
   boolean isDestroyed()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/repository/RepositoryService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/repository/RepositoryService.adoc
index 9a14d0b..59e3fbb 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/repository/RepositoryService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/repository/RepositoryService.adoc
@@ -1,54 +1,33 @@
-= RepositoryService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.RepositoryService.java
 [source,java]
 ----
 interface RepositoryService {
-
-  EntityState getEntityState(Object object) // <.>
-
-  T detachedEntity(T entity) // <.>
-
-  T persist(T domainObject) // <.>
-
-  T persistAndFlush(T domainObject) // <.>
-
-  void remove(Object domainObject) // <.>
-
-  void removeAndFlush(Object domainObject) // <.>
-
-  void removeAll(Class<T> cls) // <.>
-
-  List<T> allInstances(Class<T> ofType) // <.>
-
-  List<T> allInstances(Class<T> ofType, long start, long count) // <.>
-
-  List<T> allMatches(Class<T> ofType, Predicate<? super T> predicate) // <.>
-
-  List<T> allMatches(Class<T> ofType, Predicate<? super T> predicate, long start, long count) // <.>
-
-  List<T> allMatches(Query<T> query) // <.>
-
-  Optional<T> uniqueMatch(Class<T> ofType, Predicate<T> predicate) // <.>
-
-  Optional<T> uniqueMatch(Query<T> query) // <.>
-
-  Optional<T> firstMatch(Class<T> ofType, Predicate<T> predicate) // <.>
-
-  Optional<T> firstMatch(Query<T> query) // <.>
-
-  T refresh(T pojo) // <.>
-
-  T detach(T entity) // <.>
-
-  T detachedEntity(Class<T> ofType) // <.>
-
-  T instantiate(Class<T> ofType) // <.>
-
-  boolean isPersistent(Object domainObject) // <.>
-
-  boolean isDeleted(Object domainObject) // <.>
+  EntityState getEntityState(Object object)     // <.>
+  T detachedEntity(T entity)     // <.>
+  T persist(T domainObject)     // <.>
+  T persistAndFlush(T domainObject)     // <.>
+  void remove(Object domainObject)     // <.>
+  void removeAndFlush(Object domainObject)     // <.>
+  void removeAll(Class<T> cls)     // <.>
+  List<T> allInstances(Class<T> ofType)     // <.>
+  List<T> allInstances(Class<T> ofType, long start, long count)     // <.>
+  List<T> allMatches(Class<T> ofType, Predicate<? super T> predicate)     // <.>
+  List<T> allMatches(Class<T> ofType, Predicate<? super T> predicate, long start, long count)     // <.>
+  List<T> allMatches(Query<T> query)     // <.>
+  Optional<T> uniqueMatch(Class<T> ofType, Predicate<T> predicate)     // <.>
+  Optional<T> uniqueMatch(Query<T> query)     // <.>
+  Optional<T> firstMatch(Class<T> ofType, Predicate<T> predicate)     // <.>
+  Optional<T> firstMatch(Query<T> query)     // <.>
+  T refresh(T pojo)     // <.>
+  T detach(T entity)     // <.>
+  T detachedEntity(Class<T> ofType)     // <.>
+  T instantiate(Class<T> ofType)     // <.>
+  boolean isPersistent(Object domainObject)     // <.>
+  boolean isDeleted(Object domainObject)     // <.>
 }
 ----
 
@@ -206,7 +185,7 @@ due to ambiguous semantic, use _#getEntityState(Object)_ instead
 
 Determines if the specified object is persistent (that it is stored permanently outside of the virtual machine in the object store).
 
-This method can also returntrueif the object has been _#isDeleted(Object) deleted_ from the object store.
+This method can also return `trueif the object has been _#isDeleted(Object) deleted_ from the object store.
 --
 <.> `[line-through gray]#*isDeleted*#(Object domainObject)` : `boolean`
 +
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/routing/RoutingService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/routing/RoutingService.adoc
index fd21cc0..73eb8a6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/routing/RoutingService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/routing/RoutingService.adoc
@@ -1,15 +1,14 @@
-= RoutingService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Provides the ability to return (and therefore have rendered) an alternative object from an action invocation.
 
-.Java Sources
+== API
+
+.RoutingService.java
 [source,java]
 ----
 interface RoutingService {
-
   boolean canRoute(Object original)
-
   Object route(Object original)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/scratchpad/Scratchpad.adoc b/antora/components/system/modules/generated/pages/index/applib/services/scratchpad/Scratchpad.adoc
index 5938429..93be836 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/scratchpad/Scratchpad.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/scratchpad/Scratchpad.adoc
@@ -1,18 +1,17 @@
-= Scratchpad : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 This service (API and implementation) provides a mechanism to interchange information between multiple objects invoked in the same interaction. Most commonly this will be as the result of invoking a bulk action.
 
 This implementation has only one implementation (this class) in applib, so it is annotated with _org.apache.isis.applib.annotation.DomainService_ . This means that it is automatically registered and available for use; no further configuration is required.
 
-.Java Sources
+== API
+
+.Scratchpad.java
 [source,java]
 ----
 interface Scratchpad {
-
-  Object get(Object key) // <.>
-
-  void put(Object key, Object value) // <.>
+  Object get(Object key)     // <.>
+  void put(Object key, Object value)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/session/SessionLoggingService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/session/SessionLoggingService.adoc
index 270d5ab..7187331 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/session/SessionLoggingService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/session/SessionLoggingService.adoc
@@ -1,13 +1,13 @@
-= SessionLoggingService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Similar to the _org.apache.isis.applib.services.publishing.spi.EntityPropertyChangeSubscriber_ , this defines an API to track the status of the current sessions ("users logged on") on the system.
 
-.Java Sources
+== API
+
+.SessionLoggingService.java
 [source,java]
 ----
 interface SessionLoggingService {
-
   void log(Type type, String username, Date date, CausedBy causedBy, String sessionId)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/session/SessionLoggingServiceLogging.adoc b/antora/components/system/modules/generated/pages/index/applib/services/session/SessionLoggingServiceLogging.adoc
index 70a28c5..5781aa6 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/session/SessionLoggingServiceLogging.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/session/SessionLoggingServiceLogging.adoc
@@ -1,11 +1,11 @@
-= SessionLoggingServiceLogging : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.SessionLoggingServiceLogging.java
 [source,java]
 ----
 class SessionLoggingServiceLogging {
-
   void log(final Type type, final String username, final Date date, final CausedBy causedBy, final String sessionId)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/sudo/SudoService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/sudo/SudoService.adoc
index 97bce57..7e848d4 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/sudo/SudoService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/sudo/SudoService.adoc
@@ -1,18 +1,16 @@
-= SudoService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Intended only for use by fixture scripts and integration tests, allows a block of code to execute while the xref:system:generated:index/applib/services/user/UserService.adoc[UserService] 's _UserService#currentUser() getUser()_ method returns the specified user/role as the effective user.
 
-.Java Sources
+== API
+
+.SudoService.java
 [source,java]
 ----
 interface SudoService {
-
-  RoleMemento ACCESS_ALL_ROLE; // <.>
-
-  T call(UnaryOperator<ExecutionContext> sudoMapper, Callable<T> supplier) // <.>
-
-  void run(final UnaryOperator<ExecutionContext> sudoMapper, final ThrowingRunnable runnable) // <.>
+  RoleMemento ACCESS_ALL_ROLE;     // <.>
+  T call(UnaryOperator<ExecutionContext> sudoMapper, Callable<T> supplier)     // <.>
+  void run(final UnaryOperator<ExecutionContext> sudoMapper, final ThrowingRunnable runnable)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/swagger/SwaggerService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/swagger/SwaggerService.adoc
index d421789..33e3782 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/swagger/SwaggerService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/swagger/SwaggerService.adoc
@@ -1,13 +1,13 @@
-= SwaggerService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 The xref:system:generated:index/applib/services/swagger/SwaggerService.adoc[SwaggerService] generates Swagger schema definition files to describe the public and/or private RESTful APIs exposed by the RestfulObjects viewer.
 
-.Java Sources
+== API
+
+.SwaggerService.java
 [source,java]
 ----
 interface SwaggerService {
-
   String generateSwaggerSpec(final Visibility visibility, final Format format)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/tablecol/TableColumnOrderForCollectionTypeAbstract.adoc b/antora/components/system/modules/generated/pages/index/applib/services/tablecol/TableColumnOrderForCollectionTypeAbstract.adoc
index 78a8791..1e1e49e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/tablecol/TableColumnOrderForCollectionTypeAbstract.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/tablecol/TableColumnOrderForCollectionTypeAbstract.adoc
@@ -1,13 +1,12 @@
-= TableColumnOrderForCollectionTypeAbstract : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.TableColumnOrderForCollectionTypeAbstract.java
 [source,java]
 ----
 class TableColumnOrderForCollectionTypeAbstract {
-
   List<String> orderParented(final Object parent, final String collectionId, final Class<?> collectionType, final List<String> propertyIds)
-
   List<String> orderStandalone(final Class<?> collectionType, final List<String> propertyIds)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/tablecol/TableColumnOrderService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/tablecol/TableColumnOrderService.adoc
index 155c5a0..d6c4b64 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/tablecol/TableColumnOrderService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/tablecol/TableColumnOrderService.adoc
@@ -1,13 +1,12 @@
-= TableColumnOrderService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.TableColumnOrderService.java
 [source,java]
 ----
 interface TableColumnOrderService {
-
   List<String> orderParented(final Object parent, final String collectionId, final Class<?> collectionType, final List<String> propertyIds)
-
   List<String> orderStandalone(final Class<?> collectionType, final List<String> propertyIds)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/title/TitleService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/title/TitleService.adoc
index b6dfa85..317f4f2 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/title/TitleService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/title/TitleService.adoc
@@ -1,14 +1,13 @@
-= TitleService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.TitleService.java
 [source,java]
 ----
 interface TitleService {
-
-  String titleOf(Object domainObject) // <.>
-
-  String iconNameOf(Object domainObject) // <.>
+  String titleOf(Object domainObject)     // <.>
+  String iconNameOf(Object domainObject)     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/urlencoding/UrlEncodingService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/urlencoding/UrlEncodingService.adoc
index a0b357e..8163b8c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/urlencoding/UrlEncodingService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/urlencoding/UrlEncodingService.adoc
@@ -1,17 +1,14 @@
-= UrlEncodingService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.UrlEncodingService.java
 [source,java]
 ----
 interface UrlEncodingService {
-
   String encode(final byte[] bytes)
-
   byte[] decode(String str)
-
   String encodeString(final String str)
-
   String decodeToString(final String str)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/urlencoding/UrlEncodingServiceUsingBaseEncodingAbstract.adoc b/antora/components/system/modules/generated/pages/index/applib/services/urlencoding/UrlEncodingServiceUsingBaseEncodingAbstract.adoc
index 6d447d7..abae96f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/urlencoding/UrlEncodingServiceUsingBaseEncodingAbstract.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/urlencoding/UrlEncodingServiceUsingBaseEncodingAbstract.adoc
@@ -1,13 +1,12 @@
-= UrlEncodingServiceUsingBaseEncodingAbstract : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
-.Java Sources
+== API
+
+.UrlEncodingServiceUsingBaseEncodingAbstract.java
 [source,java]
 ----
 class UrlEncodingServiceUsingBaseEncodingAbstract {
-
   String encode(final byte[] bytes)
-
   byte[] decode(final String str)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/user/RoleMemento.adoc b/antora/components/system/modules/generated/pages/index/applib/services/user/RoleMemento.adoc
index cb4274c..8eebfa3 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/user/RoleMemento.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/user/RoleMemento.adoc
@@ -1,17 +1,15 @@
-= RoleMemento : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Immutable serializable value held by xref:system:generated:index/applib/services/user/UserMemento.adoc[UserMemento] .
 
-.Java Sources
+== API
+
+.RoleMemento.java
 [source,java]
 ----
 class RoleMemento {
-
-  RoleMemento(final String name) // <.>
-
-  RoleMemento(final String name, final String description) // <.>
-
+  RoleMemento(final String name)     // <.>
+  RoleMemento(final String name, final String description)     // <.>
   String title()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/user/UserMemento.adoc b/antora/components/system/modules/generated/pages/index/applib/services/user/UserMemento.adoc
index 117dd65..fd922f1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/user/UserMemento.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/user/UserMemento.adoc
@@ -1,39 +1,26 @@
-= UserMemento : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Immutable serializable value holding details about a user and its roles.
 
-.Java Sources
+== API
+
+.UserMemento.java
 [source,java]
 ----
 class UserMemento {
-
-  UserMemento(final String name, final Stream<RoleMemento> roles) // <.>
-
-  UserMemento system() // <.>
-
-  UserMemento ofName(final String name) // <.>
-
-  UserMemento ofNameAndRoles(final String name, final RoleMemento... roles) // <.>
-
-  UserMemento ofNameAndRoleNames(final String name, final String... roleNames) // <.>
-
-  UserMemento ofNameAndRoleNames(final String name, final Stream<String> roleNames) // <.>
-
+  UserMemento(final String name, final Stream<RoleMemento> roles)     // <.>
+  UserMemento system()     // <.>
+  UserMemento ofName(final String name)     // <.>
+  UserMemento ofNameAndRoles(final String name, final RoleMemento... roles)     // <.>
+  UserMemento ofNameAndRoleNames(final String name, final String... roleNames)     // <.>
+  UserMemento ofNameAndRoleNames(final String name, final Stream<String> roleNames)     // <.>
   String title()
-
   List<RoleMemento> getRoles()
-
-  boolean isCurrentUser(final String userName) // <.>
-
+  boolean isCurrentUser(final String userName)     // <.>
   Stream<String> streamRoleNames()
-
   boolean hasRoleName(final String roleName)
-
   String toString()
-
   boolean equals(Object obj)
-
   int hashCode()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/user/UserService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/user/UserService.adoc
index b4f2b89..445664c 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/user/UserService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/user/UserService.adoc
@@ -1,24 +1,20 @@
-= UserService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 The xref:system:generated:index/applib/services/user/UserService.adoc[UserService] allows the domain object to obtain the identity of the user interacting with said object.
 
 If xref:system:generated:index/applib/services/sudo/SudoService.adoc[SudoService] has been used to temporarily override the user and/or roles, then this service will report the overridden values instead.
 
-.Java Sources
+== API
+
+.UserService.java
 [source,java]
 ----
 interface UserService {
-
-  Optional<UserMemento> currentUser() // <.>
-
-  UserMemento getUser() // <.>
-
-  UserMemento currentUserElseFail() // <.>
-
-  Optional<String> currentUserName() // <.>
-
-  String currentUserNameElseNobody() // <.>
+  Optional<UserMemento> currentUser()     // <.>
+  UserMemento getUser()     // <.>
+  UserMemento currentUserElseFail()     // <.>
+  Optional<String> currentUserName()     // <.>
+  String currentUserNameElseNobody()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/userprof/UserProfileService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/userprof/UserProfileService.adoc
index 74c6837..639380e 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/userprof/UserProfileService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/userprof/UserProfileService.adoc
@@ -1,16 +1,16 @@
-= UserProfileService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Optional API providing details about the user.
 
 Used by the Wicket viewer in its _org.apache.isis.applib.annotation.DomainServiceLayout.MenuBar#TERTIARY tertiary_ "Me" menu bar.
 
-.Java Sources
+== API
+
+.UserProfileService.java
 [source,java]
 ----
 interface UserProfileService {
-
-  String userProfileName() // <.>
+  String userProfileName()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/userreg/EmailNotificationService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/userreg/EmailNotificationService.adoc
index ef770b1..b1857af 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/userreg/EmailNotificationService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/userreg/EmailNotificationService.adoc
@@ -1,20 +1,18 @@
-= EmailNotificationService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Supporting service for the user-registration functionality.
 
-The framework provides a default implementation which in turn uses the _org.apache.isis.applib.services.email.EmailService_ , namelyEmailServiceDefault.
+The framework provides a default implementation which in turn uses the _org.apache.isis.applib.services.email.EmailService_ , namely `EmailServiceDefault.
 
-.Java Sources
+== API
+
+.EmailNotificationService.java
 [source,java]
 ----
 interface EmailNotificationService {
-
   boolean send(EmailRegistrationEvent ev)
-
   boolean send(PasswordResetEvent ev)
-
-  boolean isConfigured() // <.>
+  boolean isConfigured()     // <.>
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserDetails.adoc b/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserDetails.adoc
index f784c7e..e676d0a 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserDetails.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserDetails.adoc
@@ -1,9 +1,10 @@
-= UserDetails : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 A model object for the signup page
 
-.Java Sources
+== API
+
+.UserDetails.java
 [source,java]
 ----
 class UserDetails {
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserRegistrationService.adoc b/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserRegistrationService.adoc
index 0ca86ab..9b40d6f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserRegistrationService.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/userreg/UserRegistrationService.adoc
@@ -1,21 +1,18 @@
-= UserRegistrationService : _interface_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Required API to enable users to register an account on the system (aka "sign up").
 
-User registration also requires that the xref:system:generated:index/applib/services/userreg/EmailNotificationService.adoc[EmailNotificationService] and _org.apache.isis.applib.services.email.EmailService_ to be configured. The framework provides default implementations of both of these services. The notification service requires no further configuration. The email service (EmailServiceDefault) _does_ require a couple of configuration properties to be set (specifying the SMTP mail server [...]
+User registration also requires that the xref:system:generated:index/applib/services/userreg/EmailNotificationService.adoc[EmailNotificationService] and _org.apache.isis.applib.services.email.EmailService_ to be configured. The framework provides default implementations of both of these services. The notification service requires no further configuration. The email service ( `EmailServiceDefault) _does_ require a couple of configuration properties to be set (specifying the SMTP mail serv [...]
 
-.Java Sources
+== API
+
+.UserRegistrationService.java
 [source,java]
 ----
 interface UserRegistrationService {
-
   boolean usernameExists(String username)
-
   boolean emailExists(String emailAddress)
-
   void registerUser(UserDetails userDetails)
-
   boolean updatePasswordByEmail(String emailAddress, String password)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/EmailEventAbstract.adoc b/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/EmailEventAbstract.adoc
index 3e5f9fb..33734ea 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/EmailEventAbstract.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/EmailEventAbstract.adoc
@@ -1,19 +1,16 @@
-= EmailEventAbstract : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 An event sent to all services interested in user registration
 
-.Java Sources
+== API
+
+.EmailEventAbstract.java
 [source,java]
 ----
 class EmailEventAbstract {
-
   EmailEventAbstract(final String email, final String confirmationUrl, final String applicationName)
-
   String getEmail()
-
   String getConfirmationUrl()
-
   String getApplicationName()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/EmailRegistrationEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/EmailRegistrationEvent.adoc
index e3bcdb3..d0bacaa 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/EmailRegistrationEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/EmailRegistrationEvent.adoc
@@ -1,13 +1,13 @@
-= EmailRegistrationEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 An event send to all services interested in user registration
 
-.Java Sources
+== API
+
+.EmailRegistrationEvent.java
 [source,java]
 ----
 class EmailRegistrationEvent {
-
   EmailRegistrationEvent(final String email, final String confirmationUrl, final String applicationName)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/PasswordResetEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/PasswordResetEvent.adoc
index f578a8b..51086a3 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/PasswordResetEvent.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/userreg/events/PasswordResetEvent.adoc
@@ -1,13 +1,13 @@
-= PasswordResetEvent : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 An event send to all services interested in user password reset
 
-.Java Sources
+== API
+
+.PasswordResetEvent.java
 [source,java]
 ----
 class PasswordResetEvent {
-
   PasswordResetEvent(final String email, final String confirmationUrl, final String applicationName)
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/DisabledException.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/DisabledException.adoc
index 0272fba..b8e1041 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/DisabledException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/DisabledException.adoc
@@ -1,15 +1,14 @@
-= DisabledException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Superclass of exceptions which indicate an attempt to interact with a class member that is disabled.
 
-.Java Sources
+== API
+
+.DisabledException.java
 [source,java]
 ----
 class DisabledException {
-
   DisabledException(final InteractionEvent interactionEvent)
-
   UsabilityEvent getInteractionEvent()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/HiddenException.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/HiddenException.adoc
index f6dc43d..6d819d9 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/HiddenException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/HiddenException.adoc
@@ -1,15 +1,14 @@
-= HiddenException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Superclass of exceptions which indicate an attempt to interact with a class member that is in some way hidden or invisible.
 
-.Java Sources
+== API
+
+.HiddenException.java
 [source,java]
 ----
 class HiddenException {
-
   HiddenException(final InteractionEvent interactionEvent)
-
   VisibilityEvent getInteractionEvent()
 }
 ----
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/InvalidException.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/InvalidException.adoc
index 57b0b37..eb40f3f 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/wrapper/InvalidException.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/InvalidException.adoc
@@ -1,15 +1,14 @@
-= InvalidException : _class_
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
 Superclass of exceptions which indicate an attempt to interact with an object or member in a way that is invalid.
 
-.Java Sources
+== API
+
+.InvalidException.java
 [source,java]
 ----
... 28898 lines suppressed ...


[isis] 10/12: ISIS-2526: reorganises UnitFormatter hierarchy

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

danhaywood pushed a commit to branch ISIS-2444
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 6f8b11e13f5615751eb9e1e1760541aabae7ffa4
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Feb 7 11:59:42 2021 +0000

    ISIS-2526: reorganises UnitFormatter hierarchy
---
 .../org/apache/isis/tooling/cli/CliConfig.java     |  20 ++
 .../isis/tooling/cli/projdoc/ProjectDocModel.java  |   4 +-
 .../apache/isis/tooling/j2adoc/J2AdocContext.java  |   5 +-
 .../j2adoc/convert/J2AdocConverterAbstract.java    |  17 +-
 ...erWithSourceAndFootNotes.java => Snippets.java} |  88 +++----
 .../j2adoc/format/UnitFormatterAbstract.java       | 265 ++++++++-------------
 .../j2adoc/format/UnitFormatterCompact.java        |  48 +++-
 .../format/UnitFormatterWithSourceAndCallouts.java | 115 +++++++++
 .../format/UnitFormatterWithSourceAndSections.java |  98 ++++++++
 .../isis/tooling/model4adoc/AsciiDocFactory.java   |   4 +-
 .../tooling/model4adoc/test/ast/FootnoteTest.java  |  24 +-
 11 files changed, 424 insertions(+), 264 deletions(-)

diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
index e6352eb..7471acf 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/CliConfig.java
@@ -25,8 +25,13 @@ import java.util.Optional;
 import org.yaml.snakeyaml.constructor.ConstructorException;
 
 import org.apache.isis.commons.internal.resources._Yaml;
+import org.apache.isis.tooling.j2adoc.format.UnitFormatter;
+import org.apache.isis.tooling.j2adoc.format.UnitFormatterCompact;
+import org.apache.isis.tooling.j2adoc.format.UnitFormatterWithSourceAndCallouts;
+import org.apache.isis.tooling.j2adoc.format.UnitFormatterWithSourceAndSections;
 
 import lombok.Data;
+import lombok.Getter;
 import lombok.NonNull;
 
 @Data
@@ -94,6 +99,21 @@ public class CliConfig {
             private boolean skipTitleHeader = false;
             private boolean memberSections = false;
 
+            public enum Formatter {
+                COMPACT(UnitFormatterCompact.class),
+                JAVA_SOURCES_WITH_CALLOUTS(UnitFormatterWithSourceAndCallouts.class),
+                JAVA_SOURCES_WITH_SECTIONS(UnitFormatterWithSourceAndSections.class),
+                ;
+
+                @Getter
+                private final Class<? extends UnitFormatter> unitFormatterClass;
+                Formatter(Class<? extends UnitFormatter> unitFormatterClass) {
+                    this.unitFormatterClass = unitFormatterClass;
+                }
+            }
+
+            private Formatter formatter = Formatter.JAVA_SOURCES_WITH_SECTIONS;
+
             public File getDocumentIndexFolder(File outputRootFolder) {
                 return Optional.ofNullable(outputRootFolder)
                         .map(root->new File(root, getDocumentGlobalIndexPath()))
diff --git a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
index 2176ae6..d79e3f1 100644
--- a/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
+++ b/tooling/cli/src/main/java/org/apache/isis/tooling/cli/projdoc/ProjectDocModel.java
@@ -47,7 +47,7 @@ import org.apache.isis.tooling.c4.C4;
 import org.apache.isis.tooling.cli.CliConfig;
 import org.apache.isis.tooling.cli.adocfix.OrphanedIncludeStatementFixer;
 import org.apache.isis.tooling.j2adoc.J2AdocContext;
-import org.apache.isis.tooling.j2adoc.format.UnitFormatterWithSourceAndFootNotes;
+import org.apache.isis.tooling.j2adoc.format.UnitFormatterWithSourceAndCallouts;
 import org.apache.isis.tooling.javamodel.AnalyzerConfigFactory;
 import org.apache.isis.tooling.javamodel.ast.CodeClasses;
 import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
@@ -106,7 +106,7 @@ public class ProjectDocModel {
         val j2aContext = J2AdocContext.builder()
                 //.compactFormat()
 //                .javaSourceWithFootnotesFormat()
-                .formatterFactory(UnitFormatterWithSourceAndFootNotes::new)
+                .formatterFactory(UnitFormatterWithSourceAndCallouts::new)
                 .licenseHeader(cliConfig.getGlobal().getLicenseHeader())
                 .xrefPageIdFormat(cliConfig.getCommands().getIndex().getDocumentGlobalIndexXrefPageIdFormat())
                 .namespacePartsSkipCount(cliConfig.getGlobal().getNamespacePartsSkipCount())
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
index 2414d36..e777533 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/J2AdocContext.java
@@ -35,10 +35,7 @@ import org.apache.isis.commons.internal.collections._Multimaps;
 import org.apache.isis.commons.internal.collections._Multimaps.ListMultimap;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.tooling.j2adoc.J2AdocUnit.LookupKey;
-import org.apache.isis.tooling.j2adoc.convert.J2AdocConverter;
 import org.apache.isis.tooling.j2adoc.format.UnitFormatter;
-import org.apache.isis.tooling.j2adoc.format.UnitFormatterCompact;
-import org.apache.isis.tooling.j2adoc.format.UnitFormatterWithSourceAndFootNotes;
 import org.apache.isis.tooling.javamodel.ast.ImportDeclarations;
 
 import lombok.Builder;
@@ -253,7 +250,7 @@ public class J2AdocContext {
 //    public static J2AdocContextBuilder javaSourceWithFootnotesFormat() {
 //        return J2AdocContext.builder()
 //                .converterFactory(J2AdocConverter::createDefault)
-//                .formatterFactory(UnitFormatterWithSourceAndFootNotes::new)
+//                .formatterFactory(UnitFormatterWithSourceAndCallouts::new)
 //                ;
 //    }
 //
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverterAbstract.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverterAbstract.java
index ba51965..fe7d55e 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverterAbstract.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/convert/J2AdocConverterAbstract.java
@@ -23,17 +23,11 @@ import java.util.stream.Stream;
 
 import javax.annotation.Nullable;
 
-import com.github.javaparser.ast.body.AnnotationMemberDeclaration;
-import com.github.javaparser.ast.body.ConstructorDeclaration;
-import com.github.javaparser.ast.body.EnumConstantDeclaration;
-import com.github.javaparser.ast.body.FieldDeclaration;
-import com.github.javaparser.ast.body.MethodDeclaration;
 import com.github.javaparser.ast.body.Parameter;
 import com.github.javaparser.ast.expr.SimpleName;
 import com.github.javaparser.ast.type.ClassOrInterfaceType;
 import com.github.javaparser.ast.type.Type;
 import com.github.javaparser.ast.type.TypeParameter;
-import com.github.javaparser.javadoc.Javadoc;
 import com.github.javaparser.javadoc.description.JavadocDescription;
 import com.github.javaparser.javadoc.description.JavadocInlineTag;
 import com.github.javaparser.javadoc.description.JavadocSnippet;
@@ -42,16 +36,8 @@ import org.asciidoctor.ast.Document;
 import org.jsoup.Jsoup;
 
 import org.apache.isis.commons.collections.Can;
-import org.apache.isis.commons.internal._Constants;
 import org.apache.isis.tooling.j2adoc.J2AdocContext;
 import org.apache.isis.tooling.j2adoc.J2AdocUnit;
-import org.apache.isis.tooling.javamodel.ast.AnnotationMemberDeclarations;
-import org.apache.isis.tooling.javamodel.ast.ConstructorDeclarations;
-import org.apache.isis.tooling.javamodel.ast.EnumConstantDeclarations;
-import org.apache.isis.tooling.javamodel.ast.FieldDeclarations;
-import org.apache.isis.tooling.javamodel.ast.Javadocs;
-import org.apache.isis.tooling.javamodel.ast.MethodDeclarations;
-import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
 
 import lombok.NonNull;
 import lombok.val;
@@ -64,7 +50,6 @@ public abstract class J2AdocConverterAbstract implements J2AdocConverter {
         this.j2aContext = j2aContext;
     }
 
-
     protected String parameters(
             final @NonNull Stream<Parameter> parameterStream,
             final @NonNull J2AdocUnit unit) {
@@ -152,7 +137,7 @@ public abstract class J2AdocConverterAbstract implements J2AdocConverter {
                 .orElse(typeSimpleName);
     }
 
-    private String javadocSnippet(final @NonNull JavadocSnippet snippet) {
+    private static String javadocSnippet(final @NonNull JavadocSnippet snippet) {
         return snippet.toText();
     }
 
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndFootNotes.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/Snippets.java
similarity index 64%
rename from tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndFootNotes.java
rename to tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/Snippets.java
index 27636c7..d5846f7 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndFootNotes.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/Snippets.java
@@ -28,6 +28,8 @@ import org.asciidoctor.ast.StructuralNode;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.tooling.j2adoc.J2AdocContext;
 import org.apache.isis.tooling.j2adoc.J2AdocUnit;
+import org.apache.isis.tooling.j2adoc.convert.J2AdocConverter;
+import org.apache.isis.tooling.j2adoc.convert.J2AdocConverterDefault;
 import org.apache.isis.tooling.javamodel.ast.AnnotationMemberDeclarations;
 import org.apache.isis.tooling.javamodel.ast.ConstructorDeclarations;
 import org.apache.isis.tooling.javamodel.ast.EnumConstantDeclarations;
@@ -38,49 +40,62 @@ import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
 
 import lombok.NonNull;
 import lombok.val;
+import lombok.experimental.UtilityClass;
 
-public class UnitFormatterWithSourceAndFootNotes
-extends UnitFormatterAbstract {
+@UtilityClass
+public class Snippets {
 
-    public UnitFormatterWithSourceAndFootNotes(final @NonNull J2AdocContext j2aContext) {
-        super(j2aContext);
+    public static String title(final J2AdocUnit unit) {
+        final String format = formatFor(unit);
+        return String.format(format,
+                        unit.getFriendlyName());
     }
 
-    protected Optional<String> javaSource(final J2AdocUnit unit) {
+    private static String formatFor(J2AdocUnit unit) {
+        switch (unit.getTypeDeclaration().getKind()) {
+            case ANNOTATION: return "@%s";
+            case CLASS: return "%s";
+            case ENUM: return "%s _(enum)_";
+            case INTERFACE: return "%s _(interface)_";
+            default:
+                throw new IllegalArgumentException(String.format(
+                        "unknown kind: %s", unit.getTypeDeclaration().getKind()));
+        }
+    }
 
-        val java = new StringBuilder();
+    public static String javaSourceFor(J2AdocUnit unit) {
+        val buf = new StringBuilder();
 
-        java.append(String.format("%s %s {\n",
+        buf.append(String.format("%s %s {\n",
                 unit.getDeclarationKeyword(),
                 unit.getSimpleName()));
 
-        appendJavaSourceMemberFormat(java,
+        appendJavaSourceMemberFormat(buf,
                 unit.getTypeDeclaration().getEnumConstantDeclarations(),
                 EnumConstantDeclarations::asNormalized);
 
-        appendJavaSourceMemberFormat(java,
+        appendJavaSourceMemberFormat(buf,
                 unit.getTypeDeclaration().getPublicFieldDeclarations(),
                 FieldDeclarations::asNormalized);
 
-        appendJavaSourceMemberFormat(java,
+        appendJavaSourceMemberFormat(buf,
                 unit.getTypeDeclaration().getAnnotationMemberDeclarations(),
                 AnnotationMemberDeclarations::asNormalized);
 
-        appendJavaSourceMemberFormat(java,
+        appendJavaSourceMemberFormat(buf,
                 unit.getTypeDeclaration().getPublicConstructorDeclarations(),
                 ConstructorDeclarations::asNormalized);
 
-        appendJavaSourceMemberFormat(java,
+        appendJavaSourceMemberFormat(buf,
                 unit.getTypeDeclaration().getPublicMethodDeclarations(),
                 MethodDeclarations::asNormalized);
 
-        java.append("}\n");
+        buf.append("}\n");
 
-        return Optional.of(
-                AsciiDocFactory.SourceFactory.java(java.toString(), unit.getCanonicalName() + ".java"));
+        return buf.toString();
     }
 
-    private <T extends NodeWithJavadoc<?>> void appendJavaSourceMemberFormat(
+    private static<T extends NodeWithJavadoc<?>> void appendJavaSourceMemberFormat(
             final StringBuilder java,
             final Can<T> declarations,
             final Function<T, String> normalizer) {
@@ -92,51 +107,12 @@ extends UnitFormatterAbstract {
         });
     }
 
-//XXX java language syntax (for footnote text), but not used any more
-//
-//    @Override
-//    public String getEnumConstantFormat() {
-//        return "`%s`";
-//    }
-//
-//    @Override
-//    public String getFieldFormat() {
-//        return "`%s %s`";
-//    }
-//
-//    @Override
-//    public String getConstructorFormat() {
-//        return "`%s(%s)`";
-//    }
-//
-//    @Override
-//    public String getGenericConstructorFormat() {
-//        return "`%s %s(%s)`";
-//    }
-//
-//    @Override
-//    public String getMethodFormat() {
-//        return "`%s %s(%s)`";
-//    }
-//
-//    @Override
-//    public String getGenericMethodFormat() {
-//        return "`%s %s %s(%s)`";
-//    }
-
-    @Override
-    protected StructuralNode getMemberDescriptionContainer(StructuralNode parent) {
-        return AsciiDocFactory.footnotes(parent);
-    }
-
-    // -- HELPER
-
     enum Callout { INCLUDE, EXCLUDE;
         public static Callout when(boolean javadocPresent) {
             return javadocPresent ? INCLUDE : EXCLUDE;
         }
     }
-    private String javaSourceMemberFormat(final Callout callout) {
+    private static String javaSourceMemberFormat(final Callout callout) {
         return callout == Callout.INCLUDE
                 ? "  %s     // <.>\n"
                 : "  %s\n";
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
index a9707e5..25a4baa 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterAbstract.java
@@ -49,7 +49,7 @@ import lombok.val;
 public abstract class UnitFormatterAbstract
 implements UnitFormatter {
 
-    private final @NonNull J2AdocContext j2aContext;
+    protected final @NonNull J2AdocContext j2aContext;
 
     @Override
     public String getEnumConstantFormat() {
@@ -86,168 +86,13 @@ implements UnitFormatter {
         return "`%3$s%1$s(%4$s)` : `%2$s`";
     }
 
-    protected Optional<String> title(final J2AdocUnit unit) {
-        return Optional.of(
-                String.format(formatFor(unit),
-                        unit.getFriendlyName()));
-    }
-
-    private static String formatFor(J2AdocUnit unit) {
-        switch (unit.getTypeDeclaration().getKind()) {
-            case ANNOTATION: return "@%s";
-            case CLASS: return "%s";
-            case ENUM: return "%s _(enum)_";
-            case INTERFACE: return "%s _(interface)_";
-            default:
-                throw new IllegalArgumentException(String.format(
-                    "unknown kind: %s", unit.getTypeDeclaration().getKind()));
-        }
-    }
-
-    protected void intro(final J2AdocUnit unit, final StructuralNode parent) {
-        J2AdocConverter converter = J2AdocConverterDefault.of(j2aContext);
-
-        unit.getJavadoc()
-        .filter(javadoc->!Javadocs.hasHidden(javadoc))
-        .map(javadoc->converter.javadoc(javadoc, unit))
-        .ifPresent(doc->parent.getBlocks().addAll(doc.getBlocks()));
-    }
-
-    protected Optional<String> javaSource(final J2AdocUnit unit) {
-        return Optional.empty();
-    }
-
-    protected abstract StructuralNode getMemberDescriptionContainer(StructuralNode parent);
-
-    protected void appendMemberDescription(StructuralNode ul, String member, Document javadoc) {
-        val li = AsciiDocFactory.listItem((List) ul, member);
-        val openBlock = AsciiDocFactory.openBlock(li);
-        val javaDocBlock = AsciiDocFactory.block(openBlock);
-        javaDocBlock.getBlocks().addAll(javadoc.getBlocks());
-    }
-
-    protected void memberDescriptions(final J2AdocUnit unit, final StructuralNode doc) {
-
-        val ul = getMemberDescriptionContainer(doc);
-
-        if(! j2aContext.isMemberSections() || true) {
-
-            val converter = J2AdocConverterDefault.of(j2aContext);
-            appendMemberDescriptions(ul, unit,
-                    unit.getTypeDeclaration().getEnumConstantDeclarations(),
-                    decl -> converter.enumConstantDeclaration(decl),
-                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit)
-            );
-
-            appendMemberDescriptions(ul, unit,
-                    unit.getTypeDeclaration().getPublicFieldDeclarations(),
-                    decl -> converter.fieldDeclaration(decl, unit),
-                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-
-            appendMemberDescriptions(ul, unit,
-                    unit.getTypeDeclaration().getAnnotationMemberDeclarations(),
-                    decl -> converter.annotationMemberDeclaration(decl, unit),
-                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-
-            appendMemberDescriptions(ul, unit,
-                    unit.getTypeDeclaration().getPublicConstructorDeclarations(),
-                    decl -> converter.constructorDeclaration(decl, unit),
-                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-
-            appendMemberDescriptions(ul, unit,
-                    unit.getTypeDeclaration().getPublicMethodDeclarations(),
-                    decl -> converter.methodDeclaration(decl, unit),
-                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-
-        } else {
-
-//            var converter = J2AdocConverterDefault.of(j2aContext);
-//            appendMemberDescriptions(ul, unit,
-//                    unit.getTypeDeclaration().getEnumConstantDeclarations(),
-//                    decl -> converter.enumConstantDeclaration(decl),
-//                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit)
-//            );
-//
-//            appendMemberDescriptions(ul, unit,
-//                    unit.getTypeDeclaration().getPublicFieldDeclarations(),
-//                    decl -> converter.fieldDeclaration(decl, unit),
-//                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-//
-//            appendMemberDescriptions(ul, unit,
-//                    unit.getTypeDeclaration().getAnnotationMemberDeclarations(),
-//                    decl -> converter.annotationMemberDeclaration(decl, unit),
-//                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-//
-//            appendMemberDescriptions(ul, unit,
-//                    unit.getTypeDeclaration().getPublicConstructorDeclarations(),
-//                    decl -> converter.constructorDeclaration(decl, unit),
-//                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-//
-//            appendMemberDescriptions(ul, unit,
-//                    unit.getTypeDeclaration().getPublicMethodDeclarations(),
-//                    decl -> converter.methodDeclaration(decl, unit),
-//                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-
-            val titleBlock = block(doc);
-             titleBlock.setSource("== Members");
-
-//            val converter = J2AdocConverterDefault.of(j2aContext);
-//            appendMemberDescriptions(ul, unit,
-//                    unit.getTypeDeclaration().getEnumConstantDeclarations(),
-//                    decl -> converter.enumConstantDeclaration(decl),
-//                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit)
-//            );
-//
-//            appendMemberDescriptions(ul, unit,
-//                    unit.getTypeDeclaration().getPublicFieldDeclarations(),
-//                    decl -> converter.fieldDeclaration(decl, unit),
-//                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-//
-//            appendMemberDescriptions(ul, unit,
-//                    unit.getTypeDeclaration().getAnnotationMemberDeclarations(),
-//                    decl -> converter.annotationMemberDeclaration(decl, unit),
-//                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-//
-//            appendMemberDescriptions(ul, unit,
-//                    unit.getTypeDeclaration().getPublicConstructorDeclarations(),
-//                    decl -> converter.constructorDeclaration(decl, unit),
-//                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-//
-//            appendMemberDescriptions(ul, unit,
-//                    unit.getTypeDeclaration().getPublicMethodDeclarations(),
-//                    decl -> converter.methodDeclaration(decl, unit),
-//                    (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
-
-
-        }
-
-    }
-
-    private <T extends NodeWithJavadoc<?>> void appendMemberDescriptions(
-            final StructuralNode container,
-            final J2AdocUnit unit,
-            final Can<T> declarations,
-            final Function<T, String> memberDescriber,
-            final BiFunction<Javadoc, J2AdocUnit, Document> javadoc2Asciidocker) {
-
-        declarations.stream()
-        .filter(Javadocs::presentAndNotHidden)
-        .forEach(nwj->{
-            nwj.getJavadoc()
-            .ifPresent(javadoc->{
-                appendMemberDescription(container,
-                                memberDescriber.apply(nwj),
-                                javadoc2Asciidocker.apply(javadoc, unit));
-            });
-        });
-    }
-
-
-    protected Optional<String> outro(final J2AdocUnit unit) {
-        return Optional.empty();
-    }
-
 
+    /**
+     * Main algorithm for laying out a unit.
+     *
+     * @param unit
+     * @return
+     */
     @Override
     public Document apply(final J2AdocUnit unit) {
 
@@ -261,7 +106,7 @@ implements UnitFormatter {
 
         // -- license
 
-        _Strings.nonEmpty(getContext().getLicenseHeader())
+        _Strings.nonEmpty(j2aContext.getLicenseHeader())
         .ifPresent(notice->AsciiDocFactory.attrNotice(doc, notice));
 
 
@@ -290,15 +135,97 @@ implements UnitFormatter {
         return doc;
     }
 
-    // -- DEPENDENCIES
+    /**
+     * Mandatory hook method to return a representation of the java source (if any)
+     *
+     * @param unit
+     * @return
+     */
+    protected abstract Optional<String> javaSource(final J2AdocUnit unit);
+
+    /**
+     * Mandatory hook method to append representation of the members of the unit.
+     *
+     * @param unit
+     * @param doc
+     */
+    protected abstract void memberDescriptions(final J2AdocUnit unit, final StructuralNode doc);
 
-    protected final J2AdocContext getContext() {
-        return j2aContext;
+    protected Optional<String> title(final J2AdocUnit unit) {
+        return Optional.of(Snippets.title(unit));
     }
 
-//    protected final J2AdocConverter getConverter() {
-//        return j2aContext.getConverter();
-//    }
+    protected void intro(final J2AdocUnit unit, final StructuralNode parent) {
+        J2AdocConverter converter = J2AdocConverterDefault.of(j2aContext);
 
+        unit.getJavadoc()
+                .filter(javadoc->!Javadocs.hasHidden(javadoc))
+                .map(javadoc->converter.javadoc(javadoc, unit))
+                .ifPresent(doc->parent.getBlocks().addAll(doc.getBlocks()));
+    }
+
+    /**
+     * Helper method for use by subclasses; calls
+     * {@link #appendMemberToList(List, String, Document)}
+     * for all provided {@link NodeWithJavadoc declarations}, using the
+     * provided memberRepresenter and the provided strategy for converting the
+     * javadoc into Asciidoc.
+     *
+     * @param ul - the List within the Asciidoc document to append to.
+     * @param unit - the containing java unit
+     * @param declarations - the collection of {@link NodeWithJavadoc declarations} to process
+     * @param memberRepresenter - encodes which parts of the member are to be pulled out into a representation
+     * @param javadoc2Asciidocker - strategy for converting each node's javadoc into some Asciidoc
+     *
+     * @param <T> - the specific subtype of {@link NodeWithJavadoc}
+     */
+    protected <T extends NodeWithJavadoc<?>> void appendMembersToList(
+            final List ul,
+            final J2AdocUnit unit,
+            final Can<T> declarations,
+            final Function<T, String> memberRepresenter,
+            final BiFunction<Javadoc, J2AdocUnit, Document> javadoc2Asciidocker) {
+
+        declarations.stream()
+                .filter(Javadocs::presentAndNotHidden)
+                .forEach(nwj->{
+                    nwj.getJavadoc()
+                            .ifPresent(javadoc-> {
+                                final String memberRepresentation = memberRepresenter.apply(nwj);
+                                final Document asciidoc = javadoc2Asciidocker.apply(javadoc, unit);
+                                appendMemberToList(ul,
+                                        memberRepresentation,
+                                        asciidoc);
+                            });
+                });
+    }
+
+
+    /**
+     * Helper method called by {@link #appendMembersToList(List, J2AdocUnit, Can, Function, BiFunction)}.
+     *
+     * @param ul
+     * @param listItemText
+     * @param listItemParagraphs
+     */
+    private static void appendMemberToList(
+            final List ul,
+            final String listItemText,
+            final Document listItemParagraphs) {
+
+        val li = AsciiDocFactory.listItem(ul, listItemText);
+        val openBlock = AsciiDocFactory.openBlock(li);
+        val javaDocBlock = AsciiDocFactory.block(openBlock);
+        javaDocBlock.getBlocks().addAll(listItemParagraphs.getBlocks());
+    }
+
+    /**
+     * Hook method (with empty default implementation)
+     * @param unit
+     * @return
+     */
+    protected Optional<String> outro(final J2AdocUnit unit) {
+        return Optional.empty();
+    }
 
 }
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterCompact.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterCompact.java
index 4090874..c438f27 100644
--- a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterCompact.java
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterCompact.java
@@ -18,12 +18,18 @@
  */
 package org.apache.isis.tooling.j2adoc.format;
 
+import java.util.Optional;
+
+import org.asciidoctor.ast.List;
 import org.asciidoctor.ast.StructuralNode;
 
 import org.apache.isis.tooling.j2adoc.J2AdocContext;
-import org.apache.isis.tooling.j2adoc.convert.J2AdocConverter;
+import org.apache.isis.tooling.j2adoc.J2AdocUnit;
+import org.apache.isis.tooling.j2adoc.convert.J2AdocConverterDefault;
 import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
 
+import static org.apache.isis.tooling.model4adoc.AsciiDocFactory.block;
+
 import lombok.NonNull;
 import lombok.val;
 
@@ -35,8 +41,44 @@ extends UnitFormatterAbstract {
     }
 
     @Override
-    protected StructuralNode getMemberDescriptionContainer(StructuralNode parent) {
-        return AsciiDocFactory.list(parent);
+    protected Optional<String> javaSource(final J2AdocUnit unit) {
+        return Optional.empty();
+    }
+
+    @Override
+    protected void memberDescriptions(final J2AdocUnit unit, final StructuralNode doc) {
+
+        val ul = AsciiDocFactory.list(doc);
+
+        val converter = J2AdocConverterDefault.of(j2aContext);
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getEnumConstantDeclarations(),
+                decl -> converter.enumConstantDeclaration(decl),
+                (javadoc, j2Unit) -> converter.javadoc(javadoc, unit)
+        );
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getPublicFieldDeclarations(),
+                decl -> converter.fieldDeclaration(decl, unit),
+                (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getAnnotationMemberDeclarations(),
+                decl -> converter.annotationMemberDeclaration(decl, unit),
+                (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getPublicConstructorDeclarations(),
+                decl -> converter.constructorDeclaration(decl, unit),
+                (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getPublicMethodDeclarations(),
+                decl -> converter.methodDeclaration(decl, unit),
+                (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
+
     }
 
+
+
 }
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndCallouts.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndCallouts.java
new file mode 100644
index 0000000..b85f4eb
--- /dev/null
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndCallouts.java
@@ -0,0 +1,115 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.tooling.j2adoc.format;
+
+import java.util.Optional;
+
+import org.asciidoctor.ast.StructuralNode;
+
+import org.apache.isis.tooling.j2adoc.J2AdocContext;
+import org.apache.isis.tooling.j2adoc.J2AdocUnit;
+import org.apache.isis.tooling.j2adoc.convert.J2AdocConverterDefault;
+import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
+
+import static org.apache.isis.tooling.model4adoc.AsciiDocFactory.block;
+
+import lombok.NonNull;
+import lombok.val;
+
+public class UnitFormatterWithSourceAndCallouts
+extends UnitFormatterAbstract {
+
+    public UnitFormatterWithSourceAndCallouts(final @NonNull J2AdocContext j2aContext) {
+        super(j2aContext);
+    }
+
+    protected Optional<String> javaSource(final J2AdocUnit unit) {
+
+        final String javaSource = Snippets.javaSourceFor(unit);
+        return Optional.of(
+                AsciiDocFactory.SourceFactory.java(javaSource, unit.getCanonicalName() + ".java"));
+    }
+
+    @Override
+    protected void memberDescriptions(final J2AdocUnit unit, final StructuralNode doc) {
+
+        val ul = AsciiDocFactory.callouts(doc);
+
+        val converter = J2AdocConverterDefault.of(j2aContext);
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getEnumConstantDeclarations(),
+                decl -> converter.enumConstantDeclaration(decl),
+                (javadoc, j2Unit) -> converter.javadoc(javadoc, unit)
+        );
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getPublicFieldDeclarations(),
+                decl -> converter.fieldDeclaration(decl, unit),
+                (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getAnnotationMemberDeclarations(),
+                decl -> converter.annotationMemberDeclaration(decl, unit),
+                (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getPublicConstructorDeclarations(),
+                decl -> converter.constructorDeclaration(decl, unit),
+                (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getPublicMethodDeclarations(),
+                decl -> converter.methodDeclaration(decl, unit),
+                (javadoc, j2Unit) -> converter.javadoc(javadoc, unit));
+
+    }
+
+    //XXX java language syntax (for footnote text), but not used any more
+//
+//    @Override
+//    public String getEnumConstantFormat() {
+//        return "`%s`";
+//    }
+//
+//    @Override
+//    public String getFieldFormat() {
+//        return "`%s %s`";
+//    }
+//
+//    @Override
+//    public String getConstructorFormat() {
+//        return "`%s(%s)`";
+//    }
+//
+//    @Override
+//    public String getGenericConstructorFormat() {
+//        return "`%s %s(%s)`";
+//    }
+//
+//    @Override
+//    public String getMethodFormat() {
+//        return "`%s %s(%s)`";
+//    }
+//
+//    @Override
+//    public String getGenericMethodFormat() {
+//        return "`%s %s %s(%s)`";
+//    }
+
+}
diff --git a/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndSections.java b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndSections.java
new file mode 100644
index 0000000..0cb4e47
--- /dev/null
+++ b/tooling/java2adoc/src/main/java/org/apache/isis/tooling/j2adoc/format/UnitFormatterWithSourceAndSections.java
@@ -0,0 +1,98 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one
+ *  or more contributor license agreements.  See the NOTICE file
+ *  distributed with this work for additional information
+ *  regarding copyright ownership.  The ASF licenses this file
+ *  to you under the Apache License, Version 2.0 (the
+ *  "License"); you may not use this file except in compliance
+ *  with the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing,
+ *  software distributed under the License is distributed on an
+ *  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ *  KIND, either express or implied.  See the License for the
+ *  specific language governing permissions and limitations
+ *  under the License.
+ */
+package org.apache.isis.tooling.j2adoc.format;
+
+import java.util.Optional;
+import java.util.function.BiFunction;
+
+import com.github.javaparser.javadoc.Javadoc;
+
+import org.asciidoctor.ast.Document;
+import org.asciidoctor.ast.StructuralNode;
+
+import org.apache.isis.tooling.j2adoc.J2AdocContext;
+import org.apache.isis.tooling.j2adoc.J2AdocUnit;
+import org.apache.isis.tooling.j2adoc.convert.J2AdocConverterDefault;
+import org.apache.isis.tooling.model4adoc.AsciiDocFactory;
+
+import lombok.NonNull;
+import lombok.val;
+
+public class UnitFormatterWithSourceAndSections
+extends UnitFormatterAbstract {
+
+    public UnitFormatterWithSourceAndSections(final @NonNull J2AdocContext j2aContext) {
+        super(j2aContext);
+    }
+
+    protected Optional<String> javaSource(final J2AdocUnit unit) {
+
+        final String javaSource = Snippets.javaSourceFor(unit);
+        return Optional.of(
+                AsciiDocFactory.SourceFactory.java(javaSource, unit.getCanonicalName() + ".java"));
+    }
+
+    @Override
+    protected void memberDescriptions(final J2AdocUnit unit, final StructuralNode doc) {
+
+        val ul = AsciiDocFactory.callouts(doc);
+
+        var converter = J2AdocConverterDefault.of(j2aContext);
+        val strategy = new BiFunction<Javadoc, J2AdocUnit, Document>() {
+            @Override
+            public Document apply(Javadoc javadoc, J2AdocUnit j2Unit) {
+                return converter.javadoc(javadoc, unit);
+            }
+        };
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getEnumConstantDeclarations(),
+                decl -> converter.enumConstantDeclaration(decl),
+                strategy
+        );
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getPublicFieldDeclarations(),
+                decl -> converter.fieldDeclaration(decl, unit),
+                strategy);
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getAnnotationMemberDeclarations(),
+                decl -> converter.annotationMemberDeclaration(decl, unit),
+                strategy);
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getPublicConstructorDeclarations(),
+                decl -> converter.constructorDeclaration(decl, unit),
+                strategy);
+
+        appendMembersToList(ul, unit,
+                unit.getTypeDeclaration().getPublicMethodDeclarations(),
+                decl -> converter.methodDeclaration(decl, unit),
+                strategy);
+
+
+        val titleBlock = AsciiDocFactory.block(doc);
+        titleBlock.setSource("== Members");
+
+
+
+    }
+
+}
diff --git a/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java b/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java
index 434a299..40f263e 100644
--- a/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java
+++ b/tooling/model4adoc/src/main/java/org/apache/isis/tooling/model4adoc/AsciiDocFactory.java
@@ -148,13 +148,13 @@ public class AsciiDocFactory {
 
     // -- FOOTNOTES
 
-    public static org.asciidoctor.ast.List footnotes(StructuralNode parent) {
+    public static org.asciidoctor.ast.List callouts(StructuralNode parent) {
         val footnoteList = list(parent);
         footnoteList.setStyle("arabic");
         return footnoteList;
     }
 
-    public static ListItem footnote(org.asciidoctor.ast.List parent, @NonNull String source) {
+    public static ListItem callout(org.asciidoctor.ast.List parent, @NonNull String source) {
         return listItem(parent, source);
     }
 
diff --git a/tooling/model4adoc/src/test/java/org/apache/isis/tooling/model4adoc/test/ast/FootnoteTest.java b/tooling/model4adoc/src/test/java/org/apache/isis/tooling/model4adoc/test/ast/FootnoteTest.java
index b203cf9..fed4696 100644
--- a/tooling/model4adoc/src/test/java/org/apache/isis/tooling/model4adoc/test/ast/FootnoteTest.java
+++ b/tooling/model4adoc/src/test/java/org/apache/isis/tooling/model4adoc/test/ast/FootnoteTest.java
@@ -41,7 +41,7 @@ class FootnoteTest extends AbstractAsciiDocWriterTest {
         super.debugEnabled = false;
     }
 
-    
+
     //<.> fn-1
     //+
     //--
@@ -63,30 +63,30 @@ class FootnoteTest extends AbstractAsciiDocWriterTest {
     //--
     @Test
     void testFootnote() throws IOException {
-        
-        val footnotes = AsciiDocFactory.footnotes(doc);
-        val footnoteLI = AsciiDocFactory.footnote(footnotes, "fn-1");
+
+        val footnotes = AsciiDocFactory.callouts(doc);
+        val footnoteLI = AsciiDocFactory.callout(footnotes, "fn-1");
         val footnote = AsciiDocFactory.openBlock(footnoteLI);
-        
-        
+
+
         val note = AsciiDocFactory.warning(footnote);
         AsciiDocFactory.block(note, "warn-1");
         AsciiDocFactory.block(note, "warn-2");
-        
+
         AsciiDocFactory.block(footnote, "para-1");
         AsciiDocFactory.block(footnote, "para-2");
-        
+
         val nestedList = AsciiDocFactory.list(footnote);
         AsciiDocFactory.listItem(nestedList, "li-1");
         AsciiDocFactory.listItem(nestedList, "li-2");
-        
+
         AsciiDocFactory.block(footnote, "para-3");
-        
+
         AsciiDocFactory.tip(doc, "Here's something worth knowing...");
-        
+
         assertDocumentIsCorrectlyWritten(doc);
     }
-    
+
 
 
 }