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/14 10:19:21 UTC

[isis] branch ISIS-2444 updated (360b43d -> 5c9fb62)

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.


    from 360b43d  ISIS-2444: moves Execution out of Interaction so no longer a nested class.
     new 6d42991  ISIS-2444: regen docs and examples
     new 5c9fb62  ISIS-2444: further updates to ref guide (domain services)

The 2 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:
 .../generated/pages/index/applib/Identifier.adoc   |  18 +-
 .../index/applib/RecreatableDomainObject.adoc      |  12 +-
 .../generated/pages/index/applib/ViewModel.adoc    |  12 +-
 .../index/applib/adapters/DefaultsProvider.adoc    |   6 +-
 .../index/applib/adapters/EncoderDecoder.adoc      |  12 +-
 .../pages/index/applib/adapters/Parser.adoc        |  36 ++--
 .../applib/adapters/ValueSemanticsProvider.adoc    |  18 +-
 .../pages/index/applib/annotation/Action.adoc      |   4 +-
 .../index/applib/annotation/NatureOfService.adoc   |  12 +-
 .../pages/index/applib/annotation/Property.adoc    |   4 +-
 .../pages/index/applib/annotation/Publishing.adoc  |   2 +-
 .../pages/index/applib/annotation/SemanticsOf.adoc |  18 +-
 .../pages/index/applib/annotation/Where.adoc       |   6 +-
 .../pages/index/applib/clock/VirtualClock.adoc     |  66 +++---
 .../pages/index/applib/events/EventObjectBase.adoc |  18 +-
 .../applib/events/domain/AbstractDomainEvent.adoc  |  78 +++----
 .../applib/events/domain/ActionDomainEvent.adoc    |  30 +--
 .../events/domain/CollectionDomainEvent.adoc       |  12 +-
 .../index/applib/events/ui/AbstractUiEvent.adoc    |  12 +-
 .../index/applib/events/ui/CssClassUiEvent.adoc    |   6 +-
 .../pages/index/applib/events/ui/IconUiEvent.adoc  |  12 +-
 .../index/applib/events/ui/LayoutUiEvent.adoc      |   6 +-
 .../pages/index/applib/events/ui/TitleUiEvent.adoc |  12 +-
 .../applib/exceptions/TranslatableException.adoc   |  12 +-
 .../pages/index/applib/graph/tree/TreeAdapter.adoc |  18 +-
 .../pages/index/applib/graph/tree/TreeNode.adoc    |  30 +--
 .../pages/index/applib/graph/tree/TreePath.adoc    |  12 +-
 .../applib/layout/component/ActionLayoutData.adoc  |  24 +--
 .../layout/component/CollectionLayoutData.adoc     |  30 +--
 .../layout/component/DomainObjectLayoutData.adoc   |  18 +-
 .../index/applib/layout/component/FieldSet.adoc    |  36 ++--
 .../layout/component/PropertyLayoutData.adoc       |  24 +--
 .../layout/component/ServiceActionLayoutData.adoc  |  24 +--
 .../applib/layout/grid/bootstrap3/BS3Col.adoc      |  30 +--
 .../applib/layout/grid/bootstrap3/BS3Element.adoc  |   6 +-
 .../layout/grid/bootstrap3/BS3ElementAbstract.adoc |   6 +-
 .../applib/layout/grid/bootstrap3/BS3Grid.adoc     |   6 +-
 .../applib/layout/grid/bootstrap3/BS3Row.adoc      |  18 +-
 .../layout/grid/bootstrap3/BS3RowContent.adoc      |  12 +-
 .../applib/layout/grid/bootstrap3/BS3Tab.adoc      |   6 +-
 .../applib/layout/grid/bootstrap3/BS3TabGroup.adoc |  24 +--
 .../applib/layout/grid/bootstrap3/HasCssId.adoc    |   6 +-
 .../applib/layout/menubars/bootstrap3/BS3Menu.adoc |   6 +-
 .../layout/menubars/bootstrap3/BS3MenuBars.adoc    |   6 +-
 .../index/applib/mixins/dto/Dto_downloadXsd.adoc   |   4 +-
 .../mixins/layout/Object_downloadLayoutXml.adoc    |   4 +-
 .../generated/pages/index/applib/query/Query.adoc  |  18 +-
 .../pages/index/applib/query/QueryRange.adoc       |  36 ++--
 .../index/applib/services/DomainChangeRecord.adoc  |  54 ++---
 .../services/acceptheader/AcceptHeaderService.adoc |   6 +-
 .../index/applib/services/bookmark/Bookmark.adoc   |  12 +-
 .../applib/services/bookmark/BookmarkService.adoc  |  36 ++--
 .../services/bookmarkui/BookmarkUiService.adoc     |   6 +-
 .../index/applib/services/command/Command.adoc     |  30 +--
 .../services/command/CommandExecutorService.adoc   |   6 +-
 .../ContentMappingServiceForCommandsDto.adoc       |   6 +-
 .../commanddto/processor/CommandDtoProcessor.adoc  |   6 +-
 .../processor/spi/CommandDtoProcessorService.adoc  |   6 +-
 .../confview/ConfigurationViewService.adoc         |   6 +-
 .../services/conmap/ContentMappingService.adoc     |   6 +-
 .../index/applib/services/email/EmailService.adoc  |  12 +-
 .../index/applib/services/error/SimpleTicket.adoc  |   6 +-
 .../pages/index/applib/services/error/Ticket.adoc  |  30 +--
 .../applib/services/eventbus/EventBusService.adoc  |   6 +-
 .../index/applib/services/exceprecog/Category.adoc |  93 +++++++++
 .../services/exceprecog/ExceptionRecognizer.adoc   |   6 +-
 .../exceprecog/ExceptionRecognizerService.adoc     |  24 ++-
 .../applib/services/exceprecog/Recognition.adoc    |  75 +++++++
 .../applib/services/factory/FactoryService.adoc    |  70 ++++---
 .../applib/services/grid/GridLoaderService.adoc    |  44 ++--
 .../index/applib/services/grid/GridService.adoc    |  82 +++++---
 .../applib/services/grid/GridSystemService.adoc    |  98 +++++++--
 .../applib/services/health/HealthCheckService.adoc |   6 +
 .../index/applib/services/hint/HintIdProvider.adoc |  18 ++
 .../index/applib/services/hint/HintStore.adoc      |  69 ++++++-
 .../services/homepage/HomePageResolverService.adoc |   2 +-
 .../index/applib/services/i18n/LocaleProvider.adoc |  17 +-
 .../applib/services/i18n/TranslatableString.adoc   |  42 ++--
 .../applib/services/i18n/TranslationService.adoc   |  18 +-
 .../iactn/ActionInvocation.adoc}                   |   5 +-
 .../index/applib/services/iactn/Execution.adoc     |  96 +++++++++
 .../applib/services/iactn/ExecutionContext.adoc    |  48 ++++-
 .../index/applib/services/iactn/Interaction.adoc   |  55 +++--
 .../applib/services/iactn/InteractionContext.adoc  |   8 +-
 .../iactn/PropertyEdit.adoc}                       |   5 +-
 .../index/applib/services/iactn/Sequence.adoc      |  50 +++++
 .../index/applib/services/jaxb/JaxbService.adoc    |  86 ++++++--
 .../applib/services/layout/LayoutService.adoc      |  20 +-
 .../applib/services/layout/LayoutServiceMenu.adoc  |   6 +-
 .../pages/index/applib/services/layout/Style.adoc  |  80 ++++++++
 .../applib/services/linking/DeepLinkService.adoc   |   6 +-
 .../services/menu/MenuBarsLoaderService.adoc       |  24 ++-
 .../applib/services/menu/MenuBarsService.adoc      |  22 +-
 .../applib/services/message/MessageService.adoc    | 110 +++++-----
 .../index/applib/services/metamodel/Config.adoc    |  41 ++++
 .../services/metamodel/MetaModelService.adoc       |  86 ++++++--
 .../services/metamodel/MetaModelServiceMenu.adoc   |   2 +
 .../applib/services/metrics/MetricsService.adoc    |  12 +-
 .../services/publishing/log/ExecutionLogger.adoc   |   2 +-
 .../services/publishing/spi/CommandSubscriber.adoc |   6 +-
 .../services/publishing/spi/EntityChanges.adoc     | 115 ++++++++++-
 .../publishing/spi/EntityChangesSubscriber.adoc    |  10 +-
 .../spi/EntityPropertyChangeSubscriber.adoc        |   6 +-
 .../publishing/spi/ExecutionSubscriber.adoc        |  22 +-
 .../queryresultscache/QueryResultsCache.adoc       |   6 +-
 ...eControl.adoc => QueryResultsCacheControl.adoc} |   4 +-
 .../applib/services/registry/ServiceRegistry.adoc  |  42 ++--
 .../services/repository/RepositoryService.adoc     | 132 ++++++------
 .../applib/services/scratchpad/Scratchpad.adoc     |  12 +-
 .../index/applib/services/sudo/SudoService.adoc    |  12 +-
 .../index/applib/services/title/TitleService.adoc  |  12 +-
 .../index/applib/services/user/UserMemento.adoc    |  36 ++--
 .../index/applib/services/user/UserService.adoc    |  30 +--
 .../services/userprof/UserProfileService.adoc      |   6 +-
 .../services/userreg/EmailNotificationService.adoc |  18 +-
 .../applib/services/wrapper/WrapperFactory.adoc    |  66 +++---
 .../applib/services/wrapper/WrappingObject.adoc    |  18 +-
 .../services/wrapper/control/ControlAbstract.adoc  |   6 +-
 .../services/wrapper/control/ExceptionHandler.adoc |   6 +-
 .../services/wrapper/control/SyncControl.adoc      |   6 +-
 .../wrapper/events/ActionArgumentEvent.adoc        |   6 +-
 .../wrapper/events/ActionInvocationEvent.adoc      |   6 +-
 .../wrapper/events/CollectionAddToEvent.adoc       |   6 +-
 .../wrapper/events/CollectionMethodEvent.adoc      |  30 +--
 .../services/wrapper/events/InteractionEvent.adoc  |  78 +++----
 .../services/wrapper/events/ParseValueEvent.adoc   |   6 +-
 .../wrapper/events/PropertyModifyEvent.adoc        |   6 +-
 .../wrapper/listeners/InteractionListener.adoc     |  96 ++++-----
 .../applib/services/xactn/TransactionService.adoc  |  24 +--
 .../applib/services/xactn/TransactionState.adoc    |  24 +--
 .../services/xactn/TransactionalProcessor.adoc     |  36 ++--
 .../index/applib/services/xml/XmlService.adoc      |  24 +--
 .../services/xmlsnapshot/XmlSnapshotService.adoc   |  18 +-
 .../xmlsnapshot/XmlSnapshotService~Snapshot.adoc   |  12 +-
 .../XmlSnapshotService~Snapshot~Builder.adoc       |  18 +-
 .../snapshot/SnapshottableWithInclusions.adoc      |   6 +-
 .../index/applib/spec/AbstractSpecification.adoc   |   6 +-
 .../index/applib/spec/AbstractSpecification2.adoc  |   6 +-
 .../pages/index/applib/spec/Specification.adoc     |   6 +-
 .../pages/index/applib/spec/Specification2.adoc    |   6 +-
 .../pages/index/applib/util/ReasonBuffer.adoc      |  18 +-
 .../pages/index/applib/util/ReasonBuffer2.adoc     |  36 ++--
 .../pages/index/applib/util/TitleBuffer.adoc       | 108 +++++-----
 .../applib/util/schema/InteractionDtoUtils.adoc    |  30 +--
 .../generated/pages/index/applib/value/Blob.adoc   |  18 +-
 .../generated/pages/index/applib/value/Clob.adoc   |   6 +-
 .../generated/pages/index/applib/value/Markup.adoc |   6 +-
 .../pages/index/commons/collections/Can.adoc       | 204 +++++++++---------
 .../pages/index/commons/having/HasUniqueId.adoc    |   6 +-
 .../pages/index/commons/having/HasUsername.adoc    |   6 +-
 ...ceptionRecognizerForOtherDataAccessProblem.adoc |  14 --
 .../transaction/TransactionServiceSpring.adoc      |  18 +-
 .../changetracking/EntityChangeTrackerDefault.adoc |   6 +-
 .../impl/IsisModuleExtCommandLogImpl.adoc          |   6 +-
 .../impl/mixins/HasUniqueId_command.adoc           |   6 +-
 .../primary/restapi/CommandRetrievalService.adoc   |   6 +-
 .../primary/ui/CommandReplayOnPrimaryService.adoc  |  18 +-
 .../secondary/analyser/CommandReplayAnalyser.adoc  |   6 +-
 .../analysis/CommandReplayAnalysisService.adoc     |   6 +-
 .../secondary/clock/TickingClockService.adoc       |  12 +-
 .../secondary/fetch/CommandFetcher.adoc            |   6 +-
 .../spi/ReplayCommandExecutionController.adoc      |   6 +-
 .../fullcalendar/applib/CalendarEventable.adoc     |   6 +-
 .../fullcalendar/applib/Calendarable.adoc          |  12 +-
 .../quartz/context/JobExecutionData.adoc           |  12 +-
 .../extensions/restclient/ResponseDigest.adoc      |  60 +++---
 .../api/permission/ApplicationPermission.adoc      |   6 +-
 .../ApplicationPermissionRepository.adoc           |   6 +-
 .../permission/PermissionsEvaluationService.adoc   |   6 +-
 .../secman/api/role/ApplicationRole.adoc           |   6 +-
 .../secman/api/role/ApplicationRoleRepository.adoc |  12 +-
 .../api/tenancy/ApplicationTenancyEvaluator.adoc   |   6 +-
 .../api/tenancy/ApplicationTenancyRepository.adoc  |  12 +-
 .../secman/api/user/ApplicationUser.adoc           |   6 +-
 .../secman/api/user/ApplicationUserRepository.adoc |  12 +-
 .../shirorealmldap/realm/impl/IsisLdapRealm.adoc   |  12 +-
 .../jdo/applib/integration/JdoSupportService.adoc  |  42 ++--
 .../jdo/datanucleus/IsisModuleJdoDatanucleus.adoc  |  19 +-
 .../changetracking/JdoLifecycleListener.adoc       |  12 +-
 .../jdo/datanucleus/dialect/DnJdoDialect.adoc      |   3 +-
 .../jpa/applib/services/JpaSupportService.adoc     |  12 +-
 .../jpa/eclipselink/IsisModuleJpaEclipselink.adoc  |   1 -
 .../shiro/authorization/AuthorizorShiro.adoc       |  12 +-
 .../index/subdomains/base/applib/Chained.adoc      |  12 +-
 .../applib/services/calendar/CalendarService.adoc  |   6 +-
 .../subdomains/base/applib/utils/TitleBuilder.adoc |   6 +-
 .../base/applib/valuetypes/AbstractInterval.adoc   |  36 ++--
 .../base/applib/valuetypes/LocalDateInterval.adoc  |  12 +-
 .../subdomains/base/applib/valuetypes/VT.adoc      |   6 +-
 .../subdomains/base/applib/with/WithInterval.adoc  |  12 +-
 .../base/applib/with/WithIntervalContiguous.adoc   |  18 +-
 .../subdomains/excel/applib/dom/ExcelService.adoc  |  12 +-
 .../excel/applib/dom/util/ExcelServiceImpl.adoc    |  60 +++---
 .../excel/applib/dom/util/SheetPivoter.adoc        |   6 +-
 .../testing/fakedata/applib/services/Booleans.adoc |  12 +-
 .../fakedata/applib/services/Collections.adoc      |  12 +-
 .../fakedata/applib/services/FakeDataService.adoc  |   6 +-
 .../integtestsupport/applib/ThrowableMatchers.adoc |   6 +-
 .../applib/validate/DomainModelValidator.adoc      |  18 +-
 .../core/comparable/ComparableContractTester.adoc  |   6 +-
 .../unittestsupport/applib/core/files/Files.adoc   |   6 +-
 .../applib/core/jaxb/JaxbMatchers.adoc             |   6 +-
 .../applib/core/jmocking/Imposterisers.adoc        |   6 +-
 .../core/jmocking/InjectIntoJMockAction.adoc       |   6 +-
 .../applib/core/jmocking/JUnitRuleMockery2.adoc    |  36 ++--
 .../applib/core/soap/SoapEndpointSpec.adoc         |   6 +-
 .../applib/core/utils/IndentPrinter.adoc           |  30 +--
 .../markdown/applib/value/Converter.adoc           |   6 +-
 .../restfulobjects/applib/JsonRepresentation.adoc  | 228 ++++++++++-----------
 .../restfulobjects/applib/LinkRepresentation.adoc  |   6 +-
 .../index/viewer/restfulobjects/applib/Rel.adoc    |   6 +-
 .../restfulobjects/applib/RepresentationType.adoc  |  24 +--
 .../restfulobjects/applib/RestfulResponse.adoc     |   6 +-
 .../DomainObjectMemberRepresentation.adoc          |  18 +-
 .../domainobjects/DomainObjectRepresentation.adoc  |  30 +--
 .../domainobjects/DomainServiceResource.adoc       |   6 +-
 .../applib/homepage/HomePageResource.adoc          |   6 +-
 .../applib/menubars/MenuBarsResource.adoc          |  24 +--
 .../restfulobjects/applib/user/UserResource.adoc   |   6 +-
 .../restfulobjects/applib/util/JsonMapper.adoc     |   6 +-
 .../restfulobjects/applib/util/JsonNodeUtils.adoc  |   6 +-
 .../restfulobjects/applib/util/MediaTypes.adoc     |   6 +-
 .../RepresentationServiceContentNegotiator.adoc    |   6 +-
 ...entNegotiationServiceForRestfulObjectsV1_0.adoc |  18 +-
 .../ContentNegotiationServiceOrgApacheIsisV2.adoc  |  30 +--
 .../ContentNegotiationServiceXRoDomainType.adoc    |  12 +-
 .../modules/generated/pages/system-overview.adoc   | 219 ++++++++++++++++++--
 .../adoc/modules/applib-svc/pages/GridService.adoc |  71 +------
 .../GridService/hooks/examples_and_usage.adoc      |  23 ++-
 .../pages/GridService/hooks/implementation.adoc    |   2 +
 .../adoc/modules/applib-svc/pages/JaxbService.adoc |  49 +----
 .../JaxbService/hooks/examples_and_usage.adoc      |  13 ++
 .../pages/JaxbService/hooks/implementation.adoc    |   3 +
 .../modules/applib-svc/pages/LayoutService.adoc    |  98 +--------
 .../LayoutService/hooks/examples_and_usage.adoc    |  74 +++++++
 .../pages/LayoutService/hooks/implementation.adoc  |   2 +
 .../applib-svc/pages/LayoutServiceMenu.adoc        |  24 +--
 .../hooks/examples_and_usage.adoc                  |   4 +
 .../LayoutServiceMenu/hooks/implementation.adoc    |   2 +
 .../modules/applib-svc/pages/LocaleProvider.adoc   |  52 +----
 .../LocaleProvider/hooks/examples_and_usage.adoc   |  17 ++
 .../pages/LocaleProvider/hooks/implementation.adoc |   4 +
 .../applib-svc/pages/MenuBarsLoaderService.adoc    |  35 +---
 .../hooks/examples_and_usage.adoc                  |   3 +
 .../hooks/implementation.adoc                      |  19 ++
 .../modules/applib-svc/pages/MenuBarsService.adoc  |  38 +---
 .../MenuBarsService/hooks/examples_and_usage.adoc  |   3 +
 .../MenuBarsService/hooks/implementation.adoc      |   4 +
 .../modules/applib-svc/pages/MessageService.adoc   |  63 +-----
 .../MessageService/hooks/examples_and_usage.adoc   |  33 +++
 .../pages/MessageService/hooks/implementation.adoc |   2 +
 .../modules/applib-svc/pages/MetaModelService.adoc |  86 +-------
 .../MetaModelService/hooks/examples_and_usage.adoc |  10 +
 .../MetaModelService/hooks/implementation.adoc     |   2 +
 .../applib-svc/pages/MetaModelServiceMenu.adoc     |  25 +--
 .../modules/applib-svc/pages/MetricsService.adoc   |  43 +---
 .../MetricsService/hooks/examples_and_usage.adoc   |   8 +
 .../pages/MetricsService/hooks/implementation.adoc |   4 +
 .../applib-svc/pages/QueryResultsCache.adoc        |  95 +--------
 .../hooks/examples_and_usage.adoc                  |  53 ++++-
 .../QueryResultsCache/hooks/implementation.adoc    |   2 +
 .../applib-svc/pages/QueryResultsCacheControl.adoc |  30 +--
 .../hooks/implementation.adoc                      |   3 +
 .../applib-svc/pages/RepositoryService.adoc        |  27 +--
 .../hooks/examples_and_usage.adoc                  |   9 +
 .../modules/applib-svc/pages/RoutingService.adoc   |   8 +
 .../adoc/modules/applib-svc/pages/Scratchpad.adoc  |   7 +
 .../modules/applib-svc/pages/ServiceInjector.adoc  |   6 +
 .../modules/applib-svc/pages/ServiceRegistry.adoc  |   7 +
 .../applib-svc/pages/SessionLoggingService.adoc    |   7 +
 .../{about => Style}/hooks/examples_and_usage.adoc |   0
 .../hooks/implementation.adoc                      |   2 +
 .../adoc/modules/applib-svc/pages/SudoService.adoc |   8 +
 .../modules/applib-svc/pages/SwaggerService.adoc   |   7 +
 .../applib-svc/pages/TableColumnOrderService.adoc  |   8 +
 .../modules/applib-svc/pages/TitleService.adoc     |   8 +
 .../applib-svc/pages/TransactionService.adoc       |   9 +
 .../applib-svc/pages/TransactionalProcessor.adoc   |  13 +-
 .../hooks/examples_and_usage.adoc                  |   0
 .../hooks/implementation.adoc                      |   0
 .../applib-svc/pages/TranslationService.adoc       |   8 +
 .../applib-svc/pages/TranslationsResolver.adoc     |   8 +
 .../applib-svc/pages/UrlEncodingService.adoc       |   7 +
 .../applib-svc/pages/UserProfileService.adoc       |   7 +
 .../applib-svc/pages/UserRegistrationService.adoc  |   7 +
 .../adoc/modules/applib-svc/pages/UserService.adoc |   8 +
 .../modules/applib-svc/pages/WrapperFactory.adoc   |   7 +
 .../adoc/modules/applib-svc/pages/XmlService.adoc  |   7 +
 .../applib-svc/pages/XmlSnapshotService.adoc       |   7 +
 .../partials/_persistence-layer-api.adoc           |   8 +
 .../isis/applib/mixins/dto/Dto_downloadXsd.java    |   7 +-
 .../mixins/layout/Object_downloadLayoutXml.java    |   7 +-
 .../metamodel/Object_downloadMetamodelXml.java     |   3 +-
 .../isis/applib/services/grid/GridService.java     |  60 +++++-
 .../isis/applib/services/i18n/LocaleProvider.java  |   9 +
 .../jaxb/CatalogingSchemaOutputResolver.java       |   8 +-
 .../isis/applib/services/jaxb/IsisSchemas.java     |  32 +++
 .../isis/applib/services/jaxb/JaxbService.java     | 130 +++++++-----
 .../isis/applib/services/layout/LayoutService.java |  60 +-----
 .../applib/services/layout/LayoutServiceMenu.java  |   9 +-
 .../apache/isis/applib/services/layout/Style.java  |  61 ++++++
 .../services/menu/MenuBarsLoaderService.java       |  21 +-
 .../isis/applib/services/menu/MenuBarsService.java |  15 ++
 .../applib/services/message/MessageService.java    |  86 ++++++--
 .../isis/applib/services/metamodel/Config.java     | 115 +++++++++++
 .../services/metamodel/MetaModelService.java       | 152 +++++---------
 .../services/metamodel/MetaModelServiceMenu.java   |  11 +-
 .../applib/services/metrics/MetricsService.java    |   9 +
 .../queryresultscache/QueryResultsCache.java       |  24 ++-
 ...eControl.java => QueryResultsCacheControl.java} |  16 +-
 .../applib/services/repository/EntityState.java    |  37 ++++
 .../services/repository/RepositoryService.java     |   8 +-
 .../applib/services/xactn/TransactionService.java  |  18 +-
 .../bootstrap3/BS3MenuBars_roundtrip_Test.java     |   1 +
 .../isis/applib/services/jaxb/JaxbServiceTest.java |  20 +-
 .../metamodel/MetaModelService_Config_Test.java    |  12 +-
 build-tooling.sh                                   |   2 +-
 .../adoc/modules/config/pages/sections/Other.adoc  |   6 +-
 .../adoc/modules/config/pages/sections/_nav.adoc   |   2 -
 .../modules/config/pages/sections/isis.applib.adoc |   2 +-
 .../metamodel/facetapi/FacetWithAttributes.java    |   4 +-
 ...tySetterOrClearFacetForDomainEventAbstract.java |   2 +-
 .../metamodel/inspect/Object_inspectMetamodel.java |  17 +-
 .../services/layout/LayoutServiceDefault.java      |   5 +-
 .../services/metamodel/MetaModelExporter.java      |  46 ++---
 .../metamodel/MetaModelServiceDefault.java         |   1 +
 .../core/metamodel/services/grid/BS3GridTest.java  |   6 +-
 .../services/menubars/BS3MenuBarsTest.java         |  10 +-
 .../command/CommandExecutorServiceDefault.java     |   2 +-
 .../runtimeservices/jaxb/JaxbServiceDefault.java   |  14 +-
 .../QueryResultsCacheDefault.java                  |   8 +-
 ...utionListenerToCaptureInteractionsInMemory.java |   3 +-
 .../secondary/fetch/CommandFetcher.java            |   3 +-
 .../secondary/fetch/CommandFetcher_Test.java       |   7 +-
 .../publishing/jdo/JdoExecutionPublishingTest.java |  44 ++--
 .../publishing/ExecutionSubscriberForTesting.java  |  12 +-
 .../domainmodel/AnnotationSyntesizerTest.java      |   9 +-
 .../DomainModelTest_usingGoodDomain.java           | 107 +++++-----
 .../QueryResultsCacheControlDefault.java           |   4 +-
 .../modules/tooling-cli/examples/isis-tooling.yml  | 138 +++++++------
 .../format/UnitFormatterWithSourceAndSections.java |  26 ++-
 .../tooling/javamodel/ast/MethodDeclarations.java  |  47 ++++-
 342 files changed, 4659 insertions(+), 3313 deletions(-)
 create mode 100644 antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Category.adoc
 create mode 100644 antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Recognition.adoc
 create mode 100644 antora/components/system/modules/generated/pages/index/applib/services/hint/HintIdProvider.adoc
 copy antora/components/system/modules/generated/pages/index/applib/{IsisModuleApplib.adoc => services/iactn/ActionInvocation.adoc} (78%)
 create mode 100644 antora/components/system/modules/generated/pages/index/applib/services/iactn/Execution.adoc
 copy antora/components/system/modules/generated/pages/index/applib/{IsisModuleApplib.adoc => services/iactn/PropertyEdit.adoc} (79%)
 create mode 100644 antora/components/system/modules/generated/pages/index/applib/services/iactn/Sequence.adoc
 create mode 100644 antora/components/system/modules/generated/pages/index/applib/services/layout/Style.adoc
 create mode 100644 antora/components/system/modules/generated/pages/index/applib/services/metamodel/Config.adoc
 rename antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/{QueryResultCacheControl.adoc => QueryResultsCacheControl.adoc} (92%)
 delete mode 100644 antora/components/system/modules/generated/pages/index/core/runtimeservices/recognizer/dae/impl/ExceptionRecognizerForOtherDataAccessProblem.adoc
 copy api/applib/src/main/adoc/modules/applib-svc/pages/{about => Style}/hooks/examples_and_usage.adoc (100%)
 copy api/applib/src/main/adoc/modules/applib-svc/pages/{GridService => Style}/hooks/implementation.adoc (97%)
 copy persistence/jdo/adoc/modules/ROOT/pages/about.adoc => api/applib/src/main/adoc/modules/applib-svc/pages/TransactionalProcessor.adoc (69%)
 copy api/applib/src/main/adoc/modules/applib-svc/pages/{about => TransactionalProcessor}/hooks/examples_and_usage.adoc (100%)
 copy api/applib/src/main/adoc/modules/applib-svc/pages/{XmlSnapshotService => TransactionalProcessor}/hooks/implementation.adoc (100%)
 create mode 100644 api/applib/src/main/java/org/apache/isis/applib/services/jaxb/IsisSchemas.java
 create mode 100644 api/applib/src/main/java/org/apache/isis/applib/services/layout/Style.java
 create mode 100644 api/applib/src/main/java/org/apache/isis/applib/services/metamodel/Config.java
 rename api/applib/src/main/java/org/apache/isis/applib/services/queryresultscache/{QueryResultCacheControl.java => QueryResultsCacheControl.java} (67%)


[isis] 01/02: ISIS-2444: regen docs and examples

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 6d429918d5102281eb46615d7e8905b48cc86ae4
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sat Feb 13 10:44:50 2021 +0000

    ISIS-2444: regen docs and examples
---
 .../pages/index/applib/annotation/Action.adoc      |   4 +-
 .../pages/index/applib/annotation/Property.adoc    |   4 +-
 .../pages/index/applib/annotation/Publishing.adoc  |   2 +-
 .../index/applib/services/exceprecog/Category.adoc |  93 ++++++++++++++
 .../exceprecog/ExceptionRecognizerService.adoc     |   6 +
 .../applib/services/exceprecog/Recognition.adoc    |  75 +++++++++++
 .../applib/services/factory/FactoryService.adoc    |  10 +-
 .../applib/services/grid/GridLoaderService.adoc    |  14 ++-
 .../applib/services/grid/GridSystemService.adoc    |  86 +++++++++++--
 .../applib/services/health/HealthCheckService.adoc |   6 +
 .../index/applib/services/hint/HintIdProvider.adoc |  18 +++
 .../index/applib/services/hint/HintStore.adoc      |  69 ++++++++++-
 .../services/homepage/HomePageResolverService.adoc |   2 +-
 .../ActionInvocation.adoc}                         |   7 +-
 .../index/applib/services/iactn/Execution.adoc     |  96 ++++++++++++++
 .../applib/services/iactn/ExecutionContext.adoc    |  42 ++++++-
 .../index/applib/services/iactn/Interaction.adoc   |  37 ++++--
 .../applib/services/iactn/InteractionContext.adoc  |   2 +
 .../PropertyEdit.adoc}                             |   7 +-
 .../index/applib/services/iactn/Sequence.adoc      |  50 ++++++++
 .../services/publishing/log/ExecutionLogger.adoc   |   2 +-
 .../services/publishing/spi/EntityChanges.adoc     | 115 +++++++++++++++--
 .../publishing/spi/EntityChangesSubscriber.adoc    |   4 +-
 .../publishing/spi/ExecutionSubscriber.adoc        |  16 ++-
 .../applib/util/schema/InteractionDtoUtils.adoc    |  12 +-
 ...ceptionRecognizerForOtherDataAccessProblem.adoc |  14 ---
 .../jdo/datanucleus/IsisModuleJdoDatanucleus.adoc  |  13 +-
 .../jdo/datanucleus/dialect/DnJdoDialect.adoc      |   3 +-
 .../jpa/eclipselink/IsisModuleJpaEclipselink.adoc  |   1 -
 .../modules/generated/pages/system-overview.adoc   |  61 +++++----
 .../adoc/modules/config/pages/sections/Other.adoc  |   6 +-
 .../adoc/modules/config/pages/sections/_nav.adoc   |   2 -
 .../modules/config/pages/sections/isis.applib.adoc |   2 +-
 ...tySetterOrClearFacetForDomainEventAbstract.java |   2 +-
 .../command/CommandExecutorServiceDefault.java     |   2 +-
 ...utionListenerToCaptureInteractionsInMemory.java |   3 +-
 .../publishing/jdo/JdoExecutionPublishingTest.java |  44 +++----
 .../publishing/ExecutionSubscriberForTesting.java  |  12 +-
 .../modules/tooling-cli/examples/isis-tooling.yml  | 138 +++++++++++----------
 39 files changed, 875 insertions(+), 207 deletions(-)

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 2aa36d9..1959081 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
@@ -50,7 +50,7 @@ Indicates that an invocation of the action should be posted to the _org.apache.i
 <.> 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.
+Whether xref:system:generated:index/applib/services/iactn/Execution.adoc[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]
 +
@@ -139,7 +139,7 @@ This subclass must provide a no-arg constructor; the fields are set reflectively
 [#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.
+Whether xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] s (triggered by action invocations), should be published to xref:system:generated:index/applib/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber] s.
 
 [#hidden]
 === hidden
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 034df9c..4c83996 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
@@ -55,7 +55,7 @@ If _#editing()_ is set to _Editing#DISABLED_ , then the reason to provide to the
 <.> 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.
+Whether xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] s (triggered property edits), should be dispatched to xref:system:generated:index/applib/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber] s.
 --
 <.> xref:#fileAccept[fileAccept]
 +
@@ -154,7 +154,7 @@ If _#editing()_ is set to _Editing#DISABLED_ , then the reason to provide to the
 [#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.
+Whether xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] s (triggered property edits), should be dispatched to xref:system:generated:index/applib/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber] s.
 
 [#fileAccept]
 === fileAccept
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 144157f..4e96a2e 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
@@ -11,7 +11,7 @@ The available policies as to whether data should be published to corresponding s
 * *xref:system:generated:index/applib/services/command/Command.adoc[Command] ... subscribed to via xref:system:generated:index/applib/services/publishing/spi/CommandSubscriber.adoc[CommandSubscriber]*
 
  *
-* *_org.apache.isis.applib.services.iactn.Interaction.Execution_ ... subscribed to via xref:system:generated:index/applib/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber]*
+* *xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] ... subscribed to via xref:system:generated:index/applib/services/publishing/spi/ExecutionSubscriber.adoc[ExecutionSubscriber]*
 
  ** * * * 
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Category.adoc b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Category.adoc
new file mode 100644
index 0000000..d1d92a8
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Category.adoc
@@ -0,0 +1,93 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+Categorises each exception that has been recognised, as per _Recognition#getCategory()_ .
+
+== API
+
+[source,java]
+.Category.java
+----
+enum Category {
+  CONSTRAINT_VIOLATION     // <.>
+  NOT_FOUND     // <.>
+  CONCURRENCY     // <.>
+  RETRYABLE     // <.>
+  CLIENT_ERROR     // <.>
+  SERVER_ERROR     // <.>
+  OTHER     // <.>
+}
+----
+
+<.> xref:#CONSTRAINT_VIOLATION[CONSTRAINT_VIOLATION]
++
+--
+A violation of some declarative constraint (eg uniqueness or referential integrity) was detected.
+--
+<.> xref:#NOT_FOUND[NOT_FOUND]
++
+--
+The object to be acted upon cannot be found (404)
+--
+<.> xref:#CONCURRENCY[CONCURRENCY]
++
+--
+A concurrency exception, in other words some other user has changed this object.
+--
+<.> xref:#RETRYABLE[RETRYABLE]
++
+--
+A previously failed operation might be able to succeed when the operation is retried. (eg. a query timeout or a temporary failure)
+--
+<.> xref:#CLIENT_ERROR[CLIENT_ERROR]
++
+--
+Recognized, but for some other reason... 40x error
+--
+<.> xref:#SERVER_ERROR[SERVER_ERROR]
++
+--
+50x error
+--
+<.> xref:#OTHER[OTHER]
++
+--
+Recognized, but uncategorized (typically: a recognizer of the original ExceptionRecognizer API).
+--
+
+== Members
+
+[#CONSTRAINT_VIOLATION]
+=== CONSTRAINT_VIOLATION
+
+A violation of some declarative constraint (eg uniqueness or referential integrity) was detected.
+
+[#NOT_FOUND]
+=== NOT_FOUND
+
+The object to be acted upon cannot be found (404)
+
+[#CONCURRENCY]
+=== CONCURRENCY
+
+A concurrency exception, in other words some other user has changed this object.
+
+[#RETRYABLE]
+=== RETRYABLE
+
+A previously failed operation might be able to succeed when the operation is retried. (eg. a query timeout or a temporary failure)
+
+[#CLIENT_ERROR]
+=== CLIENT_ERROR
+
+Recognized, but for some other reason... 40x error
+
+[#SERVER_ERROR]
+=== SERVER_ERROR
+
+50x error
+
+[#OTHER]
+=== OTHER
+
+Recognized, but uncategorized (typically: a recognizer of the original ExceptionRecognizer API).
+
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 3ef44bb..620ad35 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
@@ -15,6 +15,10 @@ interface ExceptionRecognizerService {
 ----
 
 <.> xref:#getExceptionRecognizers[getExceptionRecognizers]
++
+--
+All ExceptionRecognizer implementations as discovered by the IoC container, honoring order of precedence.
+--
 <.> xref:#recognize[recognize]
 +
 --
@@ -31,6 +35,8 @@ Takes into consideration ExceptionRecognizers as given by _recognizers_ .
 [#getExceptionRecognizers]
 === getExceptionRecognizers
 
+All ExceptionRecognizer implementations as discovered by the IoC container, honoring order of precedence.
+
 [#recognize]
 === recognize
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Recognition.adoc b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Recognition.adoc
new file mode 100644
index 0000000..e640f13
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Recognition.adoc
@@ -0,0 +1,75 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 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 user-friendly representation of an exception that has been recognised by an available implementation of an xref:system:generated:index/applib/services/exceprecog/ExceptionRecognizer.adoc[ExceptionRecognizer] .
+
+Returned by _ExceptionRecognizer#recognize(Throwable)_ when the exception recognizer has recognised the exception
+
+== API
+
+[source,java]
+.Recognition.java
+----
+class Recognition {
+  @NonNull
+Category category;     // <.>
+  @NonNull
+String reason;     // <.>
+  Optional<Recognition> of(final Category category, final String reason)     // <.>
+  String toMessage(TranslationService translationService)     // <.>
+  String toMessageNoCategory(TranslationService translationService)     // <.>
+}
+----
+
+<.> xref:#category[category]
++
+--
+Categorises the exception as per xref:system:generated:index/applib/services/exceprecog/Category.adoc[Category] .
+--
+<.> xref:#reason[reason]
++
+--
+The untranslated user-friendly reason for the exception.
+--
+<.> xref:#of[of]
+<.> xref:#toMessage[toMessage]
++
+--
+Translates the _#getReason() reason_ and prepends with a translation of _#getCategory() category_ , using the provided xref:system:generated:index/applib/services/i18n/TranslationService.adoc[TranslationService] ..
+--
+<.> xref:#toMessageNoCategory[toMessageNoCategory]
++
+--
+Translates the _#getReason() reason_ alone (ignoring the _#getCategory() category_ , using the provided xref:system:generated:index/applib/services/i18n/TranslationService.adoc[TranslationService] ..
+--
+
+== Members
+
+[#category]
+=== category
+
+Categorises the exception as per xref:system:generated:index/applib/services/exceprecog/Category.adoc[Category] .
+
+In essence, if an exception is recognized then it is also categorized. This lets the viewer act accordingly. If the implementation recognizes the exception then it returns a user-friendly message to be rendered (by the viewer) back to the user; otherwise it returns `null`. There is no need for the implementation to check for exception causes; the casual chain is unwrapped by Apache Isis core and each exception in the chain will also be passed through to the recognizer (from most specific [...]
+
+This category can also optionally be used in the translation of the _#getReason() reason_ for the exception.
+
+[#reason]
+=== reason
+
+The untranslated user-friendly reason for the exception.
+
+The reason can also be translated (prepended or not by the translation of the _#getCategory() category_ using _#toMessage(TranslationService)_ or _#toMessageNoCategory(TranslationService)_ . .
+
+[#of]
+=== of
+
+[#toMessage]
+=== toMessage
+
+Translates the _#getReason() reason_ and prepends with a translation of _#getCategory() category_ , using the provided xref:system:generated:index/applib/services/i18n/TranslationService.adoc[TranslationService] ..
+
+[#toMessageNoCategory]
+=== toMessageNoCategory
+
+Translates the _#getReason() reason_ alone (ignoring the _#getCategory() category_ , using the provided xref:system:generated:index/applib/services/i18n/TranslationService.adoc[TranslationService] ..
+
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 482aff2..a691960 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,5 +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 [...]
 
+Collects together methods for instantiating domain objects, also injecting them with any domain services and calling lifecycle methods if defined.
+
 == API
 
 [source,java]
@@ -22,7 +24,7 @@ interface FactoryService {
 <.> xref:#getOrCreate[getOrCreate]
 +
 --
-General purpose factory method, to automatically get or create an instance of _requiredType_ .
+Gets an instance (possibly shared or independent) of the specified type, with injection points resolved and any life-cycle callback processed.
 --
 <.> xref:#get[get]
 +
@@ -82,9 +84,7 @@ Creates a new instance of the specified class, but does not persist it.
 [#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.
+Gets an instance (possibly shared or independent) of the specified type, with injection points resolved and any life-cycle callback processed.
 
 [#get]
 === get
@@ -96,6 +96,8 @@ Gets an instance (possibly shared or independent) of the specified _requiredType
 
 Creates a new detached entity instance, with injection points resolved and defaults applied.
 
+The entity will be detacted, in other words not yet persisted.
+
 [#detachedEntity]
 === detachedEntity
 
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 0863b5f..40c6f3c 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,5 +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 [...]
 
+Provides the ability to load the XML layout (grid) for a domain class.
+
 == API
 
 [source,java]
@@ -37,7 +39,7 @@ Returns a new instance of a xref:system:generated:index/applib/layout/grid/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.xml` file, else `null` .
+Loads a specic alternative xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] layout for the specified domain class.
 --
 
 == Members
@@ -47,16 +49,22 @@ Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.
 
 Whether dynamic reloading of layouts is enabled.
 
+The default implementation enables reloading for prototyping mode, disables in production
+
 [#remove]
 === remove
 
 To support metamodel invalidation/rebuilding of spec.
 
+This is called by the _org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel_ mixin action.
+
 [#existsFor]
 === existsFor
 
 Whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
 
+If none exists, will return null (and the calling xref:system:generated:index/applib/services/grid/GridService.adoc[GridService] will use xref:system:generated:index/applib/services/grid/GridSystemService.adoc[GridSystemService] to obtain a default grid for the domain class).
+
 [#load]
 === load
 
@@ -65,5 +73,7 @@ Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.
 [#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` .
+Loads a specic alternative xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] layout for the specified domain class.
+
+The layout alternative will typically be specified through a `layout()` method on the domain object, the value of which is used for the suffix of the layout file (eg "Customer-layout.archived.xml" to use a different layout for customers that have been archived).
 
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 3847bbd..2d59e1d 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,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 [...]
 
-Provides an implementation of xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] .
+Encapsulates a single layout grid system which can be used to customize the layout of domain objects.
+
+In particular this means being able to return a "normalized" form (validating and associating domain object members into the various regions of the grid) and in providing a default grid if there is no other metadata available.
 
 == API
 
@@ -9,24 +11,49 @@ Provides an implementation of xref:system:generated:index/applib/layout/grid/Gri
 ----
 interface GridSystemService<G> {
   Class<G> gridImplementation()     // <.>
-  String tns()
-  String schemaLocation()
-  G defaultGrid(Class<?> domainClass)
+  String tns()     // <.>
+  String schemaLocation()     // <.>
+  G defaultGrid(Class<?> domainClass)     // <.>
   void normalize(G grid, Class<?> domainClass)     // <.>
-  void complete(G grid, Class<?> domainClass)
-  void minimal(G grid, Class<?> domainClass)
+  void complete(G grid, Class<?> domainClass)     // <.>
+  void minimal(G grid, Class<?> domainClass)     // <.>
 }
 ----
 
 <.> xref:#gridImplementation[gridImplementation]
 +
 --
-Which grid (implementation) is defined by this service.
+The concrete subclass of xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] supported by this implementation.
+--
+<.> xref:#tns[tns]
++
+--
+The target namespace for this grid system.
+--
+<.> xref:#schemaLocation[schemaLocation]
++
+--
+The schema location for the XSD.
+--
+<.> xref:#defaultGrid[defaultGrid]
++
+--
+A default grid, used when no grid layout can be found for the domain class.
 --
 <.> xref:#normalize[normalize]
 +
 --
-Validate the grid, derive any missing object members, and overwrite any facets in the metamodel based on the layout.
+Validates and normalizes a grid, modifying the grid so that all of the domain object's members (properties, collections, actions) are bound to regions of the grid.
+--
+<.> xref:#complete[complete]
++
+--
+Takes a normalized grid and enriches it with all the available metadata (taken from Apache Isis' internal metadata) that can be represented in the layout XML.
+--
+<.> xref:#minimal[minimal]
++
+--
+Takes a normalized grid and strips out removes all members, leaving only the grid structure.
 --
 
 == Members
@@ -34,10 +61,49 @@ Validate the grid, derive any missing object members, and overwrite any facets i
 [#gridImplementation]
 === gridImplementation
 
-Which grid (implementation) is defined by this service.
+The concrete subclass of xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] supported by this implementation.
+
+There can be multiple implementations of this service, this indicates the base class used by the implementation.
+
+[#tns]
+=== tns
+
+The target namespace for this grid system.
+
+This is used when generating the XML. The Bootstrap3 grid system provided by the framework returns the value `http://isis.apache.org/applib/layout/grid/bootstrap3`.
+
+[#schemaLocation]
+=== schemaLocation
+
+The schema location for the XSD.
+
+Every grid system is expected to provide a schema XSD in order to provide code completion in an IDE. The Bootstrap3 grid system provided by the framework returns the value `http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd`.
+
+[#defaultGrid]
+=== defaultGrid
+
+A default grid, used when no grid layout can be found for the domain class.
+
+For example, this layout could define two columns in ratio 4:8.
 
 [#normalize]
 === normalize
 
-Validate the grid, derive any missing object members, and overwrite any facets in the metamodel based on the layout.
+Validates and normalizes a grid, modifying the grid so that all of the domain object's members (properties, collections, actions) are bound to regions of the grid.
+
+This is done using existing metadata, most notably that of the _org.apache.isis.applib.annotation.MemberOrder_ annotation. Such a grid, if persisted as the layout XML file for the domain class, allows the _org.apache.isis.applib.annotation.MemberOrder_ annotation to be removed from the source code of the domain class (but other annotations must be retained).
+
+[#complete]
+=== complete
+
+Takes a normalized grid and enriches it with all the available metadata (taken from Apache Isis' internal metadata) that can be represented in the layout XML.
+
+Such a grid, if persisted as the layout XML file for the domain class, allows all layout annotations ( _org.apache.isis.applib.annotation.ActionLayout_ , _org.apache.isis.applib.annotation.PropertyLayout_ , _org.apache.isis.applib.annotation.CollectionLayout_ ) to be removed from the source code of the domain class.
+
+[#minimal]
+=== minimal
+
+Takes a normalized grid and strips out removes all members, leaving only the grid structure.
+
+Such a grid, if persisted as the layout XML file for the domain class, requires that the _org.apache.isis.applib.annotation.MemberOrder_ annotation is retained in the source code of said class in order to bind members to the regions of the grid.
 
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 72bab43..4994441 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,5 +1,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 [...]
 
+This SPI service allow runtime infrastructure such as Kubernetes or Docker Swarm to monitor the app and (potentially) restart it if required.
+
+This SPI service integrates with Spring Boot'sHealthIndicatorSPI, surfaced through theSpring Boot Actuator. It is therefore accessible from the `/actuator/health` endpoint (Spring allows the endpoint URL to be altered or suppressed).
+
+The service, when called, will be within the context of a special internal user ___health_ with the internal role ___health-role_ .
+
 == API
 
 [source,java]
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/hint/HintIdProvider.adoc b/antora/components/system/modules/generated/pages/index/applib/services/hint/HintIdProvider.adoc
new file mode 100644
index 0000000..ab2450b
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/services/hint/HintIdProvider.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 [...]
+
+Provides an SPI for view models to implement to represent their "logical" identity (stable even if the view model's state changes).
+
+Hints are stored against the `Bookmark` of a domain object, essentially the identifier of the domain object. For a domain entity this identifier is fixed and unchanging but for view models the identifier changes each time the view model's state changes (the identifier is basically a digest of the object's state). This means that any hints stored against the view model's bookmark are in effect lost as soon as the view model is modified.
+
+This SPI therefore allows a view model to take advantage of the hinting mechanism of the viewer by providing a "logical" identity stored which hints for the view model can be stored.
+
+== API
+
+[source,java]
+.HintIdProvider.java
+----
+interface HintIdProvider {
+  String hintId()
+}
+----
+
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 6c9b8eb..669625b 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,16 +1,75 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
+Defines a mechanism for viewers to store arbitrary UI hints on a per-object basis.
+
+This store _is_ used by the Wicket viewer. For example, the viewer remembers which tabs are selected, and for collections which view is selected (eg table or hidden), which page of a table to render, or whether "show all" (rows) is toggled.
+
 == API
 
 [source,java]
 .HintStore.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)
+  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)     // <.>
 }
 ----
 
+<.> xref:#get[get]
++
+--
+Obtain a hint (eg which tab to open) for a particular object.
+--
+<.> xref:#set[set]
++
+--
+Set the state of a hint for the domain object
+--
+<.> xref:#remove[remove]
++
+--
+Removes hint for the domain object.
+--
+<.> xref:#removeAll[removeAll]
++
+--
+Remotes all hints for the domain object.
+--
+<.> xref:#findHintKeys[findHintKeys]
++
+--
+The keys of all available hints for the domain object.
+--
+
+== Members
+
+[#get]
+=== get
+
+Obtain a hint (eg which tab to open) for a particular object.
+
+Object identity is represented by xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] so that alternative implementations can easily serialize this state to a string.
+
+[#set]
+=== set
+
+Set the state of a hint for the domain object
+
+[#remove]
+=== remove
+
+Removes hint for the domain object.
+
+[#removeAll]
+=== removeAll
+
+Remotes all hints for the domain object.
+
+[#findHintKeys]
+=== findHintKeys
+
+The keys of all available hints for the domain object.
+
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 fa2e0ae..f389238 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,6 +1,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 [...]
 
-Returns a view model annotated with xref:system:generated:index/applib/annotation/HomePage.adoc[HomePage] .
+This service simply provides access to the home page object (if any) annotated with xref:system:generated:index/applib/annotation/HomePage.adoc[HomePage] .
 
 == API
 
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/iactn/ActionInvocation.adoc
similarity index 78%
copy from antora/components/system/modules/generated/pages/index/applib/services/publishing/log/ExecutionLogger.adoc
copy to antora/components/system/modules/generated/pages/index/applib/services/iactn/ActionInvocation.adoc
index 209e179..e599931 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/iactn/ActionInvocation.adoc
@@ -3,11 +3,10 @@
 == API
 
 [source,java]
-.ExecutionLogger.java
+.ActionInvocation.java
 ----
-class ExecutionLogger {
-  boolean isEnabled()
-  void onExecution(final Interaction.Execution<?, ?> execution)
+class ActionInvocation {
+  ActionInvocation(final Interaction interaction, final String memberId, final Object target, final List<Object> args, final String targetMember, final String targetClass)
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/iactn/Execution.adoc b/antora/components/system/modules/generated/pages/index/applib/services/iactn/Execution.adoc
new file mode 100644
index 0000000..a36b0f6
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/services/iactn/Execution.adoc
@@ -0,0 +1,96 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 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/property edit as a node in a call-stack execution graph, with sub-interactions being made by way of the xref:system:generated:index/applib/services/wrapper/WrapperFactory.adoc[WrapperFactory] ).
+
+The xref:system:generated:index/applib/services/iactn/Interaction.adoc[Interaction] has a reference to a _Interaction#getCurrentExecution() top-level_ execution.
+
+== API
+
+[source,java]
+.Execution.java
+----
+class Execution<T, E> {
+  void setParent(final Execution<?, ?> parent)     // <.>
+  List<Execution<?, ?>> getChildren()     // <.>
+  void setEvent(final E event)     // <.>
+  Timestamp start(final ClockService clockService, final MetricsService metricsService)
+  void setCompletedAt(final Timestamp completedAt, final MetricsService metricsService)     // <.>
+  void setReturned(Object returned)     // <.>
+  void setThrew(Exception threw)     // <.>
+  void setDto(final T executionDto)     // <.>
+}
+----
+
+<.> xref:#setParent[setParent]
++
+--
+ *NOT API* : intended to be called only by the framework.
+--
+<.> xref:#getChildren[getChildren]
++
+--
+The actions/property edits made in turn via the xref:system:generated:index/applib/services/wrapper/WrapperFactory.adoc[WrapperFactory] .
+--
+<.> xref:#setEvent[setEvent]
++
+--
+ *NOT API* : intended to be called only by the framework.
+--
+<.> xref:#setCompletedAt[setCompletedAt]
++
+--
+ *NOT API* : intended to be called only by the framework.
+--
+<.> xref:#setReturned[setReturned]
++
+--
+ *NOT API* : intended to be called only by the framework.
+--
+<.> xref:#setThrew[setThrew]
++
+--
+ *NOT API* : intended to be called only by the framework.
+--
+<.> xref:#setDto[setDto]
++
+--
+ *NOT API* : Set by framework (implementation of _org.apache.isis.core.metamodel.execution.InternalInteraction.MemberExecutor_ )
+--
+
+== Members
+
+[#setParent]
+=== setParent
+
+ *NOT API* : intended to be called only by the framework.
+
+[#getChildren]
+=== getChildren
+
+The actions/property edits made in turn via the xref:system:generated:index/applib/services/wrapper/WrapperFactory.adoc[WrapperFactory] .
+
+[#setEvent]
+=== setEvent
+
+ *NOT API* : intended to be called only by the framework.
+
+[#setCompletedAt]
+=== setCompletedAt
+
+ *NOT API* : intended to be called only by the framework.
+
+[#setReturned]
+=== setReturned
+
+ *NOT API* : intended to be called only by the framework.
+
+[#setThrew]
+=== setThrew
+
+ *NOT API* : intended to be called only by the framework.
+
+[#setDto]
+=== setDto
+
+ *NOT API* : Set by framework (implementation of _org.apache.isis.core.metamodel.execution.InternalInteraction.MemberExecutor_ )
+
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 63c7fc5..5dbe5b0 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,6 +1,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 [...]
 
-Provides the user and scenario specific environment for an _Interaction.Execution_
+Provides the user and scenario specific environment for an xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution]
 
 == API
 
@@ -8,10 +8,40 @@ Provides the user and scenario specific environment for an _Interaction.Executio
 .ExecutionContext.java
 ----
 class ExecutionContext {
+  @With
+@Getter
+@Builder.Default
+@NonNull
+UserMemento user;     // <.>
+  @With
+@Getter
+@Builder.Default
+@NonNull
+VirtualClock clock;     // <.>
+  @With
+@Getter
+@Builder.Default
+@NonNull
+Locale locale;
+  @With
+@Getter
+@Builder.Default
+@NonNull
+TimeZone timeZone;
   ExecutionContext ofUserWithSystemDefaults(final UserMemento user)     // <.>
 }
 ----
 
+<.> xref:#user[user]
++
+--
+The (programmatically) simulated (or actual) user.
+--
+<.> xref:#clock[clock]
++
+--
+The (programmatically) simulated (or actual) clock.
+--
 <.> xref:#ofUserWithSystemDefaults[ofUserWithSystemDefaults]
 +
 --
@@ -20,6 +50,16 @@ Creates a new xref:system:generated:index/applib/services/iactn/ExecutionContext
 
 == Members
 
+[#user]
+=== user
+
+The (programmatically) simulated (or actual) user.
+
+[#clock]
+=== clock
+
+The (programmatically) simulated (or actual) clock.
+
 [#ofUserWithSystemDefaults]
 === ofUserWithSystemDefaults
 
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 07d3df3..685c53a 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
@@ -2,29 +2,40 @@
 
 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.
 
+The `Interaction` can be used to obtain the xref:system:generated:index/applib/services/command/Command.adoc[Command] object representing the top-level invocation action/property edit.
+
 The distinction between xref:system:generated:index/applib/services/command/Command.adoc[Command] and this object is perhaps subtle: the former represents the intention to invoke an action/edit a property, whereas this represents the actual invocation/edit itself.
 
 To confuse matters slightly, historically the xref:system:generated:index/applib/services/command/Command.adoc[Command] interface defines members (specifically: _Command#getStartedAt()_ , _Command#getCompletedAt()_ , _Command#getResult()_ , _Command#getException()_ ) which logically belong to this class instead; they remain in xref:system:generated:index/applib/services/command/Command.adoc[Command] for backward compatibility only (and have been deprecated).
 
-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.
-
 == API
 
 [source,java]
 .Interaction.java
 ----
 interface Interaction {
-  Command getCommand()
+  UUID getUniqueId()     // <.>
+  Command getCommand()     // <.>
   Execution<?, ?> getCurrentExecution()     // <.>
   Execution<?, ?> getPriorExecution()     // <.>
   int next(final String sequenceId)     // <.>
 }
 ----
 
+<.> xref:#getUniqueId[getUniqueId]
++
+--
+The unique identifier of this interaction (inherited from xref:system:generated:index/commons/having/HasUniqueId.adoc[HasUniqueId] )
+--
+<.> xref:#getCommand[getCommand]
++
+--
+Represents the _intention_ to perform this interaction.
+--
 <.> xref:#getCurrentExecution[getCurrentExecution]
 +
 --
-The current (most recently pushed) _Execution_ .
+The current (most recently pushed) xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] .
 --
 <.> xref:#getPriorExecution[getPriorExecution]
 +
@@ -34,15 +45,27 @@ The execution that preceded the current one.
 <.> 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.
+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 xref:system:generated:index/applib/services/iactn/Sequence.adoc[Sequence] enum.
 --
 
 == Members
 
+[#getUniqueId]
+=== getUniqueId
+
+The unique identifier of this interaction (inherited from xref:system:generated:index/commons/having/HasUniqueId.adoc[HasUniqueId] )
+
+This can be used to correlate audit records and transactions happening as a consequence or within the interaction.
+
+[#getCommand]
+=== getCommand
+
+Represents the _intention_ to perform this interaction.
+
 [#getCurrentExecution]
 === getCurrentExecution
 
-The current (most recently pushed) _Execution_ .
+The current (most recently pushed) xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] .
 
 [#getPriorExecution]
 === getPriorExecution
@@ -52,5 +75,5 @@ 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.
+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 xref:system:generated:index/applib/services/iactn/Sequence.adoc[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 1321e16..d51ac99 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
@@ -2,6 +2,8 @@
 
 Provides the current thread's xref:system:generated:index/applib/services/iactn/Interaction.adoc[Interaction] .
 
+An xref:system:generated:index/applib/services/iactn/Interaction.adoc[Interaction] contains a top-level xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] representing the invocation of an action or the editing of a property. If that top-level action or property uses the _org.apache.isis.applib.services.wrapper.WrapperFactory_ domain service to invoke child actions/properties, then those sub-executions are captured as a call-graph. The xref:system:generated:index [...]
+
 == API
 
 [source,java]
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/iactn/PropertyEdit.adoc
similarity index 79%
copy from antora/components/system/modules/generated/pages/index/applib/services/publishing/log/ExecutionLogger.adoc
copy to antora/components/system/modules/generated/pages/index/applib/services/iactn/PropertyEdit.adoc
index 209e179..2020122 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/iactn/PropertyEdit.adoc
@@ -3,11 +3,10 @@
 == API
 
 [source,java]
-.ExecutionLogger.java
+.PropertyEdit.java
 ----
-class ExecutionLogger {
-  boolean isEnabled()
-  void onExecution(final Interaction.Execution<?, ?> execution)
+class PropertyEdit {
+  PropertyEdit(final Interaction interaction, final String memberId, final Object target, final Object newValue, final String targetMember, final String targetClass)
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/iactn/Sequence.adoc b/antora/components/system/modules/generated/pages/index/applib/services/iactn/Sequence.adoc
new file mode 100644
index 0000000..6f59479
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/services/iactn/Sequence.adoc
@@ -0,0 +1,50 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+Enumerates the different reasons why multiple occurrences of a certain type might occur within a single (top-level) interaction.
+
+== API
+
+[source,java]
+.Sequence.java
+----
+enum Sequence {
+  INTERACTION     // <.>
+  PUBLISHED_EVENT     // <.>
+  TRANSACTION     // <.>
+  String id()
+}
+----
+
+<.> xref:#INTERACTION[INTERACTION]
++
+--
+Each interaction is either an action invocation or a property edit. There could be multiple of these, typically as the result of a nested calls using the xref:system:generated:index/applib/services/wrapper/WrapperFactory.adoc[WrapperFactory] . Another reason is support for bulk action invocations within a single transaction.
+--
+<.> xref:#PUBLISHED_EVENT[PUBLISHED_EVENT]
++
+--
+For objects: multiple such could be dirtied and thus published as separate events. For actions invocations/property edits : multiple sub-invocations could occur if sub-invocations are made through the xref:system:generated:index/applib/services/wrapper/WrapperFactory.adoc[WrapperFactory] .
+--
+<.> xref:#TRANSACTION[TRANSACTION]
++
+--
+There may be multiple transactions within a given interaction.
+--
+
+== Members
+
+[#INTERACTION]
+=== INTERACTION
+
+Each interaction is either an action invocation or a property edit. There could be multiple of these, typically as the result of a nested calls using the xref:system:generated:index/applib/services/wrapper/WrapperFactory.adoc[WrapperFactory] . Another reason is support for bulk action invocations within a single transaction.
+
+[#PUBLISHED_EVENT]
+=== PUBLISHED_EVENT
+
+For objects: multiple such could be dirtied and thus published as separate events. For actions invocations/property edits : multiple sub-invocations could occur if sub-invocations are made through the xref:system:generated:index/applib/services/wrapper/WrapperFactory.adoc[WrapperFactory] .
+
+[#TRANSACTION]
+=== TRANSACTION
+
+There may be multiple transactions within a given interaction.
+
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 209e179..428ef9e 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
@@ -7,7 +7,7 @@
 ----
 class ExecutionLogger {
   boolean isEnabled()
-  void onExecution(final Interaction.Execution<?, ?> execution)
+  void onExecution(final Execution<?, ?> execution)
 }
 ----
 
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 03a3968..2f25609 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,18 +1,119 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 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 used by xref:system:generated:index/applib/services/publishing/spi/EntityChangesSubscriber.adoc[EntityChangesSubscriber] , provides metrics on the "footprint" of an interaction, in other words the number of objects accessed or changed.
+
+The numbers of objects loaded, created, updated or deleted and the number of object properties modified (in other words the "size" or "weight" of the transaction).
+
 == API
 
 [source,java]
 .EntityChanges.java
 ----
 interface EntityChanges {
-  Timestamp getCompletedAt()
-  int getNumberLoaded()
-  int getNumberCreated()
-  int getNumberUpdated()
-  int getNumberDeleted()
-  int getNumberPropertiesModified()
-  ChangesDto getDto()
+  UUID getUniqueId()     // <.>
+  String getUsername()     // <.>
+  Timestamp getCompletedAt()     // <.>
+  int getNumberLoaded()     // <.>
+  int getNumberCreated()     // <.>
+  int getNumberUpdated()     // <.>
+  int getNumberDeleted()     // <.>
+  int getNumberPropertiesModified()     // <.>
+  ChangesDto getDto()     // <.>
 }
 ----
 
+<.> xref:#getUniqueId[getUniqueId]
++
+--
+inherited from xref:system:generated:index/commons/having/HasUniqueId.adoc[HasUniqueId] , correlates back to the unique identifier of the transaction in which these objects were changed.
+--
+<.> xref:#getUsername[getUsername]
++
+--
+Inherited from xref:system:generated:index/commons/having/HasUsername.adoc[HasUsername] , is the user that initiated the transaction causing these objects to change.
+--
+<.> xref:#getCompletedAt[getCompletedAt]
++
+--
+Time that the interaction execution completed
+--
+<.> xref:#getNumberLoaded[getNumberLoaded]
++
+--
+Number of domain objects loaded in this interaction
+--
+<.> xref:#getNumberCreated[getNumberCreated]
++
+--
+Number of domain objects created in this interaction
+--
+<.> xref:#getNumberUpdated[getNumberUpdated]
++
+--
+Number of domain objects updated in this interaction
+--
+<.> xref:#getNumberDeleted[getNumberDeleted]
++
+--
+Number of domain objects deleted in this interaction
+--
+<.> xref:#getNumberPropertiesModified[getNumberPropertiesModified]
++
+--
+Number of domain objects properties that were changed in this interaction
+--
+<.> xref:#getDto[getDto]
++
+--
+Same details, but as an an instance of _ChangesDto_ .
+--
+
+== Members
+
+[#getUniqueId]
+=== getUniqueId
+
+inherited from xref:system:generated:index/commons/having/HasUniqueId.adoc[HasUniqueId] , correlates back to the unique identifier of the transaction in which these objects were changed.
+
+[#getUsername]
+=== getUsername
+
+Inherited from xref:system:generated:index/commons/having/HasUsername.adoc[HasUsername] , is the user that initiated the transaction causing these objects to change.
+
+[#getCompletedAt]
+=== getCompletedAt
+
+Time that the interaction execution completed
+
+[#getNumberLoaded]
+=== getNumberLoaded
+
+Number of domain objects loaded in this interaction
+
+[#getNumberCreated]
+=== getNumberCreated
+
+Number of domain objects created in this interaction
+
+[#getNumberUpdated]
+=== getNumberUpdated
+
+Number of domain objects updated in this interaction
+
+[#getNumberDeleted]
+=== getNumberDeleted
+
+Number of domain objects deleted in this interaction
+
+[#getNumberPropertiesModified]
+=== getNumberPropertiesModified
+
+Number of domain objects properties that were changed in this interaction
+
+[#getDto]
+=== getDto
+
+Same details, but as an an instance of _ChangesDto_ .
+
+This can be converted into a serializable XML representation using the _org.apache.isis.applib.util.schema.ChangesDtoUtils_ utility class.
+
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 47d917b..452c735 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,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 [...]
 
-SPI to receive the entire set of entities that are about to change as the result of a transaction.
+SPI to receive a summary of the number of entities that have changed as the result of an interaction (action invocation or property edit).
+
+One use case is for performance profiling: to determine the "footprint" of an interaction, which will have a direct impact on the response time of that interaction.
 
 Only those entities that have publishing enabled (using * _DomainObject#entityChangePublishing()_ ) are included.
 
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 a38a906..a1016bd 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,6 +1,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 [...]
 
-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.
+SPI that allows the execution of individual interactions (action invocations or property edits) to be subscribed to.
+
+The typical use case is to facilitate coarse-grained messaging for system-to-system interactions, that is from an Apache Isis application to some other system. This could be done using a pub/sub bus such asApache ActiveMQwithApache Camel.
+
+Only actions/properties annotated for publishing (using _Action#executionPublishing()_ or _Property#executionPublishing()_ are published.
 
 == API
 
@@ -8,14 +12,14 @@ SPI that allows individual interactions (action invocations or property edits) t
 .ExecutionSubscriber.java
 ----
 interface ExecutionSubscriber {
-  void onExecution(Interaction.Execution<?, ?> execution)     // <.>
+  void onExecution(Execution<?, ?> execution)     // <.>
 }
 ----
 
 <.> xref:#onExecution[onExecution]
 +
 --
-Publish each _org.apache.isis.applib.services.iactn.Interaction.Execution_ immediately after it completes.
+Callback to notify that an interaction (an action invocation or property edit, as represented by xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] ) has completed.
 --
 
 == Members
@@ -23,7 +27,9 @@ Publish each _org.apache.isis.applib.services.iactn.Interaction.Execution_ immed
 [#onExecution]
 === onExecution
 
-Publish each _org.apache.isis.applib.services.iactn.Interaction.Execution_ immediately after it completes.
+Callback to notify that an interaction (an action invocation or property edit, as represented by xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] ) has completed.
+
+This callback method is called by the framework immediately after the interaction (not at the end of the transaction, unlike some of the other subscribers).
 
-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.
+Most implementations are expected to use _Execution#getDto()_ to create a serializable XML representation of the execution. The easiest way to do this is using _InteractionDtoUtils#newInteractionDto(Execution)_ .
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/util/schema/InteractionDtoUtils.adoc b/antora/components/system/modules/generated/pages/index/applib/util/schema/InteractionDtoUtils.adoc
index 19e76f4..0af2687 100644
--- a/antora/components/system/modules/generated/pages/index/applib/util/schema/InteractionDtoUtils.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/util/schema/InteractionDtoUtils.adoc
@@ -14,8 +14,8 @@ class InteractionDtoUtils {
   InteractionDto fromXml(final Class<?> contextClass, final String resourceName, final Charset charset)
   String toXml(final InteractionDto interactionDto)
   void toXml(final InteractionDto interactionDto, final Writer writer)
-  InteractionDto newInteractionDto(final Interaction.Execution<?, ?> execution)     // <.>
-  InteractionDto newInteractionDto(final Interaction.Execution<?, ?> execution, final Strategy strategy)     // <.>
+  InteractionDto newInteractionDto(final Execution<?, ?> execution)     // <.>
+  InteractionDto newInteractionDto(final Execution<?, ?> execution, final Strategy strategy)     // <.>
   ActionInvocationDto newActionInvocation(final int sequence, final Bookmark targetBookmark, final String targetTitle, final String actionIdentifier, final List<ParamDto> parameterDtos, final String user)
   PropertyEditDto newPropertyEdit(final int sequence, final Bookmark targetBookmark, final String targetTitle, final String propertyIdentifier, final ValueWithTypeDto newValueDto, final String user)
   String deriveLogicalMemberId(final Bookmark bookmark, final String memberId)
@@ -37,12 +37,12 @@ class InteractionDtoUtils {
 <.> xref:#newInteractionDto[newInteractionDto]
 +
 --
-Creates a _InteractionDto_ (serializable to XML) for the provided _org.apache.isis.applib.services.iactn.Interaction.Execution_ (the applib object).
+Creates a _InteractionDto_ (serializable to XML) for the provided xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] (the applib object).
 --
 <.> xref:#newInteractionDto[newInteractionDto]
 +
 --
-Creates a _InteractionDto_ (serializable to XML) for the provided _org.apache.isis.applib.services.iactn.Interaction.Execution_ (the applib object).
+Creates a _InteractionDto_ (serializable to XML) for the provided xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] (the applib object).
 --
 <.> xref:#addReturn[addReturn]
 
@@ -51,12 +51,12 @@ Creates a _InteractionDto_ (serializable to XML) for the provided _org.apache.is
 [#newInteractionDto]
 === newInteractionDto
 
-Creates a _InteractionDto_ (serializable to XML) for the provided _org.apache.isis.applib.services.iactn.Interaction.Execution_ (the applib object).
+Creates a _InteractionDto_ (serializable to XML) for the provided xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] (the applib object).
 
 [#newInteractionDto]
 === newInteractionDto
 
-Creates a _InteractionDto_ (serializable to XML) for the provided _org.apache.isis.applib.services.iactn.Interaction.Execution_ (the applib object).
+Creates a _InteractionDto_ (serializable to XML) for the provided xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] (the applib object).
 
 [#addReturn]
 === addReturn
diff --git a/antora/components/system/modules/generated/pages/index/core/runtimeservices/recognizer/dae/impl/ExceptionRecognizerForOtherDataAccessProblem.adoc b/antora/components/system/modules/generated/pages/index/core/runtimeservices/recognizer/dae/impl/ExceptionRecognizerForOtherDataAccessProblem.adoc
deleted file mode 100644
index e8bae66..0000000
--- a/antora/components/system/modules/generated/pages/index/core/runtimeservices/recognizer/dae/impl/ExceptionRecognizerForOtherDataAccessProblem.adoc
+++ /dev/null
@@ -1,14 +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 [...]
-
-Recognizes exceptions of type _DataAccessException_ if no one else does (fallback).
-
-== API
-
-[source,java]
-.ExceptionRecognizerForOtherDataAccessProblem.java
-----
-class ExceptionRecognizerForOtherDataAccessProblem {
-  ExceptionRecognizerForOtherDataAccessProblem(IsisConfiguration conf)
-}
-----
-
diff --git a/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/IsisModuleJdoDatanucleus.adoc b/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/IsisModuleJdoDatanucleus.adoc
index 9fb8a77..12b63cc 100644
--- a/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/IsisModuleJdoDatanucleus.adoc
+++ b/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/IsisModuleJdoDatanucleus.adoc
@@ -6,10 +6,11 @@
 .IsisModuleJdoDatanucleus.java
 ----
 class IsisModuleJdoDatanucleus {
-  DnJdoDialect getDnJdoDialect()     // <.>
+  DnJdoDialect getDnJdoDialect(final DataSource dataSource)     // <.>
   LocalPersistenceManagerFactoryBean getLocalPersistenceManagerFactoryBean(final IsisConfiguration isisConfiguration, final DataSource dataSource, final MetaModelContext metaModelContext, final EventBusService eventBusService, final Provider<EntityChangeTracker> entityChangeTrackerProvider, final DnSettings dnSettings)
   TransactionAwarePersistenceManagerFactoryProxy getTransactionAwarePersistenceManagerFactoryProxy(final LocalPersistenceManagerFactoryBean localPmfBean)
   JdoTransactionManager getTransactionManager(final JdoDialect jdoDialect, final LocalPersistenceManagerFactoryBean localPmfBean)
+  TransactionInterceptorFactory getTransactionInterceptorFactory()     // <.>
 }
 ----
 
@@ -18,6 +19,11 @@ class IsisModuleJdoDatanucleus {
 --
 Conveniently registers this dialect as a _PersistenceExceptionTranslator_ with _Spring_ .
 --
+<.> xref:#getTransactionInterceptorFactory[getTransactionInterceptorFactory]
++
+--
+AOP PATCH
+--
 
 == Members
 
@@ -26,3 +32,8 @@ Conveniently registers this dialect as a _PersistenceExceptionTranslator_ with _
 
 Conveniently registers this dialect as a _PersistenceExceptionTranslator_ with _Spring_ .
 
+[#getTransactionInterceptorFactory]
+=== getTransactionInterceptorFactory
+
+AOP PATCH
+
diff --git a/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/dialect/DnJdoDialect.adoc b/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/dialect/DnJdoDialect.adoc
index e0bb1f0..db91f71 100644
--- a/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/dialect/DnJdoDialect.adoc
+++ b/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/dialect/DnJdoDialect.adoc
@@ -8,7 +8,8 @@ Vendor ( _Datanucleus_ ) specific implementation of _Spring's_ _JdoDialect_ inte
 .DnJdoDialect.java
 ----
 class DnJdoDialect {
-  DataAccessException translateExceptionIfPossible(RuntimeException ex)
+  DnJdoDialect(Object connectionFactory)
+  DataAccessException translateExceptionIfPossible(RuntimeException cause)
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/index/persistence/jpa/eclipselink/IsisModuleJpaEclipselink.adoc b/antora/components/system/modules/generated/pages/index/persistence/jpa/eclipselink/IsisModuleJpaEclipselink.adoc
index a86679e..ed218b5 100644
--- a/antora/components/system/modules/generated/pages/index/persistence/jpa/eclipselink/IsisModuleJpaEclipselink.adoc
+++ b/antora/components/system/modules/generated/pages/index/persistence/jpa/eclipselink/IsisModuleJpaEclipselink.adoc
@@ -10,7 +10,6 @@ Sets up EclipseLink as the implementation provider for Spring Data JPA.
 .IsisModuleJpaEclipselink.java
 ----
 class IsisModuleJpaEclipselink {
-  EclipseLinkJpaDialect eclipselinkJpaDialect()
 }
 ----
 
diff --git a/antora/components/system/modules/generated/pages/system-overview.adoc b/antora/components/system/modules/generated/pages/system-overview.adoc
index 3f096ae..04c230e 100644
--- a/antora/components/system/modules/generated/pages/system-overview.adoc
+++ b/antora/components/system/modules/generated/pages/system-overview.adoc
@@ -180,7 +180,7 @@ default (Java) programming model.
 [%collapsible]
 .Document Index Entries
 ====
-xref:system:generated:index/applib/AbstractViewModel.adoc[AbstractViewModel], xref:system:generated:index/applib/Identifier.adoc[Identifier], xref:system:generated:index/applib/IsisModuleApplib.adoc[IsisModuleApplib], xref:system:generated:index/applib/RecreatableDomainObject.adoc[RecreatableDomainObject], xref:system:generated:index/applib/ViewModel.adoc[ViewModel], xref:system:generated:index/applib/adapters/AbstractValueSemanticsProvider.adoc[AbstractValueSemanticsProvider], xref:syst [...]
+xref:system:generated:index/applib/AbstractViewModel.adoc[AbstractViewModel], xref:system:generated:index/applib/Identifier.adoc[Identifier], xref:system:generated:index/applib/IsisModuleApplib.adoc[IsisModuleApplib], xref:system:generated:index/applib/RecreatableDomainObject.adoc[RecreatableDomainObject], xref:system:generated:index/applib/ViewModel.adoc[ViewModel], xref:system:generated:index/applib/adapters/AbstractValueSemanticsProvider.adoc[AbstractValueSemanticsProvider], xref:syst [...]
 ====
 
 |Apache Isis Core - Code Gen (ByteBuddy)
@@ -413,11 +413,7 @@ Folder: \core\runtimeservices
 * 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.recognizer.dae.ExceptionRecognizerForDataAccessException
 * o.a.i.core.runtimeservices.repository.RepositoryServiceDefault
 * o.a.i.core.runtimeservices.routing.RoutingServiceDefault
 * o.a.i.core.runtimeservices.scratchpad.ScratchpadDefault
@@ -443,7 +439,7 @@ Folder: \core\runtimeservices
 [%collapsible]
 .Document Index Entries
 ====
-xref:system:generated:index/core/runtimeservices/recognizer/dae/impl/ExceptionRecognizerForOtherDataAccessProblem.adoc[ExceptionRecognizerForOtherDataAccessProblem], xref:system:generated:index/core/runtimeservices/transaction/TransactionServiceSpring.adoc[TransactionServiceSpring], xref:system:generated:index/core/runtimeservices/xml/XmlServiceDefault.adoc[XmlServiceDefault]
+xref:system:generated:index/core/runtimeservices/transaction/TransactionServiceSpring.adoc[TransactionServiceSpring], xref:system:generated:index/core/runtimeservices/xml/XmlServiceDefault.adoc[XmlServiceDefault]
 ====
 
 |Apache Isis Core - Security
@@ -645,12 +641,12 @@ skinparam rectangle<<116>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<117>> {
+skinparam rectangle<<90>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<90>> {
+skinparam rectangle<<117>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
@@ -700,12 +696,12 @@ skinparam rectangle<<97>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<98>> {
+skinparam rectangle<<10>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<10>> {
+skinparam rectangle<<98>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
@@ -775,17 +771,12 @@ skinparam rectangle<<122>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<2>> {
-  BackgroundColor #438dd5
-  FontColor #fffffe
-  BorderColor #2E6295
-}
 skinparam rectangle<<123>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<124>> {
+skinparam rectangle<<2>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
@@ -795,7 +786,7 @@ skinparam rectangle<<3>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<125>> {
+skinparam rectangle<<124>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
@@ -805,7 +796,7 @@ skinparam rectangle<<4>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<126>> {
+skinparam rectangle<<125>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
@@ -815,7 +806,7 @@ skinparam rectangle<<5>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<127>> {
+skinparam rectangle<<126>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
@@ -825,6 +816,11 @@ skinparam rectangle<<6>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
+skinparam rectangle<<127>> {
+  BackgroundColor #438dd5
+  FontColor #fffffe
+  BorderColor #2E6295
+}
 skinparam rectangle<<128>> {
   BackgroundColor #438dd5
   FontColor #fffffe
@@ -835,12 +831,12 @@ skinparam rectangle<<7>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<129>> {
+skinparam rectangle<<8>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<8>> {
+skinparam rectangle<<129>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
@@ -1405,12 +1401,12 @@ skinparam rectangle<<108>> {
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<82>> {
+skinparam rectangle<<109>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
 }
-skinparam rectangle<<109>> {
+skinparam rectangle<<82>> {
   BackgroundColor #438dd5
   FontColor #fffffe
   BorderColor #2E6295
@@ -3530,6 +3526,23 @@ Type: jar
 Folder: \regressiontests\stable
 ----
 |[%collapsible]
+.Components
+====
+* o.a.i.testdomain.applayer.ApplicationLayerTestFactory
+* o.a.i.testdomain.applayer.ApplicationLayerTestFactory$PreCommitListener
+* o.a.i.testdomain.applayer.publishing.CommandSubscriberForTesting
+* o.a.i.testdomain.applayer.publishing.EntityChangesSubscriberForTesting
+* o.a.i.testdomain.applayer.publishing.EntityPropertyChangeSubscriberForTesting
+* o.a.i.testdomain.applayer.publishing.ExecutionSubscriberForTesting
+* o.a.i.testdomain.conf.Configuration_headless$HeadlessCommandSupport
+* o.a.i.testdomain.jdo.JdoInventoryDao
+* o.a.i.testdomain.jpa.JpaInventoryDao
+* o.a.i.testdomain.jpa.springdata.EmployeeRepository
+* o.a.i.testdomain.util.interaction.InteractionBoundaryProbe
+* o.a.i.testdomain.util.kv.KVStoreForTesting
+* o.a.i.testdomain.util.rest.RestEndpointService
+====
+[%collapsible]
 .Dependencies
 ====
 * org.apache.isis.extensions:isis-extensions-cors-impl:jar:<managed>
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc b/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
index a9dd072..457a809 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/Other.adoc
@@ -25,7 +25,7 @@ isis.persistence.schema. +
 additional-orm-files
 
 | 
-| Does lookup additional "mapping-files" in META-INF/orm-_name_.xml (equivalent to "mapping-file" entries in persistence.xml) and adds these to those that are already configured the _Spring Data_ way (if any).
+| Does lookup additional "mapping-files" in META-INF/orm-_name_.xml (equivalent to "mapping-file" entries in persistence.xml) and adds these to those that are already configured the _Spring Data_ way (if any). NOTE: not implemented for JDO
 
 
 |
@@ -47,12 +47,14 @@ isis.persistence.schema. +
 create-schema-sql-template
 
 |  CREATE SCHEMA IF NOT EXISTS %S
-| SQL syntax to create a DB schema.
+| Vendor specific SQL syntax to create a DB schema.
 
 This template is passed through schemaName) to make the actual SQL statement thats to be used against the configured data-source.
 
 Default template is \{@literal CREATE SCHEMA IF NOT EXISTS %S} with the schema name converted to upper-case.
 
+For MYSQL/MARIADB use escape like \{@code `%S`}
+
 
 
 |===
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc b/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
index 4ebc527..da1e6be 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/_nav.adoc
@@ -5,8 +5,6 @@
 ** xref:refguide:config:sections/isis.core.runtime.adoc[Core Runtime configurations]
 ** xref:refguide:config:sections/isis.core.runtime-services.adoc[Core Runtime Services configurations]
 ** xref:refguide:config:sections/isis.security.shiro.adoc[Shiro Security Implementation]
-** xref:refguide:config:sections/jdo-datanucleus.adoc[JDO DataNucleus]
-** xref:refguide:config:sections/jdo-datanucleus-conf.adoc[DataNucleus Configuration]
 ** xref:refguide:config:sections/isis.viewer.restfulobjects.adoc[Restful Objects Viewer]
 ** xref:refguide:config:sections/isis.viewer.wicket.adoc[Wicket Viewer]
 ** xref:refguide:config:sections/isis.extensions.adoc[Extensions]
diff --git a/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc b/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
index 9c23f1b..49993c5 100644
--- a/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
+++ b/core/config/src/main/adoc/modules/config/pages/sections/isis.applib.adoc
@@ -435,7 +435,7 @@ execution-publishing
 
 The service's publish method is called only once per transaction, with ``Execution`` collecting details of the identity of the target object, the property edited, and the new value of the property.
 
-This setting can be overridden on a case-by-case basis using \{ @link org.apache.isis.applib.annotation.Property#publishing()}.
+This setting can be overridden on a case-by-case basis using ``Property#publishing()``.
 
 
 |
diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
index 5cd6a74..1c9389f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/properties/property/modify/PropertySetterOrClearFacetForDomainEventAbstract.java
@@ -167,7 +167,7 @@ extends SingleValueFacetAbstract<Class<? extends PropertyDomainEvent<?,?>>> {
         private final ManagedObject newValueAdapter;
         private final OneToOneAssociation owningProperty;
         private final ManagedObject targetManagedObject;
-        //private final Interaction.PropertyEdit propertyEdit;
+        //private final PropertyEdit propertyEdit;
 //        private final Command command;
         private final InteractionInitiatedBy interactionInitiatedBy;
         private final InteractionHead head;
diff --git a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
index f40dc60..ee1162e 100644
--- a/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
+++ b/core/runtimeservices/src/main/java/org/apache/isis/core/runtimeservices/command/CommandExecutorServiceDefault.java
@@ -219,7 +219,7 @@ public class CommandExecutorServiceDefault implements CommandExecutorService {
                 // for the result adapter, we could alternatively have used...
                 // (priorExecution populated by the push/pop within the interaction object)
                 //
-                // final Interaction.Execution priorExecution = backgroundInteraction.getPriorExecution();
+                // final Execution priorExecution = backgroundInteraction.getPriorExecution();
                 // Object unused = priorExecution.getReturned();
                 //
 
diff --git a/examples/demo/domain/src/main/java/demoapp/dom/domain/_interactions/ExecutionListenerToCaptureInteractionsInMemory.java b/examples/demo/domain/src/main/java/demoapp/dom/domain/_interactions/ExecutionListenerToCaptureInteractionsInMemory.java
index 657282c..463a0f9 100644
--- a/examples/demo/domain/src/main/java/demoapp/dom/domain/_interactions/ExecutionListenerToCaptureInteractionsInMemory.java
+++ b/examples/demo/domain/src/main/java/demoapp/dom/domain/_interactions/ExecutionListenerToCaptureInteractionsInMemory.java
@@ -25,6 +25,7 @@ import java.util.stream.Stream;
 import org.springframework.stereotype.Service;
 
 import org.apache.isis.applib.services.iactn.Interaction;
+import org.apache.isis.applib.services.iactn.Execution;
 import org.apache.isis.applib.services.publishing.spi.ExecutionSubscriber;
 import org.apache.isis.applib.util.schema.InteractionDtoUtils;
 import org.apache.isis.schema.ixn.v2.InteractionDto;
@@ -38,7 +39,7 @@ public class ExecutionListenerToCaptureInteractionsInMemory implements Execution
     private final List<InteractionDto> executions = new ArrayList<>();
 
     @Override
-    public void onExecution(Interaction.Execution<?, ?> execution) {
+    public void onExecution(Execution<?, ?> execution) {
         val dto = InteractionDtoUtils.newInteractionDto(            // <.>
                     execution, InteractionDtoUtils.Strategy.DEEP);
         executions.add(dto);
diff --git a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/publishing/jdo/JdoExecutionPublishingTest.java b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/publishing/jdo/JdoExecutionPublishingTest.java
index 1ac00d3..3152d24 100644
--- a/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/publishing/jdo/JdoExecutionPublishingTest.java
+++ b/regressiontests/incubating/src/test/java/org/apache/isis/testdomain/applayer/publishing/jdo/JdoExecutionPublishingTest.java
@@ -30,7 +30,9 @@ import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.TestPropertySource;
 
 import org.apache.isis.applib.services.iactn.Interaction;
-import org.apache.isis.applib.services.iactn.Interaction.Execution;
+import org.apache.isis.applib.services.iactn.ActionInvocation;
+import org.apache.isis.applib.services.iactn.PropertyEdit;
+import org.apache.isis.applib.services.iactn.Execution;
 import org.apache.isis.commons.collections.Can;
 import org.apache.isis.commons.internal.exceptions._Exceptions;
 import org.apache.isis.core.config.presets.IsisPresets;
@@ -50,7 +52,7 @@ import lombok.val;
                 Configuration_usingJdo.class,
                 Configuration_usingExecutionPublishing.class,
                 ApplicationLayerTestFactory.class
-        }, 
+        },
         properties = {
                 "logging.level.org.apache.isis.persistence.jdo.datanucleus5.persistence.IsisTransactionJdo=DEBUG",
                 "logging.level.org.apache.isis.core.runtimeservices.session.IsisInteractionFactoryDefault=DEBUG",
@@ -72,16 +74,16 @@ class JdoExecutionPublishingTest extends IsisIntegrationTestAbstract {
     private void given() {
         ExecutionSubscriberForTesting.clearPublishedEntries(kvStore);
     }
-    
+
     private void verify(VerificationStage verificationStage) {
         switch(verificationStage) {
-        
+
         case FAILURE_CASE:
             assertHasExecutionEntries(Can.empty());
             break;
         case POST_COMMIT:
-        
-            
+
+
             Interaction interaction = null;
             String propertyId = "org.apache.isis.testdomain.jdo.entities.JdoBook#name";
             Object target = null;
@@ -89,14 +91,14 @@ class JdoExecutionPublishingTest extends IsisIntegrationTestAbstract {
             String targetMemberName = "name???";
             String targetClass = "org.apache.isis.testdomain.jdo.entities.JdoBook";
             assertHasExecutionEntries(Can.of(
-                    new Interaction.PropertyEdit(interaction, propertyId, target, argValue, targetMemberName, targetClass)
+                    new PropertyEdit(interaction, propertyId, target, argValue, targetMemberName, targetClass)
                     ));
             break;
         default:
             // ignore ... no checks
         }
     }
-    
+
     // -- HELPER
 
     private void assertHasExecutionEntries(Can<Execution<?, ?>> expectedExecutions) {
@@ -104,40 +106,40 @@ class JdoExecutionPublishingTest extends IsisIntegrationTestAbstract {
         CollectionAssertions.assertComponentWiseEquals(
                 expectedExecutions, actualExecutions, this::executionDifference);
     }
-    
+
     private String executionDifference(Execution<?, ?> a, Execution<?, ?> b) {
         if(!Objects.equals(a.getMemberIdentifier(), b.getMemberIdentifier())) {
-            return String.format("differing member identifier %s != %s", 
+            return String.format("differing member identifier %s != %s",
                     a.getMemberIdentifier(), b.getMemberIdentifier());
         }
         if(!Objects.equals(a.getInteractionType(), b.getInteractionType())) {
-            return String.format("differing interaction type %s != %s", 
+            return String.format("differing interaction type %s != %s",
                     a.getInteractionType(), b.getInteractionType());
         }
-        
+
         switch(a.getInteractionType()) {
         case ACTION_INVOCATION:
             return actionInvocationDifference(
-                    (Interaction.ActionInvocation)a, (Interaction.ActionInvocation)b);
+                    (ActionInvocation)a, (ActionInvocation)b);
         case PROPERTY_EDIT:
             return porpertyEditDifference(
-                    (Interaction.PropertyEdit)a, (Interaction.PropertyEdit)b);
+                    (PropertyEdit)a, (Interaction.PropertyEdit)b);
         default:
             throw _Exceptions.unexpectedCodeReach();
         }
     }
-    
-    private String actionInvocationDifference(Interaction.ActionInvocation a, Interaction.ActionInvocation b) {
+
+    private String actionInvocationDifference(ActionInvocation a, ActionInvocation b) {
         return null; // no difference
     }
-    
-    
-    private String porpertyEditDifference(Interaction.PropertyEdit a, Interaction.PropertyEdit b) {
+
+
+    private String porpertyEditDifference(PropertyEdit a, PropertyEdit b) {
         if(!Objects.equals(a.getNewValue(), b.getNewValue())) {
-            return String.format("differing new value %s != %s", 
+            return String.format("differing new value %s != %s",
                     a.getNewValue(), b.getNewValue());
         }
-        
+
         return null; // no difference
     }
 
diff --git a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/ExecutionSubscriberForTesting.java b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/ExecutionSubscriberForTesting.java
index abc5760..27f951b 100644
--- a/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/ExecutionSubscriberForTesting.java
+++ b/regressiontests/stable/src/main/java/org/apache/isis/testdomain/applayer/publishing/ExecutionSubscriberForTesting.java
@@ -26,7 +26,7 @@ import javax.inject.Inject;
 
 import org.springframework.stereotype.Service;
 
-import org.apache.isis.applib.services.iactn.Interaction.Execution;
+import org.apache.isis.applib.services.iactn.Execution;
 import org.apache.isis.applib.services.publishing.spi.ExecutionSubscriber;
 import org.apache.isis.applib.util.schema.MemberExecutionDtoUtils;
 import org.apache.isis.commons.collections.Can;
@@ -37,7 +37,7 @@ import lombok.extern.log4j.Log4j2;
 
 @Service
 @Log4j2
-public class ExecutionSubscriberForTesting 
+public class ExecutionSubscriberForTesting
 implements ExecutionSubscriber {
 
     @Inject private KVStoreForTesting kvStore;
@@ -51,16 +51,16 @@ implements ExecutionSubscriber {
     public void onExecution(Execution<?, ?> execution) {
 
         @SuppressWarnings("unchecked")
-        val publishedEntries = 
+        val publishedEntries =
         (List<Execution<?, ?>>) kvStore.get(this, "publishedExecutions").orElseGet(ArrayList::new);
 
         publishedEntries.add(execution);
 
         kvStore.put(this, "publishedExecutions", publishedEntries);
         log.debug("publish execution {}", ()->MemberExecutionDtoUtils.toXml(execution.getDto()));
-        
+
         System.err.println("exec: " + MemberExecutionDtoUtils.toXml(execution.getDto()));
-        
+
     }
 
     // -- UTILITIES
@@ -76,4 +76,4 @@ implements ExecutionSubscriber {
         kvStore.clear(ExecutionSubscriberForTesting.class);
     }
 
-}
\ No newline at end of file
+}
diff --git a/tooling/cli/adoc/modules/tooling-cli/examples/isis-tooling.yml b/tooling/cli/adoc/modules/tooling-cli/examples/isis-tooling.yml
index d3a1060..bd127f4 100644
--- a/tooling/cli/adoc/modules/tooling-cli/examples/isis-tooling.yml
+++ b/tooling/cli/adoc/modules/tooling-cli/examples/isis-tooling.yml
@@ -21,77 +21,77 @@ global:
   namespacePartsSkipCount: 3
 
   sections:
-    App: org.apache.isis.app.*
-    Mavendeps: org.apache.isis.mavendeps.*
-    Testing: org.apache.isis.testing.*
-    Examples: org.apache.isis.examples.*
-
-    Root: org.apache.isis
-    Commons: org.apache.isis.commons.*
+#    App: org.apache.isis.app.*
+#    Mavendeps: org.apache.isis.mavendeps.*
+#    Testing: org.apache.isis.testing.*
+#    Examples: org.apache.isis.examples.*
+#
+#    Root: org.apache.isis
+#    Commons: org.apache.isis.commons.*
 
     Core: org.apache.isis.core.*
 
-    Persistence: org.apache.isis.persistence
-    JDO: "org.apache.isis.persistence:isis-persistence-jdo.*"
-    JPA: "org.apache.isis.persistence:isis-persistence-jpa.*"
-
-    Security: org.apache.isis.security
-    Bypass: "org.apache.isis.security:isis-security-bypass.*"
-    Keycloak: "org.apache.isis.security:isis-security-keycloak.*"
-    Shiro: "org.apache.isis.security:isis-security-shiro.*"
-
-    Viewer: org.apache.isis.viewer
-    "Restful Objects": "org.apache.isis.viewer:isis-viewer-restfulobjects.*"
-    Wicket: "org.apache.isis.viewer:isis-viewer-wicket.*"
-
-    Valuetypes: org.apache.isis.valuetypes.*
-    "Asciidoc": "org.apache.isis.valuetypes:isis-valuetypes-asciidoc.*"
-    "Markdown": "org.apache.isis.valuetypes:isis-valuetypes-markdown.*"
-    "SSE": "org.apache.isis.valuetypes:isis-valuetypes-ssec.*"
-
-    Mappings: org.apache.isis.mappings
-    #"Outbox Publisher": org.apache.isis.mappings:isis-mappings-jaxrsclient.*
-    "JAX-RS Client Library": "org.apache.isis.mappings:isis-mappings-jaxrsclient.*"
-    #Minio: "org.apache.isis.mappings:isis-mappings-minio.*"
-    "REST Client": "org.apache.isis.mappings:isis-mappings-restclient.*"
-    #"Slack Library": "org.apache.isis.mappings:isis-mappings-slack.*"
-
-    Extensions: org.apache.isis.extensions
-    "Core: Command Log": "org.apache.isis.extensions:isis-extensions-command-log.*"
-    "Core: Command Replay": "org.apache.isis.extensions:isis-extensions-command-replay.*"
-    #"Core: Flyway": "org.apache.isis.extensions:isis-extensions-flyway.*"
-    "Core: Model Annotation": "org.apache.isis.extensions:isis-extensions-modelannotation.*"
-    "Core: Quartz": "org.apache.isis.extensions:isis-extensions-quartz.*"
-    #"Security: Audit Trail": "org.apache.isis.security:isis-extensions-audit-trail.*"
-    "Security: Secman": "org.apache.isis.security:isis-extensions-secman.*"
-    #"Security: Session Log": "org.apache.isis.security:isis-extensions-session-log.*"
-    "Security: Shiro LDAP Realm": "org.apache.isis.security:isis-extensions-shiro-realm-ldap.*"
-    "RO Viewer: CORS": "org.apache.isis.security:isis-extensions-cors.*"
-    "Wicket Viewer: Excel Download": "org.apache.isis.security:isis-extensions-exceldownload.*"
-    "Wicket Viewer: Full Calendar": "org.apache.isis.security:isis-extensions-fullcalendar.*"
-    #"Wicket Viewer: Gmap3": "org.apache.isis.security:isis-extensions-gmap3.*"
-    "Wicket Viewer: Pdf.js": "org.apache.isis.security:isis-extensions-fullcalendar.*"
-
-    Subdomains: org.apache.isis.subdomains
-    "Base": "org.apache.isis.subdomains:isis-subdomains-base.*"
-    #"docx": "org.apache.isis.subdomains:isis-subdomains-docx.*"
-    "Excel": "org.apache.isis.subdomains:isis-subdomains-excel.*"
-    #"Freemarker": "org.apache.isis.subdomains:isis-subdomains-freemarker.*"
-    #"OGNL": "org.apache.isis.subdomains:isis-subdomains-ognl.*"
-    #"PDF Box": "org.apache.isis.subdomains:isis-subdomains-pdfbox.*"
-    "Spring": "org.apache.isis.subdomains:isis-subdomains-spring.*"
-    "XDocReport": "org.apache.isis.subdomains:isis-subdomains-xdocreport.*"
-    #"Zip": "org.apache.isis.subdomains:isis-subdomains-zip.*"
-
-    "Tooling": org.apache.isis.tooling.*
-    "Regression Tests": org.apache.isis.regressiontests.*
-
-    Incubator: org.apache.isis.incubator
-    "Kroviz Client": "org.apache.isis.incubator.clients:isis-client-kroviz.*"
-    "JavaFX Viewer": "org.apache.isis.incubator.viewer:isis-viewer-javafx.*"
-    "Vaadin Viewer": "org.apache.isis.incubator.viewer:isis-viewer-vaadin.*"
-
-    Legacy: org.apache.isis.legacy.*
+#    Persistence: org.apache.isis.persistence
+#    JDO: "org.apache.isis.persistence:isis-persistence-jdo.*"
+#    JPA: "org.apache.isis.persistence:isis-persistence-jpa.*"
+#
+#    Security: org.apache.isis.security
+#    Bypass: "org.apache.isis.security:isis-security-bypass.*"
+#    Keycloak: "org.apache.isis.security:isis-security-keycloak.*"
+#    Shiro: "org.apache.isis.security:isis-security-shiro.*"
+#
+#    Viewer: org.apache.isis.viewer
+#    "Restful Objects": "org.apache.isis.viewer:isis-viewer-restfulobjects.*"
+#    Wicket: "org.apache.isis.viewer:isis-viewer-wicket.*"
+#
+#    Valuetypes: org.apache.isis.valuetypes.*
+#    "Asciidoc": "org.apache.isis.valuetypes:isis-valuetypes-asciidoc.*"
+#    "Markdown": "org.apache.isis.valuetypes:isis-valuetypes-markdown.*"
+#    "SSE": "org.apache.isis.valuetypes:isis-valuetypes-ssec.*"
+#
+#    Mappings: org.apache.isis.mappings
+#    #"Outbox Publisher": org.apache.isis.mappings:isis-mappings-jaxrsclient.*
+#    "JAX-RS Client Library": "org.apache.isis.mappings:isis-mappings-jaxrsclient.*"
+#    #Minio: "org.apache.isis.mappings:isis-mappings-minio.*"
+#    "REST Client": "org.apache.isis.mappings:isis-mappings-restclient.*"
+#    #"Slack Library": "org.apache.isis.mappings:isis-mappings-slack.*"
+#
+#    Extensions: org.apache.isis.extensions
+#    "Core: Command Log": "org.apache.isis.extensions:isis-extensions-command-log.*"
+#    "Core: Command Replay": "org.apache.isis.extensions:isis-extensions-command-replay.*"
+#    #"Core: Flyway": "org.apache.isis.extensions:isis-extensions-flyway.*"
+#    "Core: Model Annotation": "org.apache.isis.extensions:isis-extensions-modelannotation.*"
+#    "Core: Quartz": "org.apache.isis.extensions:isis-extensions-quartz.*"
+#    #"Security: Audit Trail": "org.apache.isis.security:isis-extensions-audit-trail.*"
+#    "Security: Secman": "org.apache.isis.security:isis-extensions-secman.*"
+#    #"Security: Session Log": "org.apache.isis.security:isis-extensions-session-log.*"
+#    "Security: Shiro LDAP Realm": "org.apache.isis.security:isis-extensions-shiro-realm-ldap.*"
+#    "RO Viewer: CORS": "org.apache.isis.security:isis-extensions-cors.*"
+#    "Wicket Viewer: Excel Download": "org.apache.isis.security:isis-extensions-exceldownload.*"
+#    "Wicket Viewer: Full Calendar": "org.apache.isis.security:isis-extensions-fullcalendar.*"
+#    #"Wicket Viewer: Gmap3": "org.apache.isis.security:isis-extensions-gmap3.*"
+#    "Wicket Viewer: Pdf.js": "org.apache.isis.security:isis-extensions-fullcalendar.*"
+#
+#    Subdomains: org.apache.isis.subdomains
+#    "Base": "org.apache.isis.subdomains:isis-subdomains-base.*"
+#    #"docx": "org.apache.isis.subdomains:isis-subdomains-docx.*"
+#    "Excel": "org.apache.isis.subdomains:isis-subdomains-excel.*"
+#    #"Freemarker": "org.apache.isis.subdomains:isis-subdomains-freemarker.*"
+#    #"OGNL": "org.apache.isis.subdomains:isis-subdomains-ognl.*"
+#    #"PDF Box": "org.apache.isis.subdomains:isis-subdomains-pdfbox.*"
+#    "Spring": "org.apache.isis.subdomains:isis-subdomains-spring.*"
+#    "XDocReport": "org.apache.isis.subdomains:isis-subdomains-xdocreport.*"
+#    #"Zip": "org.apache.isis.subdomains:isis-subdomains-zip.*"
+#
+#    "Tooling": org.apache.isis.tooling.*
+#    "Regression Tests": org.apache.isis.regressiontests.*
+#
+#    Incubator: org.apache.isis.incubator
+#    "Kroviz Client": "org.apache.isis.incubator.clients:isis-client-kroviz.*"
+#    "JavaFX Viewer": "org.apache.isis.incubator.viewer:isis-viewer-javafx.*"
+#    "Vaadin Viewer": "org.apache.isis.incubator.viewer:isis-viewer-vaadin.*"
+#
+#    Legacy: org.apache.isis.legacy.*
 
 
 commands:
@@ -100,4 +100,6 @@ commands:
 
   index:
     fixOrphanedAdocIncludeStatements: false
+    skipTitleHeader: true
+    formatter: JAVA_SOURCES_WITH_SECTIONS
 


[isis] 02/02: ISIS-2444: further updates to ref guide (domain services)

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 5c9fb62f1cf62bfd7a9d06932d1d8535227f5832
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Sun Feb 14 10:19:00 2021 +0000

    ISIS-2444: further updates to ref guide (domain services)
---
 .../generated/pages/index/applib/Identifier.adoc   |  18 +-
 .../index/applib/RecreatableDomainObject.adoc      |  12 +-
 .../generated/pages/index/applib/ViewModel.adoc    |  12 +-
 .../index/applib/adapters/DefaultsProvider.adoc    |   6 +-
 .../index/applib/adapters/EncoderDecoder.adoc      |  12 +-
 .../pages/index/applib/adapters/Parser.adoc        |  36 ++--
 .../applib/adapters/ValueSemanticsProvider.adoc    |  18 +-
 .../index/applib/annotation/NatureOfService.adoc   |  12 +-
 .../pages/index/applib/annotation/SemanticsOf.adoc |  18 +-
 .../pages/index/applib/annotation/Where.adoc       |   6 +-
 .../pages/index/applib/clock/VirtualClock.adoc     |  66 +++---
 .../pages/index/applib/events/EventObjectBase.adoc |  18 +-
 .../applib/events/domain/AbstractDomainEvent.adoc  |  78 +++----
 .../applib/events/domain/ActionDomainEvent.adoc    |  30 +--
 .../events/domain/CollectionDomainEvent.adoc       |  12 +-
 .../index/applib/events/ui/AbstractUiEvent.adoc    |  12 +-
 .../index/applib/events/ui/CssClassUiEvent.adoc    |   6 +-
 .../pages/index/applib/events/ui/IconUiEvent.adoc  |  12 +-
 .../index/applib/events/ui/LayoutUiEvent.adoc      |   6 +-
 .../pages/index/applib/events/ui/TitleUiEvent.adoc |  12 +-
 .../applib/exceptions/TranslatableException.adoc   |  12 +-
 .../pages/index/applib/graph/tree/TreeAdapter.adoc |  18 +-
 .../pages/index/applib/graph/tree/TreeNode.adoc    |  30 +--
 .../pages/index/applib/graph/tree/TreePath.adoc    |  12 +-
 .../applib/layout/component/ActionLayoutData.adoc  |  24 +--
 .../layout/component/CollectionLayoutData.adoc     |  30 +--
 .../layout/component/DomainObjectLayoutData.adoc   |  18 +-
 .../index/applib/layout/component/FieldSet.adoc    |  36 ++--
 .../layout/component/PropertyLayoutData.adoc       |  24 +--
 .../layout/component/ServiceActionLayoutData.adoc  |  24 +--
 .../applib/layout/grid/bootstrap3/BS3Col.adoc      |  30 +--
 .../applib/layout/grid/bootstrap3/BS3Element.adoc  |   6 +-
 .../layout/grid/bootstrap3/BS3ElementAbstract.adoc |   6 +-
 .../applib/layout/grid/bootstrap3/BS3Grid.adoc     |   6 +-
 .../applib/layout/grid/bootstrap3/BS3Row.adoc      |  18 +-
 .../layout/grid/bootstrap3/BS3RowContent.adoc      |  12 +-
 .../applib/layout/grid/bootstrap3/BS3Tab.adoc      |   6 +-
 .../applib/layout/grid/bootstrap3/BS3TabGroup.adoc |  24 +--
 .../applib/layout/grid/bootstrap3/HasCssId.adoc    |   6 +-
 .../applib/layout/menubars/bootstrap3/BS3Menu.adoc |   6 +-
 .../layout/menubars/bootstrap3/BS3MenuBars.adoc    |   6 +-
 .../index/applib/mixins/dto/Dto_downloadXsd.adoc   |   4 +-
 .../mixins/layout/Object_downloadLayoutXml.adoc    |   4 +-
 .../generated/pages/index/applib/query/Query.adoc  |  18 +-
 .../pages/index/applib/query/QueryRange.adoc       |  36 ++--
 .../index/applib/services/DomainChangeRecord.adoc  |  54 ++---
 .../services/acceptheader/AcceptHeaderService.adoc |   6 +-
 .../index/applib/services/bookmark/Bookmark.adoc   |  12 +-
 .../applib/services/bookmark/BookmarkService.adoc  |  36 ++--
 .../services/bookmarkui/BookmarkUiService.adoc     |   6 +-
 .../index/applib/services/command/Command.adoc     |  30 +--
 .../services/command/CommandExecutorService.adoc   |   6 +-
 .../ContentMappingServiceForCommandsDto.adoc       |   6 +-
 .../commanddto/processor/CommandDtoProcessor.adoc  |   6 +-
 .../processor/spi/CommandDtoProcessorService.adoc  |   6 +-
 .../confview/ConfigurationViewService.adoc         |   6 +-
 .../services/conmap/ContentMappingService.adoc     |   6 +-
 .../index/applib/services/email/EmailService.adoc  |  12 +-
 .../index/applib/services/error/SimpleTicket.adoc  |   6 +-
 .../pages/index/applib/services/error/Ticket.adoc  |  30 +--
 .../applib/services/eventbus/EventBusService.adoc  |   6 +-
 .../services/exceprecog/ExceptionRecognizer.adoc   |   6 +-
 .../exceprecog/ExceptionRecognizerService.adoc     |  18 +-
 .../applib/services/exceprecog/Recognition.adoc    |  18 +-
 .../applib/services/factory/FactoryService.adoc    |  60 +++---
 .../applib/services/grid/GridLoaderService.adoc    |  30 +--
 .../index/applib/services/grid/GridService.adoc    |  82 +++++---
 .../applib/services/grid/GridSystemService.adoc    |  42 ++--
 .../index/applib/services/hint/HintStore.adoc      |  30 +--
 .../index/applib/services/i18n/LocaleProvider.adoc |  17 +-
 .../applib/services/i18n/TranslatableString.adoc   |  42 ++--
 .../applib/services/i18n/TranslationService.adoc   |  18 +-
 .../index/applib/services/iactn/Execution.adoc     |  42 ++--
 .../applib/services/iactn/ExecutionContext.adoc    |   6 +-
 .../index/applib/services/iactn/Interaction.adoc   |  30 +--
 .../applib/services/iactn/InteractionContext.adoc  |   6 +-
 .../index/applib/services/jaxb/JaxbService.adoc    |  86 ++++++--
 .../applib/services/layout/LayoutService.adoc      |  20 +-
 .../applib/services/layout/LayoutServiceMenu.adoc  |   6 +-
 .../pages/index/applib/services/layout/Style.adoc  |  80 ++++++++
 .../applib/services/linking/DeepLinkService.adoc   |   6 +-
 .../services/menu/MenuBarsLoaderService.adoc       |  24 ++-
 .../applib/services/menu/MenuBarsService.adoc      |  22 +-
 .../applib/services/message/MessageService.adoc    | 110 +++++-----
 .../index/applib/services/metamodel/Config.adoc    |  41 ++++
 .../services/metamodel/MetaModelService.adoc       |  86 ++++++--
 .../services/metamodel/MetaModelServiceMenu.adoc   |   2 +
 .../applib/services/metrics/MetricsService.adoc    |  12 +-
 .../services/publishing/spi/CommandSubscriber.adoc |   6 +-
 .../services/publishing/spi/EntityChanges.adoc     |  54 ++---
 .../publishing/spi/EntityChangesSubscriber.adoc    |   6 +-
 .../spi/EntityPropertyChangeSubscriber.adoc        |   6 +-
 .../publishing/spi/ExecutionSubscriber.adoc        |   6 +-
 .../queryresultscache/QueryResultsCache.adoc       |   6 +-
 ...eControl.adoc => QueryResultsCacheControl.adoc} |   4 +-
 .../applib/services/registry/ServiceRegistry.adoc  |  42 ++--
 .../services/repository/RepositoryService.adoc     | 132 ++++++------
 .../applib/services/scratchpad/Scratchpad.adoc     |  12 +-
 .../index/applib/services/sudo/SudoService.adoc    |  12 +-
 .../index/applib/services/title/TitleService.adoc  |  12 +-
 .../index/applib/services/user/UserMemento.adoc    |  36 ++--
 .../index/applib/services/user/UserService.adoc    |  30 +--
 .../services/userprof/UserProfileService.adoc      |   6 +-
 .../services/userreg/EmailNotificationService.adoc |  18 +-
 .../applib/services/wrapper/WrapperFactory.adoc    |  66 +++---
 .../applib/services/wrapper/WrappingObject.adoc    |  18 +-
 .../services/wrapper/control/ControlAbstract.adoc  |   6 +-
 .../services/wrapper/control/ExceptionHandler.adoc |   6 +-
 .../services/wrapper/control/SyncControl.adoc      |   6 +-
 .../wrapper/events/ActionArgumentEvent.adoc        |   6 +-
 .../wrapper/events/ActionInvocationEvent.adoc      |   6 +-
 .../wrapper/events/CollectionAddToEvent.adoc       |   6 +-
 .../wrapper/events/CollectionMethodEvent.adoc      |  30 +--
 .../services/wrapper/events/InteractionEvent.adoc  |  78 +++----
 .../services/wrapper/events/ParseValueEvent.adoc   |   6 +-
 .../wrapper/events/PropertyModifyEvent.adoc        |   6 +-
 .../wrapper/listeners/InteractionListener.adoc     |  96 ++++-----
 .../applib/services/xactn/TransactionService.adoc  |  24 +--
 .../applib/services/xactn/TransactionState.adoc    |  24 +--
 .../services/xactn/TransactionalProcessor.adoc     |  36 ++--
 .../index/applib/services/xml/XmlService.adoc      |  24 +--
 .../services/xmlsnapshot/XmlSnapshotService.adoc   |  18 +-
 .../xmlsnapshot/XmlSnapshotService~Snapshot.adoc   |  12 +-
 .../XmlSnapshotService~Snapshot~Builder.adoc       |  18 +-
 .../snapshot/SnapshottableWithInclusions.adoc      |   6 +-
 .../index/applib/spec/AbstractSpecification.adoc   |   6 +-
 .../index/applib/spec/AbstractSpecification2.adoc  |   6 +-
 .../pages/index/applib/spec/Specification.adoc     |   6 +-
 .../pages/index/applib/spec/Specification2.adoc    |   6 +-
 .../pages/index/applib/util/ReasonBuffer.adoc      |  18 +-
 .../pages/index/applib/util/ReasonBuffer2.adoc     |  36 ++--
 .../pages/index/applib/util/TitleBuffer.adoc       | 108 +++++-----
 .../applib/util/schema/InteractionDtoUtils.adoc    |  18 +-
 .../generated/pages/index/applib/value/Blob.adoc   |  18 +-
 .../generated/pages/index/applib/value/Clob.adoc   |   6 +-
 .../generated/pages/index/applib/value/Markup.adoc |   6 +-
 .../pages/index/commons/collections/Can.adoc       | 204 +++++++++---------
 .../pages/index/commons/having/HasUniqueId.adoc    |   6 +-
 .../pages/index/commons/having/HasUsername.adoc    |   6 +-
 .../transaction/TransactionServiceSpring.adoc      |  18 +-
 .../changetracking/EntityChangeTrackerDefault.adoc |   6 +-
 .../impl/IsisModuleExtCommandLogImpl.adoc          |   6 +-
 .../impl/mixins/HasUniqueId_command.adoc           |   6 +-
 .../primary/restapi/CommandRetrievalService.adoc   |   6 +-
 .../primary/ui/CommandReplayOnPrimaryService.adoc  |  18 +-
 .../secondary/analyser/CommandReplayAnalyser.adoc  |   6 +-
 .../analysis/CommandReplayAnalysisService.adoc     |   6 +-
 .../secondary/clock/TickingClockService.adoc       |  12 +-
 .../secondary/fetch/CommandFetcher.adoc            |   6 +-
 .../spi/ReplayCommandExecutionController.adoc      |   6 +-
 .../fullcalendar/applib/CalendarEventable.adoc     |   6 +-
 .../fullcalendar/applib/Calendarable.adoc          |  12 +-
 .../quartz/context/JobExecutionData.adoc           |  12 +-
 .../extensions/restclient/ResponseDigest.adoc      |  60 +++---
 .../api/permission/ApplicationPermission.adoc      |   6 +-
 .../ApplicationPermissionRepository.adoc           |   6 +-
 .../permission/PermissionsEvaluationService.adoc   |   6 +-
 .../secman/api/role/ApplicationRole.adoc           |   6 +-
 .../secman/api/role/ApplicationRoleRepository.adoc |  12 +-
 .../api/tenancy/ApplicationTenancyEvaluator.adoc   |   6 +-
 .../api/tenancy/ApplicationTenancyRepository.adoc  |  12 +-
 .../secman/api/user/ApplicationUser.adoc           |   6 +-
 .../secman/api/user/ApplicationUserRepository.adoc |  12 +-
 .../shirorealmldap/realm/impl/IsisLdapRealm.adoc   |  12 +-
 .../jdo/applib/integration/JdoSupportService.adoc  |  42 ++--
 .../jdo/datanucleus/IsisModuleJdoDatanucleus.adoc  |  12 +-
 .../changetracking/JdoLifecycleListener.adoc       |  12 +-
 .../jpa/applib/services/JpaSupportService.adoc     |  12 +-
 .../shiro/authorization/AuthorizorShiro.adoc       |  12 +-
 .../index/subdomains/base/applib/Chained.adoc      |  12 +-
 .../applib/services/calendar/CalendarService.adoc  |   6 +-
 .../subdomains/base/applib/utils/TitleBuilder.adoc |   6 +-
 .../base/applib/valuetypes/AbstractInterval.adoc   |  36 ++--
 .../base/applib/valuetypes/LocalDateInterval.adoc  |  12 +-
 .../subdomains/base/applib/valuetypes/VT.adoc      |   6 +-
 .../subdomains/base/applib/with/WithInterval.adoc  |  12 +-
 .../base/applib/with/WithIntervalContiguous.adoc   |  18 +-
 .../subdomains/excel/applib/dom/ExcelService.adoc  |  12 +-
 .../excel/applib/dom/util/ExcelServiceImpl.adoc    |  60 +++---
 .../excel/applib/dom/util/SheetPivoter.adoc        |   6 +-
 .../testing/fakedata/applib/services/Booleans.adoc |  12 +-
 .../fakedata/applib/services/Collections.adoc      |  12 +-
 .../fakedata/applib/services/FakeDataService.adoc  |   6 +-
 .../integtestsupport/applib/ThrowableMatchers.adoc |   6 +-
 .../applib/validate/DomainModelValidator.adoc      |  18 +-
 .../core/comparable/ComparableContractTester.adoc  |   6 +-
 .../unittestsupport/applib/core/files/Files.adoc   |   6 +-
 .../applib/core/jaxb/JaxbMatchers.adoc             |   6 +-
 .../applib/core/jmocking/Imposterisers.adoc        |   6 +-
 .../core/jmocking/InjectIntoJMockAction.adoc       |   6 +-
 .../applib/core/jmocking/JUnitRuleMockery2.adoc    |  36 ++--
 .../applib/core/soap/SoapEndpointSpec.adoc         |   6 +-
 .../applib/core/utils/IndentPrinter.adoc           |  30 +--
 .../markdown/applib/value/Converter.adoc           |   6 +-
 .../restfulobjects/applib/JsonRepresentation.adoc  | 228 ++++++++++-----------
 .../restfulobjects/applib/LinkRepresentation.adoc  |   6 +-
 .../index/viewer/restfulobjects/applib/Rel.adoc    |   6 +-
 .../restfulobjects/applib/RepresentationType.adoc  |  24 +--
 .../restfulobjects/applib/RestfulResponse.adoc     |   6 +-
 .../DomainObjectMemberRepresentation.adoc          |  18 +-
 .../domainobjects/DomainObjectRepresentation.adoc  |  30 +--
 .../domainobjects/DomainServiceResource.adoc       |   6 +-
 .../applib/homepage/HomePageResource.adoc          |   6 +-
 .../applib/menubars/MenuBarsResource.adoc          |  24 +--
 .../restfulobjects/applib/user/UserResource.adoc   |   6 +-
 .../restfulobjects/applib/util/JsonMapper.adoc     |   6 +-
 .../restfulobjects/applib/util/JsonNodeUtils.adoc  |   6 +-
 .../restfulobjects/applib/util/MediaTypes.adoc     |   6 +-
 .../RepresentationServiceContentNegotiator.adoc    |   6 +-
 ...entNegotiationServiceForRestfulObjectsV1_0.adoc |  18 +-
 .../ContentNegotiationServiceOrgApacheIsisV2.adoc  |  30 +--
 .../ContentNegotiationServiceXRoDomainType.adoc    |  12 +-
 .../modules/generated/pages/system-overview.adoc   | 182 +++++++++++++++-
 .../adoc/modules/applib-svc/pages/GridService.adoc |  71 +------
 .../GridService/hooks/examples_and_usage.adoc      |  23 ++-
 .../pages/GridService/hooks/implementation.adoc    |   2 +
 .../adoc/modules/applib-svc/pages/JaxbService.adoc |  49 +----
 .../JaxbService/hooks/examples_and_usage.adoc      |  13 ++
 .../pages/JaxbService/hooks/implementation.adoc    |   3 +
 .../modules/applib-svc/pages/LayoutService.adoc    |  98 +--------
 .../LayoutService/hooks/examples_and_usage.adoc    |  74 +++++++
 .../pages/LayoutService/hooks/implementation.adoc  |   2 +
 .../applib-svc/pages/LayoutServiceMenu.adoc        |  24 +--
 .../hooks/examples_and_usage.adoc                  |   4 +
 .../LayoutServiceMenu/hooks/implementation.adoc    |   2 +
 .../modules/applib-svc/pages/LocaleProvider.adoc   |  52 +----
 .../LocaleProvider/hooks/examples_and_usage.adoc   |  17 ++
 .../pages/LocaleProvider/hooks/implementation.adoc |   4 +
 .../applib-svc/pages/MenuBarsLoaderService.adoc    |  35 +---
 .../hooks/examples_and_usage.adoc                  |   3 +
 .../hooks/implementation.adoc                      |  19 ++
 .../modules/applib-svc/pages/MenuBarsService.adoc  |  38 +---
 .../MenuBarsService/hooks/examples_and_usage.adoc  |   3 +
 .../MenuBarsService/hooks/implementation.adoc      |   4 +
 .../modules/applib-svc/pages/MessageService.adoc   |  63 +-----
 .../MessageService/hooks/examples_and_usage.adoc   |  33 +++
 .../pages/MessageService/hooks/implementation.adoc |   2 +
 .../modules/applib-svc/pages/MetaModelService.adoc |  86 +-------
 .../MetaModelService/hooks/examples_and_usage.adoc |  10 +
 .../MetaModelService/hooks/implementation.adoc     |   2 +
 .../applib-svc/pages/MetaModelServiceMenu.adoc     |  25 +--
 .../modules/applib-svc/pages/MetricsService.adoc   |  43 +---
 .../MetricsService/hooks/examples_and_usage.adoc   |   8 +
 .../pages/MetricsService/hooks/implementation.adoc |   4 +
 .../applib-svc/pages/QueryResultsCache.adoc        |  95 +--------
 .../hooks/examples_and_usage.adoc                  |  53 ++++-
 .../QueryResultsCache/hooks/implementation.adoc    |   2 +
 .../applib-svc/pages/QueryResultsCacheControl.adoc |  30 +--
 .../hooks/implementation.adoc                      |   3 +
 .../applib-svc/pages/RepositoryService.adoc        |  27 +--
 .../hooks/examples_and_usage.adoc                  |   9 +
 .../modules/applib-svc/pages/RoutingService.adoc   |   8 +
 .../adoc/modules/applib-svc/pages/Scratchpad.adoc  |   7 +
 .../modules/applib-svc/pages/ServiceInjector.adoc  |   6 +
 .../modules/applib-svc/pages/ServiceRegistry.adoc  |   7 +
 .../applib-svc/pages/SessionLoggingService.adoc    |   7 +
 .../hooks/examples_and_usage.adoc                  |   0
 .../hooks/implementation.adoc                      |   2 +
 .../adoc/modules/applib-svc/pages/SudoService.adoc |   8 +
 .../modules/applib-svc/pages/SwaggerService.adoc   |   7 +
 .../applib-svc/pages/TableColumnOrderService.adoc  |   8 +
 .../modules/applib-svc/pages/TitleService.adoc     |   8 +
 .../applib-svc/pages/TransactionService.adoc       |   9 +
 .../applib-svc/pages/TransactionalProcessor.adoc   |  51 ++---
 .../hooks/examples_and_usage.adoc                  |   0
 .../hooks/implementation.adoc                      |   0
 .../applib-svc/pages/TranslationService.adoc       |   8 +
 .../applib-svc/pages/TranslationsResolver.adoc     |   8 +
 .../applib-svc/pages/UrlEncodingService.adoc       |   7 +
 .../applib-svc/pages/UserProfileService.adoc       |   7 +
 .../applib-svc/pages/UserRegistrationService.adoc  |   7 +
 .../adoc/modules/applib-svc/pages/UserService.adoc |   8 +
 .../modules/applib-svc/pages/WrapperFactory.adoc   |   7 +
 .../adoc/modules/applib-svc/pages/XmlService.adoc  |   7 +
 .../applib-svc/pages/XmlSnapshotService.adoc       |   7 +
 .../partials/_persistence-layer-api.adoc           |   8 +
 .../isis/applib/mixins/dto/Dto_downloadXsd.java    |   7 +-
 .../mixins/layout/Object_downloadLayoutXml.java    |   7 +-
 .../metamodel/Object_downloadMetamodelXml.java     |   3 +-
 .../isis/applib/services/grid/GridService.java     |  60 +++++-
 .../isis/applib/services/i18n/LocaleProvider.java  |   9 +
 .../jaxb/CatalogingSchemaOutputResolver.java       |   8 +-
 .../isis/applib/services/jaxb/IsisSchemas.java     |  32 +++
 .../isis/applib/services/jaxb/JaxbService.java     | 130 +++++++-----
 .../isis/applib/services/layout/LayoutService.java |  60 +-----
 .../applib/services/layout/LayoutServiceMenu.java  |   9 +-
 .../apache/isis/applib/services/layout/Style.java  |  61 ++++++
 .../services/menu/MenuBarsLoaderService.java       |  21 +-
 .../isis/applib/services/menu/MenuBarsService.java |  15 ++
 .../applib/services/message/MessageService.java    |  86 ++++++--
 .../isis/applib/services/metamodel/Config.java     | 115 +++++++++++
 .../services/metamodel/MetaModelService.java       | 152 +++++---------
 .../services/metamodel/MetaModelServiceMenu.java   |  11 +-
 .../applib/services/metrics/MetricsService.java    |   9 +
 .../queryresultscache/QueryResultsCache.java       |  24 ++-
 ...eControl.java => QueryResultsCacheControl.java} |  16 +-
 .../applib/services/repository/EntityState.java    |  37 ++++
 .../services/repository/RepositoryService.java     |   8 +-
 .../applib/services/xactn/TransactionService.java  |  18 +-
 .../bootstrap3/BS3MenuBars_roundtrip_Test.java     |   1 +
 .../isis/applib/services/jaxb/JaxbServiceTest.java |  20 +-
 .../metamodel/MetaModelService_Config_Test.java    |  12 +-
 build-tooling.sh                                   |   2 +-
 .../metamodel/facetapi/FacetWithAttributes.java    |   4 +-
 .../metamodel/inspect/Object_inspectMetamodel.java |  17 +-
 .../services/layout/LayoutServiceDefault.java      |   5 +-
 .../services/metamodel/MetaModelExporter.java      |  46 ++---
 .../metamodel/MetaModelServiceDefault.java         |   1 +
 .../core/metamodel/services/grid/BS3GridTest.java  |   6 +-
 .../services/menubars/BS3MenuBarsTest.java         |  10 +-
 .../runtimeservices/jaxb/JaxbServiceDefault.java   |  14 +-
 .../QueryResultsCacheDefault.java                  |   8 +-
 .../secondary/fetch/CommandFetcher.java            |   3 +-
 .../secondary/fetch/CommandFetcher_Test.java       |   7 +-
 .../domainmodel/AnnotationSyntesizerTest.java      |   9 +-
 .../DomainModelTest_usingGoodDomain.java           | 107 +++++-----
 .../QueryResultsCacheControlDefault.java           |   4 +-
 .../format/UnitFormatterWithSourceAndSections.java |  26 ++-
 .../tooling/javamodel/ast/MethodDeclarations.java  |  47 ++++-
 319 files changed, 3900 insertions(+), 3248 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 0d9fd4e..3b7ad12 100644
--- a/antora/components/system/modules/generated/pages/index/applib/Identifier.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/Identifier.adoc
@@ -47,17 +47,17 @@ class Identifier {
 }
 ----
 
-<.> xref:#isPropertyOrCollection[isPropertyOrCollection]
+<.> xref:#isPropertyOrCollection__[isPropertyOrCollection()]
 +
 --
 Convenience method.
 --
-<.> xref:#equals[equals]
+<.> xref:#equals__Object[equals(Object)]
 +
 --
 REVIEW: why not just compare the _#toString()_ representations?
 --
-<.> xref:#fromIdentityString[fromIdentityString]
+<.> xref:#fromIdentityString__String[fromIdentityString(String)]
 +
 --
 Factory method.
@@ -65,18 +65,18 @@ Factory method.
 
 == Members
 
-[#isPropertyOrCollection]
-=== isPropertyOrCollection
+[#isPropertyOrCollection__]
+=== isPropertyOrCollection()
 
 Convenience method.
 
-[#equals]
-=== equals
+[#equals__Object]
+=== equals(Object)
 
 REVIEW: why not just compare the _#toString()_ representations?
 
-[#fromIdentityString]
-=== fromIdentityString
+[#fromIdentityString__String]
+=== fromIdentityString(String)
 
 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 57a8110..a17bcb1 100644
--- a/antora/components/system/modules/generated/pages/index/applib/RecreatableDomainObject.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/RecreatableDomainObject.adoc
@@ -15,12 +15,12 @@ interface RecreatableDomainObject {
 }
 ----
 
-<.> xref:#__isis_memento[__isis_memento]
+<.> xref:#__isis_memento__[__isis_memento()]
 +
 --
 Obtain a memento of the recreatable object.
 --
-<.> xref:#__isis_recreate[__isis_recreate]
+<.> xref:#__isis_recreate__String[__isis_recreate(String)]
 +
 --
 Used to recreate a recreatable object with a memento obtained from _#__isis_recreate(String)_ .
@@ -28,8 +28,8 @@ Used to recreate a recreatable object with a memento obtained from _#__isis_recr
 
 == Members
 
-[#__isis_memento]
-=== __isis_memento
+[#__isis_memento__]
+=== __isis_memento()
 
 Obtain a memento of the recreatable object.
 
@@ -37,8 +37,8 @@ Typically this will be the identifier of a backing domain entity, but it could a
 
 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
+[#__isis_recreate__String]
+=== __isis_recreate(String)
 
 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 f2abd62..37f590d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/ViewModel.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/ViewModel.adoc
@@ -15,12 +15,12 @@ interface ViewModel {
 }
 ----
 
-<.> xref:#viewModelMemento[viewModelMemento]
+<.> xref:#viewModelMemento__[viewModelMemento()]
 +
 --
 Obtain a memento of the view model.
 --
-<.> xref:#viewModelInit[viewModelInit]
+<.> xref:#viewModelInit__String[viewModelInit(String)]
 +
 --
 Used to re-initialize a view model with a memento obtained from _#viewModelMemento()_ .
@@ -28,8 +28,8 @@ Used to re-initialize a view model with a memento obtained from _#viewModelMemen
 
 == Members
 
-[#viewModelMemento]
-=== viewModelMemento
+[#viewModelMemento__]
+=== viewModelMemento()
 
 Obtain a memento of the view model.
 
@@ -37,8 +37,8 @@ Typically this will be the identifier of a backing domain entity, but it could a
 
 This method is called by the framework in order that the view model may be recreated subsequently through _#viewModelInit(String)_ .
 
-[#viewModelInit]
-=== viewModelInit
+[#viewModelInit__String]
+=== viewModelInit(String)
 
 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 cc284a6..8906639 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,7 +18,7 @@ interface DefaultsProvider<T> {
 }
 ----
 
-<.> xref:#getDefaultValue[getDefaultValue]
+<.> xref:#getDefaultValue__[getDefaultValue()]
 +
 --
 The default, if any (as a pojo).
@@ -26,8 +26,8 @@ The default, if any (as a pojo).
 
 == Members
 
-[#getDefaultValue]
-=== getDefaultValue
+[#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 2a44909..2454123 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,12 +19,12 @@ interface EncoderDecoder<T> {
 }
 ----
 
-<.> xref:#toEncodedString[toEncodedString]
+<.> xref:#toEncodedString__T[toEncodedString(T)]
 +
 --
 Returns the provided object as an encoded string.
 --
-<.> xref:#fromEncodedString[fromEncodedString]
+<.> xref:#fromEncodedString__String[fromEncodedString(String)]
 +
 --
 Converts an encoded string to an instance of the object.
@@ -32,15 +32,15 @@ Converts an encoded string to an instance of the object.
 
 == Members
 
-[#toEncodedString]
-=== toEncodedString
+[#toEncodedString__T]
+=== toEncodedString(T)
 
 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
+[#fromEncodedString__String]
+=== fromEncodedString(String)
 
 Converts an encoded string to an instance of the object.
 
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 d4a72da..5ddb74a 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,32 +33,32 @@ interface Parser<T> {
 }
 ----
 
-<.> xref:#parseTextEntry[parseTextEntry]
+<.> xref:#parseTextEntry__Object_String[parseTextEntry(Object, String)]
 +
 --
 Parses a string to an instance of the object.
 --
-<.> xref:#typicalLength[typicalLength]
+<.> xref:#typicalLength__[typicalLength()]
 +
 --
 The typical length of objects that can be parsed.
 --
-<.> xref:#displayTitleOf[displayTitleOf]
+<.> xref:#displayTitleOf__T[displayTitleOf(T)]
 +
 --
 The title of the object.
 --
-<.> xref:#displayTitleOf[displayTitleOf]
+<.> xref:#displayTitleOf__T_String[displayTitleOf(T, String)]
 +
 --
 The title of the object using a mask.
 --
-<.> xref:#parseableTitleOf[parseableTitleOf]
+<.> xref:#parseableTitleOf__T[parseableTitleOf(T)]
 +
 --
 A title for the object that is valid but which may be easier to edit than the title provided by a `TitleFacet` .
 --
-<.> xref:#maxLength[maxLength]
+<.> xref:#maxLength__[maxLength()]
 +
 --
 The max length of objects that can be parsed (if any). A return type of -1 corresponds to unlimited.
@@ -66,37 +66,37 @@ The max length of objects that can be parsed (if any). A return type of -1 corre
 
 == Members
 
-[#parseTextEntry]
-=== parseTextEntry
+[#parseTextEntry__Object_String]
+=== parseTextEntry(Object, String)
 
 Parses a string to an instance of the object.
 
 Note that here the implementing class is acting as a factory for itself.
 
-[#typicalLength]
-=== typicalLength
+[#typicalLength__]
+=== typicalLength()
 
 The typical length of objects that can be parsed.
 
-[#displayTitleOf]
-=== displayTitleOf
+[#displayTitleOf__T]
+=== displayTitleOf(T)
 
 The title of the object.
 
-[#displayTitleOf]
-=== displayTitleOf
+[#displayTitleOf__T_String]
+=== displayTitleOf(T, String)
 
 The title of the object using a mask.
 
-[#parseableTitleOf]
-=== parseableTitleOf
+[#parseableTitleOf__T]
+=== parseableTitleOf(T)
 
 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
+[#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 8964ec9..5bd3232 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,17 +18,17 @@ interface ValueSemanticsProvider<T> {
 }
 ----
 
-<.> xref:#getParser[getParser]
+<.> xref:#getParser__[getParser()]
 +
 --
 The xref:system:generated:index/applib/adapters/Parser.adoc[Parser] , if any.
 --
-<.> xref:#getEncoderDecoder[getEncoderDecoder]
+<.> xref:#getEncoderDecoder__[getEncoderDecoder()]
 +
 --
 The xref:system:generated:index/applib/adapters/EncoderDecoder.adoc[EncoderDecoder] , if any.
 --
-<.> xref:#getDefaultsProvider[getDefaultsProvider]
+<.> xref:#getDefaultsProvider__[getDefaultsProvider()]
 +
 --
 The xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsProvider] , if any.
@@ -36,18 +36,18 @@ The xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsPr
 
 == Members
 
-[#getParser]
-=== getParser
+[#getParser__]
+=== getParser()
 
 The xref:system:generated:index/applib/adapters/Parser.adoc[Parser] , if any.
 
-[#getEncoderDecoder]
-=== getEncoderDecoder
+[#getEncoderDecoder__]
+=== getEncoderDecoder()
 
 The xref:system:generated:index/applib/adapters/EncoderDecoder.adoc[EncoderDecoder] , if any.
 
-[#getDefaultsProvider]
-=== getDefaultsProvider
+[#getDefaultsProvider__]
+=== getDefaultsProvider()
 
 The xref:system:generated:index/applib/adapters/DefaultsProvider.adoc[DefaultsProvider] , if any.
 
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 e11ffd7..b7a2a0c 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
@@ -25,12 +25,12 @@ The service's actions appear in the REST API and in 'viewers', eg. in the menu b
 --
 The service's actions should only be visible in the REST API exposed by the Restful Objects viewer.
 --
-<.> xref:#isView[isView]
+<.> xref:#isView__[isView()]
 +
 --
 Whether a service contributes its actions to viewers and to the REST API.
 --
-<.> xref:#isRestOnly[isRestOnly]
+<.> xref:#isRestOnly__[isRestOnly()]
 +
 --
 Whether a service contributes its actions exclusively to the REST API.
@@ -48,13 +48,13 @@ The service's actions appear in the REST API and in 'viewers', eg. in the menu b
 
 The service's actions should only be visible in the REST API exposed by the Restful Objects viewer.
 
-[#isView]
-=== isView
+[#isView__]
+=== isView()
 
 Whether a service contributes its actions to viewers and to the REST API.
 
-[#isRestOnly]
-=== isRestOnly
+[#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/SemanticsOf.adoc b/antora/components/system/modules/generated/pages/index/applib/annotation/SemanticsOf.adoc
index f6f5c88..ad0f80b 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
@@ -58,17 +58,17 @@ Neither safe nor idempotent; every invocation is likely to change the state of t
 --
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
 --
-<.> xref:#isIdempotentInNature[isIdempotentInNature]
+<.> xref:#isIdempotentInNature__[isIdempotentInNature()]
 +
 --
 Any of _#SAFE_ , _#SAFE_AND_REQUEST_CACHEABLE_ or (obviously) _#IDEMPOTENT_ .
 --
-<.> xref:#isSafeInNature[isSafeInNature]
+<.> xref:#isSafeInNature__[isSafeInNature()]
 +
 --
 Either of _#SAFE_ or _#SAFE_AND_REQUEST_CACHEABLE_ .
 --
-<.> xref:#isSafe[isSafe]
+<.> xref:#isSafe__[isSafe()]
 +
 --
 [WARNING]
@@ -146,18 +146,18 @@ If supported the UI viewer will show a confirmation dialog before executing the
 
 Ignore the value provided by this annotation (meaning that the framework will keep searching, in meta annotations or superclasses/interfaces).
 
-[#isIdempotentInNature]
-=== isIdempotentInNature
+[#isIdempotentInNature__]
+=== isIdempotentInNature()
 
 Any of _#SAFE_ , _#SAFE_AND_REQUEST_CACHEABLE_ or (obviously) _#IDEMPOTENT_ .
 
-[#isSafeInNature]
-=== isSafeInNature
+[#isSafeInNature__]
+=== isSafeInNature()
 
 Either of _#SAFE_ or _#SAFE_AND_REQUEST_CACHEABLE_ .
 
-[#isSafe]
-=== isSafe
+[#isSafe__]
+=== isSafe()
 
 [WARNING]
 ====
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 a3fa4f9..d8eb08a 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
@@ -79,7 +79,7 @@ To act as an override if a member would normally be hidden as a result of some o
 --
 Acts as the default no-op value for _PropertyLayout#hidden()_ , _CollectionLayout#hidden()_ and _ActionLayout#hidden()_ .
 --
-<.> xref:#includes[includes]
+<.> xref:#includes__Where[includes(Where)]
 +
 --
 Whether this `Where` is a superset of the context `Where` provided.
@@ -155,8 +155,8 @@ For example, if a property is annotated with `@Title` , then normally this shoul
 
 Acts as the default no-op value for _PropertyLayout#hidden()_ , _CollectionLayout#hidden()_ and _ActionLayout#hidden()_ .
 
-[#includes]
-=== includes
+[#includes__Where]
+=== includes(Where)
 
 Whether this `Where` is a superset of the context `Where` provided.
 
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 ec4b3c6..8615094 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 {
 }
 ----
 
-<.> xref:#now[now]
+<.> xref:#now__[now()]
 +
 --
 Returns the (virtual) time as an _Instant_ .
 --
-<.> xref:#system[system]
+<.> xref:#system__[system()]
 +
 --
 Returns a the system's default ticking clock.
 --
-<.> xref:#nowAt[nowAt]
+<.> xref:#nowAt__Instant[nowAt(Instant)]
 +
 --
 Returns a ticking clock set to virtual time _Instant_ _virtualNow_
 --
-<.> xref:#frozenAt[frozenAt]
+<.> xref:#frozenAt__Instant[frozenAt(Instant)]
 +
 --
 Always returns the time _Instant_ as given by _frozenAt_
 --
-<.> xref:#frozenTestClock[frozenTestClock]
+<.> xref:#frozenTestClock__[frozenTestClock()]
 +
 --
 Always returns the time _Instant_ 2003/8/17 21:30:25 (UTC)
 --
-<.> xref:#getEpochMillis[getEpochMillis]
+<.> xref:#getEpochMillis__[getEpochMillis()]
 +
 --
 Returns the (virtual) time as the number of milliseconds since the epoch start.
 --
-<.> xref:#localDate[localDate]
+<.> xref:#localDate__ZoneId[localDate(ZoneId)]
 +
 --
 Returns the (virtual) time as _LocalDate_ , using the _ZoneId_ timezone.
 --
-<.> xref:#localDateTime[localDateTime]
+<.> xref:#localDateTime__ZoneId[localDateTime(ZoneId)]
 +
 --
 Returns the (virtual) time as _LocalDateTime_ , using the _ZoneId_ timezone.
 --
-<.> xref:#offsetDateTime[offsetDateTime]
+<.> xref:#offsetDateTime__ZoneId[offsetDateTime(ZoneId)]
 +
 --
 Returns the (virtual) time as _OffsetDateTime_ , using the _ZoneId_ timezone.
 --
-<.> xref:#asJodaDateTime[asJodaDateTime]
+<.> xref:#asJodaDateTime__ZoneId[asJodaDateTime(ZoneId)]
 +
 --
 [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.
 --
-<.> xref:#asJodaLocalDate[asJodaLocalDate]
+<.> xref:#asJodaLocalDate__ZoneId[asJodaLocalDate(ZoneId)]
 +
 --
 [WARNING]
@@ -97,53 +97,53 @@ Returns the time as a Joda _DateTime_ , using the _ZoneId#systemDefault() system
 
 == Members
 
-[#now]
-=== now
+[#now__]
+=== now()
 
 Returns the (virtual) time as an _Instant_ .
 
-[#system]
-=== system
+[#system__]
+=== system()
 
 Returns a the system's default ticking clock.
 
-[#nowAt]
-=== nowAt
+[#nowAt__Instant]
+=== nowAt(Instant)
 
 Returns a ticking clock set to virtual time _Instant_ _virtualNow_
 
-[#frozenAt]
-=== frozenAt
+[#frozenAt__Instant]
+=== frozenAt(Instant)
 
 Always returns the time _Instant_ as given by _frozenAt_
 
-[#frozenTestClock]
-=== frozenTestClock
+[#frozenTestClock__]
+=== frozenTestClock()
 
 Always returns the time _Instant_ 2003/8/17 21:30:25 (UTC)
 
-[#getEpochMillis]
-=== getEpochMillis
+[#getEpochMillis__]
+=== getEpochMillis()
 
 Returns the (virtual) time as the number of milliseconds since the epoch start.
 
-[#localDate]
-=== localDate
+[#localDate__ZoneId]
+=== localDate(ZoneId)
 
 Returns the (virtual) time as _LocalDate_ , using the _ZoneId_ timezone.
 
-[#localDateTime]
-=== localDateTime
+[#localDateTime__ZoneId]
+=== localDateTime(ZoneId)
 
 Returns the (virtual) time as _LocalDateTime_ , using the _ZoneId_ timezone.
 
-[#offsetDateTime]
-=== offsetDateTime
+[#offsetDateTime__ZoneId]
+=== offsetDateTime(ZoneId)
 
 Returns the (virtual) time as _OffsetDateTime_ , using the _ZoneId_ timezone.
 
-[#asJodaDateTime]
-=== asJodaDateTime
+[#asJodaDateTime__ZoneId]
+=== asJodaDateTime(ZoneId)
 
 [WARNING]
 ====
@@ -154,8 +154,8 @@ please migrate to java.time.*
 
 Returns the time as a Joda _org.joda.time.DateTime_ , using the _ZoneId#systemDefault() system default_ timezone.
 
-[#asJodaLocalDate]
-=== asJodaLocalDate
+[#asJodaLocalDate__ZoneId]
+=== asJodaLocalDate(ZoneId)
 
 [WARNING]
 ====
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 813ec91..61c9e08 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,17 +12,17 @@ class EventObjectBase<T> {
 }
 ----
 
-<.> xref:#getSource[getSource]
+<.> xref:#getSource__[getSource()]
 +
 --
 The object on which the Event initially occurred.
 --
-<.> xref:#initSource[initSource]
+<.> xref:#initSource__T[initSource(T)]
 +
 --
 A one-shot function. Only allowed to be called if a source has not already been set.
 --
-<.> xref:#toString[toString]
+<.> xref:#toString__[toString()]
 +
 --
 Returns a String representation of this EventObject.
@@ -30,18 +30,18 @@ Returns a String representation of this EventObject.
 
 == Members
 
-[#getSource]
-=== getSource
+[#getSource__]
+=== getSource()
 
 The object on which the Event initially occurred.
 
-[#initSource]
-=== initSource
+[#initSource__T]
+=== initSource(T)
 
 A one-shot function. Only allowed to be called if a source has not already been set.
 
-[#toString]
-=== toString
+[#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 b4e4e5f..45bc0b7 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
@@ -32,47 +32,47 @@ class AbstractDomainEvent<S> {
 --
 If used then the framework will set state via (non-API) setters.
 --
-<.> xref:#setMixedIn[setMixedIn]
+<.> xref:#setMixedIn__Object[setMixedIn(Object)]
 +
 --
 Not API - set by the framework.
 --
-<.> xref:#getSubject[getSubject]
+<.> 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.
 --
-<.> xref:#setEventPhase[setEventPhase]
+<.> xref:#setEventPhase__Phase[setEventPhase(Phase)]
 +
 --
 Not API, set by the framework.
 --
-<.> xref:#setIdentifier[setIdentifier]
+<.> xref:#setIdentifier__Identifier[setIdentifier(Identifier)]
 +
 --
 Not API, set by the framework if the no-arg constructor is used.
 --
-<.> xref:#hide[hide]
-<.> xref:#disable[disable]
-<.> xref:#disable[disable]
-<.> xref:#invalidate[invalidate]
-<.> xref:#invalidate[invalidate]
-<.> xref:#veto[veto]
+<.> xref:#hide__[hide()]
+<.> xref:#disable__String[disable(String)]
+<.> xref:#disable__TranslatableString[disable(TranslatableString)]
+<.> xref:#invalidate__String[invalidate(String)]
+<.> xref:#invalidate__TranslatableString[invalidate(TranslatableString)]
+<.> xref:#veto__String_Object[veto(String, Object)]
 +
 --
 Use instead of _#hide()_ , _#disable(String)_ and _#invalidate(String)_ ; just delegates to appropriate vetoing method based upon the _#getEventPhase() phase_ .
 --
-<.> xref:#veto[veto]
+<.> xref:#veto__TranslatableString[veto(TranslatableString)]
 +
 --
 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_ .
 --
-<.> xref:#get[get]
+<.> xref:#get__Object[get(Object)]
 +
 --
 Obtain user-data, as set by a previous _#getEventPhase() phase_ .
 --
-<.> xref:#put[put]
+<.> xref:#put__Object_Object[put(Object, Object)]
 +
 --
 Set user-data, for the use of a subsequent _#getEventPhase() phase_ .
@@ -87,62 +87,62 @@ 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
+[#setMixedIn__Object]
+=== setMixedIn(Object)
 
 Not API - set by the framework.
 
-[#getSubject]
-=== getSubject
+[#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
+[#setEventPhase__Phase]
+=== setEventPhase(Phase)
 
 Not API, set by the framework.
 
-[#setIdentifier]
-=== setIdentifier
+[#setIdentifier__Identifier]
+=== setIdentifier(Identifier)
 
 Not API, set by the framework if the no-arg constructor is used.
 
-[#hide]
-=== hide
+[#hide__]
+=== hide()
 
-[#disable]
-=== disable
+[#disable__String]
+=== disable(String)
 
-[#disable]
-=== disable
+[#disable__TranslatableString]
+=== disable(TranslatableString)
 
-[#invalidate]
-=== invalidate
+[#invalidate__String]
+=== invalidate(String)
 
-[#invalidate]
-=== invalidate
+[#invalidate__TranslatableString]
+=== invalidate(TranslatableString)
 
-[#veto]
-=== veto
+[#veto__String_Object]
+=== veto(String, Object)
 
 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
+[#veto__TranslatableString]
+=== veto(TranslatableString)
 
 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
+[#get__Object]
+=== get(Object)
 
 Obtain user-data, as set by a previous _#getEventPhase() phase_ .
 
-[#put]
-=== put
+[#put__Object_Object]
+=== put(Object, Object)
 
 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 74325da..d7f7e04 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
@@ -21,27 +21,27 @@ class ActionDomainEvent<S> {
 --
 If used then the framework will set state via (non-API) setters.
 --
-<.> xref:#setReturnValue[setReturnValue]
+<.> xref:#setReturnValue__Object[setReturnValue(Object)]
 +
 --
 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.
 --
-<.> xref:#setSemantics[setSemantics]
+<.> xref:#setSemantics__SemanticsOf[setSemantics(SemanticsOf)]
 +
 --
 Not API - set by the framework.
 --
-<.> xref:#setParameterNames[setParameterNames]
+<.> xref:#setParameterNames__List[setParameterNames(List)]
 +
 --
 Not API - set by the framework.
 --
-<.> xref:#setParameterTypes[setParameterTypes]
+<.> xref:#setParameterTypes__List[setParameterTypes(List)]
 +
 --
 Not API - set by the framework.
 --
-<.> xref:#setMixedIn[setMixedIn]
+<.> xref:#setMixedIn__Object[setMixedIn(Object)]
 +
 --
 Not API - set by the framework.
@@ -56,28 +56,28 @@ 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
+[#setReturnValue__Object]
+=== setReturnValue(Object)
 
 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
+[#setSemantics__SemanticsOf]
+=== setSemantics(SemanticsOf)
 
 Not API - set by the framework.
 
-[#setParameterNames]
-=== setParameterNames
+[#setParameterNames__List]
+=== setParameterNames(List)
 
 Not API - set by the framework.
 
-[#setParameterTypes]
-=== setParameterTypes
+[#setParameterTypes__List]
+=== setParameterTypes(List)
 
 Not API - set by the framework.
 
-[#setMixedIn]
-=== setMixedIn
+[#setMixedIn__Object]
+=== setMixedIn(Object)
 
 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 b5c2200..a90bceb 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
@@ -18,12 +18,12 @@ class CollectionDomainEvent<S, T> {
 --
 If used then the framework will set state via (non-API) setters.
 --
-<.> xref:#setValue[setValue]
+<.> xref:#setValue__T[setValue(T)]
 +
 --
 Not API, set by the framework.
 --
-<.> xref:#setOf[setOf]
+<.> xref:#setOf__Of[setOf(Of)]
 +
 --
 Not API; updates from _Of#ACCESS_ to either _Of#ADD_TO_ or _Of#REMOVE_FROM_ when hits the _AbstractDomainEvent.Phase#VALIDATE validation phase_ .
@@ -38,13 +38,13 @@ 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
+[#setValue__T]
+=== setValue(T)
 
 Not API, set by the framework.
 
-[#setOf]
-=== setOf
+[#setOf__Of]
+=== setOf(Of)
 
 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/ui/AbstractUiEvent.adoc b/antora/components/system/modules/generated/pages/index/applib/events/ui/AbstractUiEvent.adoc
index ea36d0d..0725599 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
@@ -18,12 +18,12 @@ class AbstractUiEvent<S> {
 --
 If used then the framework will set state via (non-API) setters.
 --
-<.> xref:#get[get]
+<.> xref:#get__Object[get(Object)]
 +
 --
 Obtain user-data, as set by any other subscribers.
 --
-<.> xref:#put[put]
+<.> xref:#put__Object_Object[put(Object, Object)]
 +
 --
 Set user-data, for the use of other subscribers.
@@ -36,13 +36,13 @@ Set user-data, for the use of other subscribers.
 
 If used then the framework will set state via (non-API) setters.
 
-[#get]
-=== get
+[#get__Object]
+=== get(Object)
 
 Obtain user-data, as set by any other subscribers.
 
-[#put]
-=== put
+[#put__Object_Object]
+=== put(Object, Object)
 
 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 a85c628..cdb047a 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
@@ -19,7 +19,7 @@ class CssClassUiEvent<S> {
 --
 If used then the framework will set state via (non-API) setters.
 --
-<.> xref:#setCssClass[setCssClass]
+<.> xref:#setCssClass__String[setCssClass(String)]
 +
 --
 For subscribers to call to provide a CSS class for this object.
@@ -32,8 +32,8 @@ For subscribers to call to provide a CSS class for this object.
 
 If used then the framework will set state via (non-API) setters.
 
-[#setCssClass]
-=== setCssClass
+[#setCssClass__String]
+=== setCssClass(String)
 
 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 f1c5d72..6561c0b 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
@@ -20,12 +20,12 @@ class IconUiEvent<S> {
 --
 If used then the framework will set state via (non-API) setters.
 --
-<.> xref:#getIconName[getIconName]
+<.> xref:#getIconName__[getIconName()]
 +
 --
 The icon name as provided by a subscriber using _#setIconName(String)_ .
 --
-<.> xref:#setIconName[setIconName]
+<.> xref:#setIconName__String[setIconName(String)]
 +
 --
 For subscribers to call to provide an icon name for this object.
@@ -40,13 +40,13 @@ 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
+[#getIconName__]
+=== getIconName()
 
 The icon name as provided by a subscriber using _#setIconName(String)_ .
 
-[#setIconName]
-=== setIconName
+[#setIconName__String]
+=== setIconName(String)
 
 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 8c9763f..ba125d7 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
@@ -19,7 +19,7 @@ class LayoutUiEvent<S> {
 --
 If used then the framework will set state via (non-API) setters.
 --
-<.> xref:#setLayout[setLayout]
+<.> xref:#setLayout__String[setLayout(String)]
 +
 --
 For subscribers to call to provide a layout for this object.
@@ -34,8 +34,8 @@ 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
+[#setLayout__String]
+=== setLayout(String)
 
 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 e38be1b..256ab6f 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
@@ -20,12 +20,12 @@ class TitleUiEvent<S> {
 --
 If used then the framework will set state via (non-API) setters.
 --
-<.> xref:#setTitle[setTitle]
+<.> xref:#setTitle__String[setTitle(String)]
 +
 --
 For subscribers to call to provide a (non-translated) title for this object.
 --
-<.> xref:#setTranslatableTitle[setTranslatableTitle]
+<.> xref:#setTranslatableTitle__TranslatableString[setTranslatableTitle(TranslatableString)]
 +
 --
 For subscribers to call to provide a translatable (i18n) title for this object.
@@ -40,13 +40,13 @@ 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
+[#setTitle__String]
+=== setTitle(String)
 
 For subscribers to call to provide a (non-translated) title for this object.
 
-[#setTranslatableTitle]
-=== setTranslatableTitle
+[#setTranslatableTitle__TranslatableString]
+=== setTranslatableTitle(TranslatableString)
 
 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 60a7bfa..28f4f55 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
@@ -15,12 +15,12 @@ interface TranslatableException {
 }
 ----
 
-<.> xref:#getTranslatableMessage[getTranslatableMessage]
+<.> xref:#getTranslatableMessage__[getTranslatableMessage()]
 +
 --
 In the spirit of _Exception#getLocalizedMessage()_ , but using xref:system:generated:index/applib/services/i18n/TranslatableString.adoc[TranslatableString] instead.
 --
-<.> xref:#getTranslationContext[getTranslationContext]
+<.> 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)_ .
@@ -28,15 +28,15 @@ The context to use when translating the _#getTranslatableMessage() translatable
 
 == Members
 
-[#getTranslatableMessage]
-=== getTranslatableMessage
+[#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
+[#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 bc2c757..05c7f7b 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,18 +14,18 @@ interface TreeAdapter<T> {
 }
 ----
 
-<.> xref:#parentOf[parentOf]
-<.> xref:#childCountOf[childCountOf]
-<.> xref:#childrenOf[childrenOf]
+<.> xref:#parentOf__T[parentOf(T)]
+<.> xref:#childCountOf__T[childCountOf(T)]
+<.> xref:#childrenOf__T[childrenOf(T)]
 
 == Members
 
-[#parentOf]
-=== parentOf
+[#parentOf__T]
+=== parentOf(T)
 
-[#childCountOf]
-=== childCountOf
+[#childCountOf__T]
+=== childCountOf(T)
 
-[#childrenOf]
-=== childrenOf
+[#childrenOf__T]
+=== childrenOf(T)
 
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 ef123d8..c79d517 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,44 +33,44 @@ interface TreeNode<T> {
 }
 ----
 
-<.> xref:#getTreeState[getTreeState]
-<.> xref:#expand[expand]
+<.> xref:#getTreeState__[getTreeState()]
+<.> xref:#expand__TreePath[expand(TreePath)]
 +
 --
 Adds _treePaths_ to the set of expanded nodes, as held by this tree's shared state object.
 --
-<.> xref:#collapse[collapse]
+<.> xref:#collapse__TreePath[collapse(TreePath)]
 +
 --
 Removes _treePaths_ from the set of expanded nodes, as held by this tree's shared state object.
 --
-<.> xref:#lazy[lazy]
+<.> xref:#lazy__T_Class[lazy(T, Class)]
 +
 --
 Convenient shortcut.
 --
-<.> xref:#getTreeAdapterClass[getTreeAdapterClass]
+<.> xref:#getTreeAdapterClass__[getTreeAdapterClass()]
 
 == Members
 
-[#getTreeState]
-=== getTreeState
+[#getTreeState__]
+=== getTreeState()
 
-[#expand]
-=== expand
+[#expand__TreePath]
+=== expand(TreePath)
 
 Adds _treePaths_ to the set of expanded nodes, as held by this tree's shared state object.
 
-[#collapse]
-=== collapse
+[#collapse__TreePath]
+=== collapse(TreePath)
 
 Removes _treePaths_ from the set of expanded nodes, as held by this tree's shared state object.
 
-[#lazy]
-=== lazy
+[#lazy__T_Class]
+=== lazy(T, Class)
 
 Convenient shortcut.
 
-[#getTreeAdapterClass]
-=== getTreeAdapterClass
+[#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 0fe2883..558fd6b 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,14 +20,14 @@ interface TreePath {
 }
 ----
 
-<.> xref:#append[append]
-<.> xref:#getParentIfAny[getParentIfAny]
+<.> xref:#append__int[append(int)]
+<.> xref:#getParentIfAny__[getParentIfAny()]
 
 == Members
 
-[#append]
-=== append
+[#append__int]
+=== append(int)
 
-[#getParentIfAny]
-=== getParentIfAny
+[#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 f2d1f6d..120b26b 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,22 +44,22 @@ class ActionLayoutData {
 }
 ----
 
-<.> xref:#getId[getId]
+<.> xref:#getId__[getId()]
 +
 --
 Method name.
 --
-<.> xref:#getOwner[getOwner]
+<.> xref:#getOwner__[getOwner()]
 +
 --
 Owner.
 --
-<.> xref:#getMetadataError[getMetadataError]
+<.> xref:#getMetadataError__[getMetadataError()]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> xref:#getLink[getLink]
+<.> xref:#getLink__[getLink()]
 +
 --
 The link to access this resource from the REST API (Restful Objects viewer).
@@ -67,27 +67,27 @@ The link to access this resource from the REST API (Restful Objects viewer).
 
 == Members
 
-[#getId]
-=== getId
+[#getId__]
+=== getId()
 
 Method name.
 
 Overloaded methods are not supported.
 
-[#getOwner]
-=== getOwner
+[#getOwner__]
+=== getOwner()
 
 Owner.
 
 Set programmatically by framework after reading in from XML.
 
-[#getMetadataError]
-=== getMetadataError
+[#getMetadataError__]
+=== getMetadataError()
 
 For diagnostics; populated by the framework if and only if a metadata error.
 
-[#getLink]
-=== getLink
+[#getLink__]
+=== getLink()
 
 The link to access this resource from the REST API (Restful Objects viewer).
 
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 e332e91..275aca2 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,27 +40,27 @@ class CollectionLayoutData {
 }
 ----
 
-<.> xref:#getId[getId]
+<.> xref:#getId__[getId()]
 +
 --
 Collection identifier, being the getter method without "get" prefix, first letter lower cased.
 --
-<.> xref:#getDefaultView[getDefaultView]
+<.> xref:#getDefaultView__[getDefaultView()]
 +
 --
 Typically `table` or `hidden` , but could be any other named view that is configured and appropriate, eg `gmap3` or `fullcalendar2` .
 --
-<.> xref:#getOwner[getOwner]
+<.> xref:#getOwner__[getOwner()]
 +
 --
 Owner.
 --
-<.> xref:#getMetadataError[getMetadataError]
+<.> xref:#getMetadataError__[getMetadataError()]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> xref:#getLink[getLink]
+<.> xref:#getLink__[getLink()]
 +
 --
 The link to access this resource from the REST API (Restful Objects viewer).
@@ -68,30 +68,30 @@ The link to access this resource from the REST API (Restful Objects viewer).
 
 == Members
 
-[#getId]
-=== getId
+[#getId__]
+=== getId()
 
 Collection identifier, being the getter method without "get" prefix, first letter lower cased.
 
-[#getDefaultView]
-=== getDefaultView
+[#getDefaultView__]
+=== getDefaultView()
 
 Typically `table` or `hidden` , but could be any other named view that is configured and appropriate, eg `gmap3` or `fullcalendar2` .
 
-[#getOwner]
-=== getOwner
+[#getOwner__]
+=== getOwner()
 
 Owner.
 
 Set programmatically by framework after reading in from XML.
 
-[#getMetadataError]
-=== getMetadataError
+[#getMetadataError__]
+=== getMetadataError()
 
 For diagnostics; populated by the framework if and only if a metadata error.
 
-[#getLink]
-=== getLink
+[#getLink__]
+=== getLink()
 
 The link to access this resource from the REST API (Restful Objects viewer).
 
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 96f7955..b7b174b 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,17 +34,17 @@ class DomainObjectLayoutData {
 }
 ----
 
-<.> xref:#getMetadataError[getMetadataError]
+<.> xref:#getMetadataError__[getMetadataError()]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> xref:#getOwner[getOwner]
+<.> xref:#getOwner__[getOwner()]
 +
 --
 Owner.
 --
-<.> xref:#getLink[getLink]
+<.> xref:#getLink__[getLink()]
 +
 --
 The link to access this resource from the REST API (Restful Objects viewer).
@@ -52,20 +52,20 @@ The link to access this resource from the REST API (Restful Objects viewer).
 
 == Members
 
-[#getMetadataError]
-=== getMetadataError
+[#getMetadataError__]
+=== getMetadataError()
 
 For diagnostics; populated by the framework if and only if a metadata error.
 
-[#getOwner]
-=== getOwner
+[#getOwner__]
+=== getOwner()
 
 Owner.
 
 Set programmatically by framework after reading in from XML.
 
-[#getLink]
-=== getLink
+[#getLink__]
+=== getLink()
 
 The link to access this resource from the REST API (Restful Objects viewer).
 
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 7a2dbd7..ee6249e 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,32 +30,32 @@ class FieldSet {
 }
 ----
 
-<.> xref:#getId[getId]
+<.> xref:#getId__[getId()]
 +
 --
 As per <div id="...">...</div> : must be unique across entire page.
 --
-<.> xref:#isUnreferencedActions[isUnreferencedActions]
+<.> xref:#isUnreferencedActions__[isUnreferencedActions()]
 +
 --
 Whether this fieldset should be used to hold any unreferenced actions (contributed or "native").
 --
-<.> xref:#isUnreferencedProperties[isUnreferencedProperties]
+<.> xref:#isUnreferencedProperties__[isUnreferencedProperties()]
 +
 --
 Whether this fieldset should be used to hold any unreferenced properties (contributed or "native").
 --
-<.> xref:#getName[getName]
+<.> xref:#getName__[getName()]
 +
 --
 Corresponds to the _MemberOrder#name()_ (when applied to properties).
 --
-<.> xref:#getOwner[getOwner]
+<.> xref:#getOwner__[getOwner()]
 +
 --
 Owner.
 --
-<.> xref:#getMetadataError[getMetadataError]
+<.> xref:#getMetadataError__[getMetadataError()]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
@@ -63,39 +63,39 @@ For diagnostics; populated by the framework if and only if a metadata error.
 
 == Members
 
-[#getId]
-=== getId
+[#getId__]
+=== getId()
 
 As per <div id="...">...</div> : must be unique across entire page.
 
-[#isUnreferencedActions]
-=== isUnreferencedActions
+[#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
+[#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
+[#getName__]
+=== getName()
 
 Corresponds to the _MemberOrder#name()_ (when applied to properties).
 
-[#getOwner]
-=== getOwner
+[#getOwner__]
+=== getOwner()
 
 Owner.
 
 Set programmatically by framework after reading in from XML.
 
-[#getMetadataError]
-=== getMetadataError
+[#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/PropertyLayoutData.adoc b/antora/components/system/modules/generated/pages/index/applib/layout/component/PropertyLayoutData.adoc
index ee3de96..7c5a8e7 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,22 +46,22 @@ class PropertyLayoutData {
 }
 ----
 
-<.> xref:#getId[getId]
+<.> xref:#getId__[getId()]
 +
 --
 Property identifier, being the getter method without "get" or "is" prefix, first letter lower cased.
 --
-<.> xref:#getOwner[getOwner]
+<.> xref:#getOwner__[getOwner()]
 +
 --
 Owner.
 --
-<.> xref:#getMetadataError[getMetadataError]
+<.> xref:#getMetadataError__[getMetadataError()]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> xref:#getLink[getLink]
+<.> xref:#getLink__[getLink()]
 +
 --
 The link to access this resource from the REST API (Restful Objects viewer).
@@ -69,25 +69,25 @@ The link to access this resource from the REST API (Restful Objects viewer).
 
 == Members
 
-[#getId]
-=== getId
+[#getId__]
+=== getId()
 
 Property identifier, being the getter method without "get" or "is" prefix, first letter lower cased.
 
-[#getOwner]
-=== getOwner
+[#getOwner__]
+=== getOwner()
 
 Owner.
 
 Set programmatically by framework after reading in from XML.
 
-[#getMetadataError]
-=== getMetadataError
+[#getMetadataError__]
+=== getMetadataError()
 
 For diagnostics; populated by the framework if and only if a metadata error.
 
-[#getLink]
-=== getLink
+[#getLink__]
+=== getLink()
 
 The link to access this resource from the REST API (Restful Objects viewer).
 
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 2572354..86ee647 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,22 +37,22 @@ class ServiceActionLayoutData {
 }
 ----
 
-<.> xref:#getId[getId]
+<.> xref:#getId__[getId()]
 +
 --
 Method name.
 --
-<.> xref:#getOwner[getOwner]
+<.> xref:#getOwner__[getOwner()]
 +
 --
 Owner.
 --
-<.> xref:#getMetadataError[getMetadataError]
+<.> xref:#getMetadataError__[getMetadataError()]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> xref:#getLink[getLink]
+<.> xref:#getLink__[getLink()]
 +
 --
 The link to access this resource from the REST API (Restful Objects viewer).
@@ -60,27 +60,27 @@ The link to access this resource from the REST API (Restful Objects viewer).
 
 == Members
 
-[#getId]
-=== getId
+[#getId__]
+=== getId()
 
 Method name.
 
 Overloaded methods are not supported.
 
-[#getOwner]
-=== getOwner
+[#getOwner__]
+=== getOwner()
 
 Owner.
 
 Set programmatically by framework after reading in from XML.
 
-[#getMetadataError]
-=== getMetadataError
+[#getMetadataError__]
+=== getMetadataError()
 
 For diagnostics; populated by the framework if and only if a metadata error.
 
-[#getLink]
-=== getLink
+[#getLink__]
+=== getLink()
 
 The link to access this resource from the REST API (Restful Objects viewer).
 
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 219e62b..ea6f451 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,27 +41,27 @@ class BS3Col {
 }
 ----
 
-<.> xref:#getId[getId]
+<.> xref:#getId__[getId()]
 +
 --
 As per <div id="...">...</div> : must be unique across entire page.
 --
-<.> xref:#isUnreferencedActions[isUnreferencedActions]
+<.> xref:#isUnreferencedActions__[isUnreferencedActions()]
 +
 --
 Whether this column should be used to hold any unreferenced actions (contributed or "native").
 --
-<.> xref:#isUnreferencedCollections[isUnreferencedCollections]
+<.> xref:#isUnreferencedCollections__[isUnreferencedCollections()]
 +
 --
 Whether this column should be used to hold any unreferenced collections (contributed or "native").
 --
-<.> xref:#getDomainObject[getDomainObject]
+<.> xref:#getDomainObject__[getDomainObject()]
 +
 --
 Whether to show the object's icon and title.
 --
-<.> xref:#getMetadataError[getMetadataError]
+<.> xref:#getMetadataError__[getMetadataError()]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
@@ -69,32 +69,32 @@ For diagnostics; populated by the framework if and only if a metadata error.
 
 == Members
 
-[#getId]
-=== getId
+[#getId__]
+=== getId()
 
 As per <div id="...">...</div> : must be unique across entire page.
 
-[#isUnreferencedActions]
-=== isUnreferencedActions
+[#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
+[#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
+[#getDomainObject__]
+=== getDomainObject()
 
 Whether to show the object's icon and title.
 
-[#getMetadataError]
-=== getMetadataError
+[#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 61ce1fe..8b658e3 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,7 +11,7 @@ interface BS3Element {
 }
 ----
 
-<.> xref:#getCssClass[getCssClass]
+<.> 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.
@@ -19,8 +19,8 @@ Any additional CSS classes to render on the page element corresponding to this o
 
 == Members
 
-[#getCssClass]
-=== getCssClass
+[#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 5869a31..71b864b 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,7 +13,7 @@ class BS3ElementAbstract {
 }
 ----
 
-<.> xref:#getCssClass[getCssClass]
+<.> 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.
@@ -21,8 +21,8 @@ Any additional CSS classes to render on the page element corresponding to this o
 
 == Members
 
-[#getCssClass]
-=== getCssClass
+[#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 bb40fed..3c33063 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,7 +23,7 @@ class BS3Grid {
 }
 ----
 
-<.> xref:#getMetadataErrors[getMetadataErrors]
+<.> xref:#getMetadataErrors__[getMetadataErrors()]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
@@ -31,8 +31,8 @@ For diagnostics; populated by the framework if and only if a metadata error.
 
 == Members
 
-[#getMetadataErrors]
-=== getMetadataErrors
+[#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 a70e8b1..cdda33b 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,17 +23,17 @@ class BS3Row {
 }
 ----
 
-<.> xref:#getId[getId]
+<.> xref:#getId__[getId()]
 +
 --
 As per <div id="...">...</div> : must be unique across entire page.
 --
-<.> xref:#getMetadataError[getMetadataError]
+<.> xref:#getMetadataError__[getMetadataError()]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
 --
-<.> xref:#getOwner[getOwner]
+<.> xref:#getOwner__[getOwner()]
 +
 --
 Owner.
@@ -41,18 +41,18 @@ Owner.
 
 == Members
 
-[#getId]
-=== getId
+[#getId__]
+=== getId()
 
 As per <div id="...">...</div> : must be unique across entire page.
 
-[#getMetadataError]
-=== getMetadataError
+[#getMetadataError__]
+=== getMetadataError()
 
 For diagnostics; populated by the framework if and only if a metadata error.
 
-[#getOwner]
-=== getOwner
+[#getOwner__]
+=== getOwner()
 
 Owner.
 
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 277721f..39c890d 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,12 +18,12 @@ class BS3RowContent {
 }
 ----
 
-<.> xref:#getSize[getSize]
+<.> xref:#getSize__[getSize()]
 +
 --
 Default if not specified is _Size#MD_ .
 --
-<.> xref:#getOwner[getOwner]
+<.> xref:#getOwner__[getOwner()]
 +
 --
 Owner.
@@ -31,13 +31,13 @@ Owner.
 
 == Members
 
-[#getSize]
-=== getSize
+[#getSize__]
+=== getSize()
 
 Default if not specified is _Size#MD_ .
 
-[#getOwner]
-=== getOwner
+[#getOwner__]
+=== getOwner()
 
 Owner.
 
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 54edc65..a49e1c4 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,7 +21,7 @@ class BS3Tab {
 }
 ----
 
-<.> xref:#getOwner[getOwner]
+<.> xref:#getOwner__[getOwner()]
 +
 --
 Owner.
@@ -29,8 +29,8 @@ Owner.
 
 == Members
 
-[#getOwner]
-=== getOwner
+[#getOwner__]
+=== getOwner()
 
 Owner.
 
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 38ce842..196ed06 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,22 +22,22 @@ class BS3TabGroup {
 }
 ----
 
-<.> xref:#isUnreferencedCollections[isUnreferencedCollections]
+<.> xref:#isUnreferencedCollections__[isUnreferencedCollections()]
 +
 --
 Whether this tab group should be used to hold any unreferenced collections (contributed or "native").
 --
-<.> xref:#isCollapseIfOne[isCollapseIfOne]
+<.> xref:#isCollapseIfOne__[isCollapseIfOne()]
 +
 --
 If there is a single tab in the tabgroup, then whether to collapse and render without the outer tab.
 --
-<.> xref:#getOwner[getOwner]
+<.> xref:#getOwner__[getOwner()]
 +
 --
 Owner.
 --
-<.> xref:#getMetadataError[getMetadataError]
+<.> xref:#getMetadataError__[getMetadataError()]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
@@ -45,27 +45,27 @@ For diagnostics; populated by the framework if and only if a metadata error.
 
 == Members
 
-[#isUnreferencedCollections]
-=== isUnreferencedCollections
+[#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
+[#isCollapseIfOne__]
+=== isCollapseIfOne()
 
 If there is a single tab in the tabgroup, then whether to collapse and render without the outer tab.
 
-[#getOwner]
-=== getOwner
+[#getOwner__]
+=== getOwner()
 
 Owner.
 
 Set programmatically by framework after reading in from XML.
 
-[#getMetadataError]
-=== getMetadataError
+[#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 b4b0be5..ff24003 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,7 +10,7 @@ interface HasCssId {
 }
 ----
 
-<.> xref:#getId[getId]
+<.> xref:#getId__[getId()]
 +
 --
 As per <div id="...">...</div> : must be unique across entire page.
@@ -18,8 +18,8 @@ As per <div id="...">...</div> : must be unique across entire page.
 
 == Members
 
-[#getId]
-=== getId
+[#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 0f40bb5..333dbc5 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,7 +20,7 @@ class BS3Menu {
 }
 ----
 
-<.> xref:#isUnreferencedActions[isUnreferencedActions]
+<.> xref:#isUnreferencedActions__[isUnreferencedActions()]
 +
 --
 Whether this menu should be used to hold any unreferenced actions.
@@ -28,8 +28,8 @@ Whether this menu should be used to hold any unreferenced actions.
 
 == Members
 
-[#isUnreferencedActions]
-=== isUnreferencedActions
+[#isUnreferencedActions__]
+=== isUnreferencedActions()
 
 Whether this menu should be used to hold any unreferenced actions.
 
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 b501313..c2da850 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,7 +22,7 @@ class BS3MenuBars {
 }
 ----
 
-<.> xref:#getMetadataError[getMetadataError]
+<.> xref:#getMetadataError__[getMetadataError()]
 +
 --
 For diagnostics; populated by the framework if and only if a metadata error.
@@ -30,8 +30,8 @@ For diagnostics; populated by the framework if and only if a metadata error.
 
 == Members
 
-[#getMetadataError]
-=== getMetadataError
+[#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/mixins/dto/Dto_downloadXsd.adoc b/antora/components/system/modules/generated/pages/index/applib/mixins/dto/Dto_downloadXsd.adoc
index c4d43ca..763d60f 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
@@ -10,9 +10,9 @@ class Dto_downloadXsd {
 MessageService messageService;
   @Inject
 JaxbService jaxbService;
-  Object act(final String fileName, final JaxbService.IsisSchemas isisSchemas)
+  Object act(final String fileName, final IsisSchemas isisSchemas)
   String default0Act()
-  JaxbService.IsisSchemas default1Act()
+  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 c6ea9db..7eeb1c2 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
@@ -8,9 +8,9 @@
 class Object_downloadLayoutXml {
   @Inject
 LayoutService layoutService;
-  Object act(final String fileName, final LayoutService.Style style)
+  Object act(final String fileName, final Style style)
   String default0Act()
-  LayoutService.Style default1Act()
+  Style default1Act()
 }
 ----
 
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 5b468d7..71a575d 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,17 +26,17 @@ interface Query<T> {
 }
 ----
 
-<.> xref:#getResultType[getResultType]
+<.> xref:#getResultType__[getResultType()]
 +
 --
 The _Class_ of the objects returned by this query.
 --
-<.> xref:#getDescription[getDescription]
+<.> xref:#getDescription__[getDescription()]
 +
 --
 A human-readable representation of this query and its values.
 --
-<.> xref:#getRange[getRange]
+<.> xref:#getRange__[getRange()]
 +
 --
 Returns a model with start index into the set table and maximal number of items to return.
@@ -44,18 +44,18 @@ Returns a model with start index into the set table and maximal number of items
 
 == Members
 
-[#getResultType]
-=== getResultType
+[#getResultType__]
+=== getResultType()
 
 The _Class_ of the objects returned by this query.
 
-[#getDescription]
-=== getDescription
+[#getDescription__]
+=== getDescription()
 
 A human-readable representation of this query and its values.
 
-[#getRange]
-=== getRange
+[#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 3f6126d..23f5a41 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,32 +24,32 @@ interface QueryRange {
 }
 ----
 
-<.> xref:#getStart[getStart]
+<.> xref:#getStart__[getStart()]
 +
 --
 The start index into the set table. (non-negative)
 --
-<.> xref:#getLimit[getLimit]
+<.> xref:#getLimit__[getLimit()]
 +
 --
 The maximum number of items to return, starting at _#getStart()_ (non-negative)
 --
-<.> xref:#getEnd[getEnd]
+<.> xref:#getEnd__[getEnd()]
 +
 --
 The end index into the set table. Overflow is ignored. (non-negative)
 --
-<.> xref:#getStartAsInt[getStartAsInt]
+<.> xref:#getStartAsInt__[getStartAsInt()]
 +
 --
 The start index into the set table (as java int primitive)
 --
-<.> xref:#getLimitAsInt[getLimitAsInt]
+<.> xref:#getLimitAsInt__[getLimitAsInt()]
 +
 --
 The maximum number of items to return (as java int primitive) if _limit_ overflows an int, _Integer#MAX_VALUE_ is returned.
 --
-<.> xref:#getEndAsInt[getEndAsInt]
+<.> 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.
@@ -57,33 +57,33 @@ The end index into the set table. Overflow is ignored. (as java int primitive) i
 
 == Members
 
-[#getStart]
-=== getStart
+[#getStart__]
+=== getStart()
 
 The start index into the set table. (non-negative)
 
-[#getLimit]
-=== getLimit
+[#getLimit__]
+=== getLimit()
 
 The maximum number of items to return, starting at _#getStart()_ (non-negative)
 
-[#getEnd]
-=== getEnd
+[#getEnd__]
+=== getEnd()
 
 The end index into the set table. Overflow is ignored. (non-negative)
 
-[#getStartAsInt]
-=== getStartAsInt
+[#getStartAsInt__]
+=== getStartAsInt()
 
 The start index into the set table (as java int primitive)
 
-[#getLimitAsInt]
-=== getLimitAsInt
+[#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
+[#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 ba2e42a..bee024e 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,47 +20,47 @@ interface DomainChangeRecord {
 }
 ----
 
-<.> xref:#getType[getType]
+<.> xref:#getType__[getType()]
 +
 --
 Distinguishes commands from audit entries from published events/interactions (when these are shown mixed together in a (standalone) table).
 --
-<.> xref:#getUniqueId[getUniqueId]
+<.> xref:#getUniqueId__[getUniqueId()]
 +
 --
 The unique identifier (a GUID) of the transaction in which this change occurred.
 --
-<.> xref:#getUsername[getUsername]
+<.> xref:#getUsername__[getUsername()]
 +
 --
 The user that caused the change.
 --
-<.> xref:#getTimestamp[getTimestamp]
+<.> xref:#getTimestamp__[getTimestamp()]
 +
 --
 The time that the change occurred.
 --
-<.> xref:#getTargetObjectType[getTargetObjectType]
+<.> xref:#getTargetObjectType__[getTargetObjectType()]
 +
 --
 The object type of the domain object being changed.
 --
-<.> xref:#getTarget[getTarget]
+<.> xref:#getTarget__[getTarget()]
 +
 --
 The xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] identifying the domain object that has changed.
 --
-<.> xref:#getTargetMember[getTargetMember]
+<.> xref:#getTargetMember__[getTargetMember()]
 +
 --
 The member interaction (ie action invocation or property edit) which caused the domain object to be changed.
 --
-<.> xref:#getPreValue[getPreValue]
+<.> xref:#getPreValue__[getPreValue()]
 +
 --
 The value of the property prior to it being changed.
 --
-<.> xref:#getPostValue[getPostValue]
+<.> xref:#getPostValue__[getPostValue()]
 +
 --
 The value of the property after it has changed.
@@ -68,52 +68,52 @@ The value of the property after it has changed.
 
 == Members
 
-[#getType]
-=== getType
+[#getType__]
+=== getType()
 
 Distinguishes commands from audit entries from published events/interactions (when these are shown mixed together in a (standalone) table).
 
-[#getUniqueId]
-=== getUniqueId
+[#getUniqueId__]
+=== getUniqueId()
 
 The unique identifier (a GUID) of the transaction in which this change occurred.
 
-[#getUsername]
-=== getUsername
+[#getUsername__]
+=== getUsername()
 
 The user that caused the change.
 
-[#getTimestamp]
-=== getTimestamp
+[#getTimestamp__]
+=== getTimestamp()
 
 The time that the change occurred.
 
-[#getTargetObjectType]
-=== getTargetObjectType
+[#getTargetObjectType__]
+=== getTargetObjectType()
 
 The object type of the domain object being changed.
 
-[#getTarget]
-=== getTarget
+[#getTarget__]
+=== getTarget()
 
 The xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] identifying the domain object that has changed.
 
-[#getTargetMember]
-=== getTargetMember
+[#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
+[#getPreValue__]
+=== getPreValue()
 
 The value of the property prior to it being changed.
 
 Populated only for audit entries.
 
-[#getPostValue]
-=== getPostValue
+[#getPostValue__]
+=== getPostValue()
 
 The value of the property after it has changed.
 
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 a161762..a331e30 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,7 +14,7 @@ interface AcceptHeaderService {
 }
 ----
 
-<.> xref:#getAcceptableMediaTypes[getAcceptableMediaTypes]
+<.> xref:#getAcceptableMediaTypes__[getAcceptableMediaTypes()]
 +
 --
 The intention is that this service only returns a list when the request is initiated through the _Restful Objects viewer_.
@@ -22,8 +22,8 @@ The intention is that this service only returns a list when the request is initi
 
 == Members
 
-[#getAcceptableMediaTypes]
-=== getAcceptableMediaTypes
+[#getAcceptableMediaTypes__]
+=== getAcceptableMediaTypes()
 
 The intention is that this service only returns a list when the request is initiated through the _Restful Objects viewer_.
 
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 88ed401..be79eb8 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,12 +20,12 @@ class Bookmark {
 }
 ----
 
-<.> xref:#parse[parse]
+<.> xref:#parse__String[parse(String)]
 +
 --
 Round-trip with _#toString()_ representation.
 --
-<.> xref:#toString[toString]
+<.> xref:#toString__[toString()]
 +
 --
 The canonical form of the xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] , that is " _#getObjectType() objectType_ _#SEPARATOR_ _#getIdentifier()_ ".
@@ -33,13 +33,13 @@ The canonical form of the xref:system:generated:index/applib/services/bookmark/B
 
 == Members
 
-[#parse]
-=== parse
+[#parse__String]
+=== parse(String)
 
 Round-trip with _#toString()_ representation.
 
-[#toString]
-=== toString
+[#toString__]
+=== toString()
 
 The canonical form of the xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] , that is " _#getObjectType() objectType_ _#SEPARATOR_ _#getIdentifier()_ ".
 
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 b4ba123..93b349a 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,28 +17,28 @@ interface BookmarkService {
 }
 ----
 
-<.> xref:#bookmarkFor[bookmarkFor]
+<.> xref:#bookmarkFor__Object[bookmarkFor(Object)]
 +
 --
 Returns the xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] for the given domain object.
 --
-<.> xref:#bookmarkForElseThrow[bookmarkForElseThrow]
+<.> xref:#bookmarkForElseThrow__Object[bookmarkForElseThrow(Object)]
 +
 --
 As per _#bookmarkFor(Object)_ , but requires that a non-null xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] is returned.
 --
-<.> xref:#bookmarkFor[bookmarkFor]
+<.> xref:#bookmarkFor__Class_String[bookmarkFor(Class, String)]
 +
 --
 Utility method that creates a xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] from the constituent parts.
 --
-<.> xref:#lookup[lookup]
-<.> xref:#lookup[lookup]
+<.> xref:#lookup__BookmarkHolder[lookup(BookmarkHolder)]
+<.> xref:#lookup__Bookmark[lookup(Bookmark)]
 +
 --
 Reciprocal of _#bookmarkFor(Object)_
 --
-<.> xref:#lookup[lookup]
+<.> xref:#lookup__Bookmark_Class[lookup(Bookmark, Class)]
 +
 --
 As _#lookup(Bookmark)_ , but down-casting to the specified type.
@@ -46,33 +46,33 @@ As _#lookup(Bookmark)_ , but down-casting to the specified type.
 
 == Members
 
-[#bookmarkFor]
-=== bookmarkFor
+[#bookmarkFor__Object]
+=== bookmarkFor(Object)
 
 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
+[#bookmarkForElseThrow__Object]
+=== bookmarkForElseThrow(Object)
 
 As per _#bookmarkFor(Object)_ , but requires that a non-null xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] is returned.
 
-[#bookmarkFor]
-=== bookmarkFor
+[#bookmarkFor__Class_String]
+=== bookmarkFor(Class, String)
 
 Utility method that creates a xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] from the constituent parts.
 
-[#lookup]
-=== lookup
+[#lookup__BookmarkHolder]
+=== lookup(BookmarkHolder)
 
-[#lookup]
-=== lookup
+[#lookup__Bookmark]
+=== lookup(Bookmark)
 
 Reciprocal of _#bookmarkFor(Object)_
 
-[#lookup]
-=== lookup
+[#lookup__Bookmark_Class]
+=== lookup(Bookmark, Class)
 
 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 d06e053..e4bbf8a 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,7 +12,7 @@ interface BookmarkUiService {
 }
 ----
 
-<.> xref:#clear[clear]
+<.> xref:#clear__[clear()]
 +
 --
 Simply clears the current list of breadcrumbs and bookmarks.
@@ -20,8 +20,8 @@ Simply clears the current list of breadcrumbs and bookmarks.
 
 == Members
 
-[#clear]
-=== clear
+[#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 95692c7..abf3bad 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,27 +24,27 @@ class Command {
 }
 ----
 
-<.> xref:#getUsername[getUsername]
+<.> xref:#getUsername__[getUsername()]
 +
 --
 The user that created the command.
 --
-<.> xref:#getTimestamp[getTimestamp]
+<.> xref:#getTimestamp__[getTimestamp()]
 +
 --
 The date/time at which this command was created.
 --
-<.> xref:#getTarget[getTarget]
+<.> 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.
 --
-<.> xref:#getLogicalMemberIdentifier[getLogicalMemberIdentifier]
+<.> xref:#getLogicalMemberIdentifier__[getLogicalMemberIdentifier()]
 +
 --
 Derived from _#getCommandDto()_ , holds a string representation of the invoked action, or the edited property.
 --
-<.> xref:#updater[updater]
+<.> xref:#updater__[updater()]
 +
 --
  *NOT API* : intended to be called only by the framework.
@@ -52,32 +52,32 @@ Derived from _#getCommandDto()_ , holds a string representation of the invoked a
 
 == Members
 
-[#getUsername]
-=== getUsername
+[#getUsername__]
+=== getUsername()
 
 The user that created the command.
 
 Derived from _#getCommandDto()_ 's _CommandDto#getUser()_
 
-[#getTimestamp]
-=== getTimestamp
+[#getTimestamp__]
+=== getTimestamp()
 
 The date/time at which this command was created.
 
 Derived from _#getCommandDto()_ 's _CommandDto#getTimestamp()_ .
 
-[#getTarget]
-=== getTarget
+[#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
+[#getLogicalMemberIdentifier__]
+=== getLogicalMemberIdentifier()
 
 Derived from _#getCommandDto()_ , holds a string representation of the invoked action, or the edited property.
 
-[#updater]
-=== updater
+[#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 bcbefad..2461974 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,7 +13,7 @@ interface CommandExecutorService {
 }
 ----
 
-<.> xref:#executeCommand[executeCommand]
+<.> xref:#executeCommand__SudoPolicy_Command[executeCommand(SudoPolicy, Command)]
 +
 --
 Executes the specified command.
@@ -21,8 +21,8 @@ Executes the specified command.
 
 == Members
 
-[#executeCommand]
-=== executeCommand
+[#executeCommand__SudoPolicy_Command]
+=== executeCommand(SudoPolicy, Command)
 
 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 1c3075c..1439b62 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,7 +13,7 @@ ContentMappingServiceForCommandDto contentMappingServiceForCommandDto;
 }
 ----
 
-<.> xref:#map[map]
+<.> xref:#map__Object[map(Object)]
 +
 --
 Not part of the xref:system:generated:index/applib/services/conmap/ContentMappingService.adoc[ContentMappingService] API.
@@ -21,8 +21,8 @@ Not part of the xref:system:generated:index/applib/services/conmap/ContentMappin
 
 == Members
 
-[#map]
-=== map
+[#map__Object]
+=== map(Object)
 
 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 20fe3d1..15819fe 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,7 +12,7 @@ interface CommandDtoProcessor {
 }
 ----
 
-<.> xref:#process[process]
+<.> xref:#process__CommandDto[process(CommandDto)]
 +
 --
 The implementation can if necessary refine or alter the _CommandDto_ to be replicated from primary to secondary.
@@ -20,8 +20,8 @@ The implementation can if necessary refine or alter the _CommandDto_ to be repli
 
 == Members
 
-[#process]
-=== process
+[#process__CommandDto]
+=== process(CommandDto)
 
 The implementation can if necessary refine or alter the _CommandDto_ to be replicated from primary to secondary.
 
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 b874fcf..9333622 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,7 +14,7 @@ interface CommandDtoProcessorService {
 }
 ----
 
-<.> xref:#process[process]
+<.> xref:#process__Object_CommandDto[process(Object, CommandDto)]
 +
 --
 Converts the domain object (acting as the source) into a _CommandDto_ .
@@ -22,8 +22,8 @@ Converts the domain object (acting as the source) into a _CommandDto_ .
 
 == Members
 
-[#process]
-=== process
+[#process__Object_CommandDto]
+=== process(Object, CommandDto)
 
 Converts the domain object (acting as the source) into a _CommandDto_ .
 
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 29f7621..a115415 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
@@ -14,7 +14,7 @@ interface ConfigurationViewService {
 }
 ----
 
-<.> xref:#allProperties[allProperties]
+<.> 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.
@@ -22,8 +22,8 @@ Returns all properties, each as an instance of xref:system:generated:index/appli
 
 == Members
 
-[#allProperties]
-=== allProperties
+[#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 2a7227f..19d0801 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,7 +10,7 @@ interface ContentMappingService {
 }
 ----
 
-<.> xref:#map[map]
+<.> xref:#map__Object_List[map(Object, List)]
 +
 --
 Typically for mapping from a domain object to a DTO.
@@ -18,8 +18,8 @@ Typically for mapping from a domain object to a DTO.
 
 == Members
 
-[#map]
-=== map
+[#map__Object_List]
+=== map(Object, List)
 
 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 de78132..fd29853 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,12 +16,12 @@ interface EmailService {
 }
 ----
 
-<.> xref:#send[send]
+<.> xref:#send__List_List_List_String_String_DataSource[send(List, List, List, String, String, DataSource)]
 +
 --
 The main API to send the email (and optional attachments).
 --
-<.> xref:#isConfigured[isConfigured]
+<.> xref:#isConfigured__[isConfigured()]
 +
 --
 Whether this service has been configured and thus available for use.
@@ -29,13 +29,13 @@ Whether this service has been configured and thus available for use.
 
 == Members
 
-[#send]
-=== send
+[#send__List_List_List_String_String_DataSource]
+=== send(List, List, List, String, String, DataSource)
 
 The main API to send the email (and optional attachments).
 
-[#isConfigured]
-=== isConfigured
+[#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 d475e54..f0e3ad5 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,7 +28,7 @@ class SimpleTicket {
 }
 ----
 
-<.> xref:#getKittenUrl[getKittenUrl]
+<.> xref:#getKittenUrl__[getKittenUrl()]
 +
 --
 If specified, is the external URL of an image to display to the end user.
@@ -36,8 +36,8 @@ If specified, is the external URL of an image to display to the end user.
 
 == Members
 
-[#getKittenUrl]
-=== getKittenUrl
+[#getKittenUrl__]
+=== getKittenUrl()
 
 If specified, is the external URL of an image to display to the end user.
 
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 0dff5e0..48dd9a6 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,27 +23,27 @@ interface Ticket {
 }
 ----
 
-<.> xref:#getReference[getReference]
+<.> xref:#getReference__[getReference()]
 +
 --
 A unique identifier that the end-user can use to track any follow-up from this error.
 --
-<.> xref:#getUserMessage[getUserMessage]
+<.> xref:#getUserMessage__[getUserMessage()]
 +
 --
 A short, jargon-free message to display to the user.
 --
-<.> xref:#getDetails[getDetails]
+<.> xref:#getDetails__[getDetails()]
 +
 --
 Optional additional details to show to the end-user.
 --
-<.> xref:#getStackTracePolicy[getStackTracePolicy]
+<.> xref:#getStackTracePolicy__[getStackTracePolicy()]
 +
 --
 Whether the stack trace for the exception should be displayed or be hidden.
 --
-<.> xref:#getMarkup[getMarkup]
+<.> xref:#getMarkup__[getMarkup()]
 +
 --
 Returns a Html representation of this ticket.
@@ -51,36 +51,36 @@ Returns a Html representation of this ticket.
 
 == Members
 
-[#getReference]
-=== getReference
+[#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
+[#getUserMessage__]
+=== getUserMessage()
 
 A short, jargon-free message to display to the user.
 
 Typically this message should be short, one line long.
 
-[#getDetails]
-=== getDetails
+[#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
+[#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
+[#getMarkup__]
+=== getMarkup()
 
 Returns a Html representation of this ticket.
 
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 ecbf198..6453e83 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
@@ -14,7 +14,7 @@ interface EventBusService {
 }
 ----
 
-<.> xref:#post[post]
+<.> xref:#post__Object[post(Object)]
 +
 --
 Post an event (of any class) to the in-memory event bus.
@@ -22,8 +22,8 @@ Post an event (of any class) to the in-memory event bus.
 
 == Members
 
-[#post]
-=== post
+[#post__Object]
+=== post(Object)
 
 Post an event (of any class) to the in-memory event bus.
 
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 c572d1c..f8b6e9e 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
@@ -22,7 +22,7 @@ interface ExceptionRecognizer {
 }
 ----
 
-<.> xref:#recognize[recognize]
+<.> xref:#recognize__Throwable[recognize(Throwable)]
 +
 --
 (Attempt to) recognize the exception and return a user-friendly message to render instead.
@@ -30,8 +30,8 @@ interface ExceptionRecognizer {
 
 == Members
 
-[#recognize]
-=== recognize
+[#recognize__Throwable]
+=== recognize(Throwable)
 
 (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 620ad35..64ea61b 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
@@ -14,17 +14,17 @@ interface ExceptionRecognizerService {
 }
 ----
 
-<.> xref:#getExceptionRecognizers[getExceptionRecognizers]
+<.> xref:#getExceptionRecognizers__[getExceptionRecognizers()]
 +
 --
 All ExceptionRecognizer implementations as discovered by the IoC container, honoring order of precedence.
 --
-<.> xref:#recognize[recognize]
+<.> xref:#recognize__Throwable[recognize(Throwable)]
 +
 --
 Takes into consideration ExceptionRecognizers as given by _#getExceptionRecognizers()_ .
 --
-<.> xref:#recognizeFromSelected[recognizeFromSelected]
+<.> xref:#recognizeFromSelected__Can_Throwable[recognizeFromSelected(Can, Throwable)]
 +
 --
 Takes into consideration ExceptionRecognizers as given by _recognizers_ .
@@ -32,18 +32,18 @@ Takes into consideration ExceptionRecognizers as given by _recognizers_ .
 
 == Members
 
-[#getExceptionRecognizers]
-=== getExceptionRecognizers
+[#getExceptionRecognizers__]
+=== getExceptionRecognizers()
 
 All ExceptionRecognizer implementations as discovered by the IoC container, honoring order of precedence.
 
-[#recognize]
-=== recognize
+[#recognize__Throwable]
+=== recognize(Throwable)
 
 Takes into consideration ExceptionRecognizers as given by _#getExceptionRecognizers()_ .
 
-[#recognizeFromSelected]
-=== recognizeFromSelected
+[#recognizeFromSelected__Can_Throwable]
+=== recognizeFromSelected(Can, Throwable)
 
 Takes into consideration ExceptionRecognizers as given by _recognizers_ .
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Recognition.adoc b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Recognition.adoc
index e640f13..f6ccd0d 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Recognition.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/exceprecog/Recognition.adoc
@@ -30,13 +30,13 @@ Categorises the exception as per xref:system:generated:index/applib/services/exc
 --
 The untranslated user-friendly reason for the exception.
 --
-<.> xref:#of[of]
-<.> xref:#toMessage[toMessage]
+<.> xref:#of__Category_String[of(Category, String)]
+<.> xref:#toMessage__TranslationService[toMessage(TranslationService)]
 +
 --
 Translates the _#getReason() reason_ and prepends with a translation of _#getCategory() category_ , using the provided xref:system:generated:index/applib/services/i18n/TranslationService.adoc[TranslationService] ..
 --
-<.> xref:#toMessageNoCategory[toMessageNoCategory]
+<.> xref:#toMessageNoCategory__TranslationService[toMessageNoCategory(TranslationService)]
 +
 --
 Translates the _#getReason() reason_ alone (ignoring the _#getCategory() category_ , using the provided xref:system:generated:index/applib/services/i18n/TranslationService.adoc[TranslationService] ..
@@ -60,16 +60,16 @@ The untranslated user-friendly reason for the exception.
 
 The reason can also be translated (prepended or not by the translation of the _#getCategory() category_ using _#toMessage(TranslationService)_ or _#toMessageNoCategory(TranslationService)_ . .
 
-[#of]
-=== of
+[#of__Category_String]
+=== of(Category, String)
 
-[#toMessage]
-=== toMessage
+[#toMessage__TranslationService]
+=== toMessage(TranslationService)
 
 Translates the _#getReason() reason_ and prepends with a translation of _#getCategory() category_ , using the provided xref:system:generated:index/applib/services/i18n/TranslationService.adoc[TranslationService] ..
 
-[#toMessageNoCategory]
-=== toMessageNoCategory
+[#toMessageNoCategory__TranslationService]
+=== toMessageNoCategory(TranslationService)
 
 Translates the _#getReason() reason_ alone (ignoring the _#getCategory() category_ , using the provided xref:system:generated:index/applib/services/i18n/TranslationService.adoc[TranslationService] ..
 
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 a691960..e39e1c0 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
@@ -21,52 +21,52 @@ interface FactoryService {
 }
 ----
 
-<.> xref:#getOrCreate[getOrCreate]
+<.> xref:#getOrCreate__Class[getOrCreate(Class)]
 +
 --
 Gets an instance (possibly shared or independent) of the specified type, with injection points resolved and any life-cycle callback processed.
 --
-<.> xref:#get[get]
+<.> xref:#get__Class[get(Class)]
 +
 --
 Gets an instance (possibly shared or independent) of the specified _requiredType_ , with injection points resolved and any life-cycle callback processed.
 --
-<.> xref:#detachedEntity[detachedEntity]
+<.> xref:#detachedEntity__Class[detachedEntity(Class)]
 +
 --
 Creates a new detached entity instance, with injection points resolved and defaults applied.
 --
-<.> xref:#detachedEntity[detachedEntity]
+<.> xref:#detachedEntity__T[detachedEntity(T)]
 +
 --
 Creates a new detached entity instance, with injection points resolved.
 --
-<.> xref:#mixin[mixin]
+<.> xref:#mixin__Class_Object[mixin(Class, Object)]
 +
 --
 Creates a new Mixin instance, with injection points resolved.
 --
-<.> xref:#viewModel[viewModel]
+<.> xref:#viewModel__Class_String[viewModel(Class, String)]
 +
 --
 Creates a new ViewModel instance, with injection points resolved, and initialized according to the given _mementoStr_
 --
-<.> xref:#viewModel[viewModel]
+<.> xref:#viewModel__Class[viewModel(Class)]
 +
 --
 Creates a new ViewModel instance, with injection points resolved and defaults applied.
 --
-<.> xref:#viewModel[viewModel]
+<.> xref:#viewModel__T[viewModel(T)]
 +
 --
 Resolves injection points for given ViewModel instance.
 --
-<.> xref:#create[create]
+<.> xref:#create__Class[create(Class)]
 +
 --
 Creates a new instance of the specified class, with injection points resolved and defaults applied.
 --
-<.> xref:#instantiate[instantiate]
+<.> xref:#instantiate__Class[instantiate(Class)]
 +
 --
 [WARNING]
@@ -81,55 +81,55 @@ Creates a new instance of the specified class, but does not persist it.
 
 == Members
 
-[#getOrCreate]
-=== getOrCreate
+[#getOrCreate__Class]
+=== getOrCreate(Class)
 
 Gets an instance (possibly shared or independent) of the specified type, with injection points resolved and any life-cycle callback processed.
 
-[#get]
-=== get
+[#get__Class]
+=== get(Class)
 
 Gets an instance (possibly shared or independent) of the specified _requiredType_ , with injection points resolved and any life-cycle callback processed.
 
-[#detachedEntity]
-=== detachedEntity
+[#detachedEntity__Class]
+=== detachedEntity(Class)
 
 Creates a new detached entity instance, with injection points resolved and defaults applied.
 
 The entity will be detacted, in other words not yet persisted.
 
-[#detachedEntity]
-=== detachedEntity
+[#detachedEntity__T]
+=== detachedEntity(T)
 
 Creates a new detached entity instance, with injection points resolved.
 
-[#mixin]
-=== mixin
+[#mixin__Class_Object]
+=== mixin(Class, Object)
 
 Creates a new Mixin instance, with injection points resolved.
 
-[#viewModel]
-=== viewModel
+[#viewModel__Class_String]
+=== viewModel(Class, String)
 
 Creates a new ViewModel instance, with injection points resolved, and initialized according to the given _mementoStr_
 
-[#viewModel]
-=== viewModel
+[#viewModel__Class]
+=== viewModel(Class)
 
 Creates a new ViewModel instance, with injection points resolved and defaults applied.
 
-[#viewModel]
-=== viewModel
+[#viewModel__T]
+=== viewModel(T)
 
 Resolves injection points for given ViewModel instance.
 
-[#create]
-=== create
+[#create__Class]
+=== create(Class)
 
 Creates a new instance of the specified class, with injection points resolved and defaults applied.
 
-[#instantiate]
-=== instantiate
+[#instantiate__Class]
+=== instantiate(Class)
 
 [WARNING]
 ====
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 40c6f3c..68a9d13 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
@@ -16,27 +16,27 @@ interface GridLoaderService {
 }
 ----
 
-<.> xref:#supportsReloading[supportsReloading]
+<.> xref:#supportsReloading__[supportsReloading()]
 +
 --
 Whether dynamic reloading of layouts is enabled.
 --
-<.> xref:#remove[remove]
+<.> xref:#remove__Class[remove(Class)]
 +
 --
 To support metamodel invalidation/rebuilding of spec.
 --
-<.> xref:#existsFor[existsFor]
+<.> xref:#existsFor__Class[existsFor(Class)]
 +
 --
 Whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
 --
-<.> xref:#load[load]
+<.> xref:#load__Class[load(Class)]
 +
 --
 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` .
 --
-<.> xref:#load[load]
+<.> xref:#load__Class_String[load(Class, String)]
 +
 --
 Loads a specic alternative xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] layout for the specified domain class.
@@ -44,34 +44,34 @@ Loads a specic alternative xref:system:generated:index/applib/layout/grid/Grid.a
 
 == Members
 
-[#supportsReloading]
-=== supportsReloading
+[#supportsReloading__]
+=== supportsReloading()
 
 Whether dynamic reloading of layouts is enabled.
 
 The default implementation enables reloading for prototyping mode, disables in production
 
-[#remove]
-=== remove
+[#remove__Class]
+=== remove(Class)
 
 To support metamodel invalidation/rebuilding of spec.
 
 This is called by the _org.apache.isis.applib.mixins.layout.Object_rebuildMetamodel_ mixin action.
 
-[#existsFor]
-=== existsFor
+[#existsFor__Class]
+=== existsFor(Class)
 
 Whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
 
 If none exists, will return null (and the calling xref:system:generated:index/applib/services/grid/GridService.adoc[GridService] will use xref:system:generated:index/applib/services/grid/GridSystemService.adoc[GridSystemService] to obtain a default grid for the domain class).
 
-[#load]
-=== load
+[#load__Class]
+=== load(Class)
 
 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
+[#load__Class_String]
+=== load(Class, String)
 
 Loads a specic alternative xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] layout for the specified domain class.
 
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 59f2f7d..1e1a75e 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,5 +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 [...]
 
+Provides the ability to load the XML layout (grid) for a domain class.
+
 == API
 
 [source,java]
@@ -18,47 +20,47 @@ interface GridService {
 }
 ----
 
-<.> xref:#supportsReloading[supportsReloading]
+<.> xref:#supportsReloading__[supportsReloading()]
 +
 --
 Whether dynamic reloading of layouts is enabled.
 --
-<.> xref:#remove[remove]
+<.> xref:#remove__Class[remove(Class)]
 +
 --
 To support metamodel invalidation/rebuilding of spec.
 --
-<.> xref:#existsFor[existsFor]
+<.> xref:#existsFor__Class[existsFor(Class)]
 +
 --
 Whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
 --
-<.> xref:#load[load]
+<.> xref:#load__Class[load(Class)]
 +
 --
-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` .
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, for example as loaded from a `layout.xml` file.
 --
-<.> xref:#load[load]
+<.> xref:#load__Class_String[load(Class, String)]
 +
 --
-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` .
+Returns an alternative layout for the domain class.
 --
-<.> xref:#defaultGridFor[defaultGridFor]
+<.> xref:#defaultGridFor__Class[defaultGridFor(Class)]
 +
 --
 Returns a default grid; eg where none can be loaded using _#load(Class)_ .
 --
-<.> xref:#normalize[normalize]
+<.> xref:#normalize__Grid[normalize(Grid)]
 +
 --
 Returns a normalized grid for the domain class obtained previously using _#load(Class)_ .
 --
-<.> xref:#complete[complete]
+<.> xref:#complete__Grid[complete(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] .
 --
-<.> xref:#minimal[minimal]
+<.> xref:#minimal__Grid[minimal(Grid)]
 +
 --
 Modifies the provided xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] , removing all metadata except the basic grid structure.
@@ -66,52 +68,70 @@ Modifies the provided xref:system:generated:index/applib/layout/grid/Grid.adoc[G
 
 == Members
 
-[#supportsReloading]
-=== supportsReloading
+[#supportsReloading__]
+=== supportsReloading()
 
 Whether dynamic reloading of layouts is enabled.
 
-[#remove]
-=== remove
+The default implementation just delegates to the configured xref:system:generated:index/applib/services/grid/GridLoaderService.adoc[GridLoaderService] ; the default implementation of _that_ service enables reloading wihle prototyping, disables in production.
+
+[#remove__Class]
+=== remove(Class)
 
 To support metamodel invalidation/rebuilding of spec.
 
-[#existsFor]
-=== existsFor
+The default implementation just delegates to the configured xref:system:generated:index/applib/services/grid/GridLoaderService.adoc[GridLoaderService] .
+
+[#existsFor__Class]
+=== existsFor(Class)
 
 Whether any persisted layout metadata (eg a `.layout.xml` file) exists for this domain class.
 
-[#load]
-=== load
+The default implementation just delegates to the configured xref:system:generated:index/applib/services/grid/GridLoaderService.adoc[GridLoaderService] .
+
+[#load__Class]
+=== load(Class)
+
+Returns a new instance of a xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] for the specified domain class, for example as loaded from a `layout.xml` file.
 
-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` .
+If non exists, returns `null` . (The caller can then use _GridService#defaultGridFor(Class)_ to obtain a default grid if necessary).
 
-[#load]
-=== load
+The default implementation just delegates to the configured xref:system:generated:index/applib/services/grid/GridLoaderService.adoc[GridLoaderService] .
 
-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` .
+[#load__Class_String]
+=== load(Class, String)
 
-[#defaultGridFor]
-=== defaultGridFor
+Returns an alternative layout for the domain class.
+
+The alternative layout name can for example be returned by the domain object's `layout()` method, whereby - based on the state of the domain object - it requests a different layout be used.
+
+The default implementation just delegates to the configured xref:system:generated:index/applib/services/grid/GridLoaderService.adoc[GridLoaderService] ; the default implementation of _that_ service uses the layout name to search for a differently named layout file, `[domainClass].layout.[layout].xml` .
+
+[#defaultGridFor__Class]
+=== defaultGridFor(Class)
 
 Returns a default grid; eg where none can be loaded using _#load(Class)_ .
 
-[#normalize]
-=== normalize
+Used when no existing grid layout exists for a domain class.
+
+The default implementation searches through all available xref:system:generated:index/applib/services/grid/GridSystemService.adoc[GridSystemService] s and asks each in turn for a _GridSystemService#defaultGrid(Class) default grid_ .
+
+[#normalize__Grid]
+=== normalize(Grid)
 
 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
+[#complete__Grid]
+=== complete(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 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
+[#minimal__Grid]
+=== minimal(Grid)
 
 Modifies the provided xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] , removing all metadata except the basic grid structure.
 
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 2d59e1d..9d564f6 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
@@ -20,37 +20,37 @@ interface GridSystemService<G> {
 }
 ----
 
-<.> xref:#gridImplementation[gridImplementation]
+<.> xref:#gridImplementation__[gridImplementation()]
 +
 --
 The concrete subclass of xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] supported by this implementation.
 --
-<.> xref:#tns[tns]
+<.> xref:#tns__[tns()]
 +
 --
 The target namespace for this grid system.
 --
-<.> xref:#schemaLocation[schemaLocation]
+<.> xref:#schemaLocation__[schemaLocation()]
 +
 --
 The schema location for the XSD.
 --
-<.> xref:#defaultGrid[defaultGrid]
+<.> xref:#defaultGrid__Class[defaultGrid(Class)]
 +
 --
 A default grid, used when no grid layout can be found for the domain class.
 --
-<.> xref:#normalize[normalize]
+<.> xref:#normalize__G_Class[normalize(G, Class)]
 +
 --
 Validates and normalizes a grid, modifying the grid so that all of the domain object's members (properties, collections, actions) are bound to regions of the grid.
 --
-<.> xref:#complete[complete]
+<.> xref:#complete__G_Class[complete(G, Class)]
 +
 --
 Takes a normalized grid and enriches it with all the available metadata (taken from Apache Isis' internal metadata) that can be represented in the layout XML.
 --
-<.> xref:#minimal[minimal]
+<.> xref:#minimal__G_Class[minimal(G, Class)]
 +
 --
 Takes a normalized grid and strips out removes all members, leaving only the grid structure.
@@ -58,50 +58,50 @@ Takes a normalized grid and strips out removes all members, leaving only the gri
 
 == Members
 
-[#gridImplementation]
-=== gridImplementation
+[#gridImplementation__]
+=== gridImplementation()
 
 The concrete subclass of xref:system:generated:index/applib/layout/grid/Grid.adoc[Grid] supported by this implementation.
 
 There can be multiple implementations of this service, this indicates the base class used by the implementation.
 
-[#tns]
-=== tns
+[#tns__]
+=== tns()
 
 The target namespace for this grid system.
 
 This is used when generating the XML. The Bootstrap3 grid system provided by the framework returns the value `http://isis.apache.org/applib/layout/grid/bootstrap3`.
 
-[#schemaLocation]
-=== schemaLocation
+[#schemaLocation__]
+=== schemaLocation()
 
 The schema location for the XSD.
 
 Every grid system is expected to provide a schema XSD in order to provide code completion in an IDE. The Bootstrap3 grid system provided by the framework returns the value `http://isis.apache.org/applib/layout/grid/bootstrap3/bootstrap3.xsd`.
 
-[#defaultGrid]
-=== defaultGrid
+[#defaultGrid__Class]
+=== defaultGrid(Class)
 
 A default grid, used when no grid layout can be found for the domain class.
 
 For example, this layout could define two columns in ratio 4:8.
 
-[#normalize]
-=== normalize
+[#normalize__G_Class]
+=== normalize(G, Class)
 
 Validates and normalizes a grid, modifying the grid so that all of the domain object's members (properties, collections, actions) are bound to regions of the grid.
 
 This is done using existing metadata, most notably that of the _org.apache.isis.applib.annotation.MemberOrder_ annotation. Such a grid, if persisted as the layout XML file for the domain class, allows the _org.apache.isis.applib.annotation.MemberOrder_ annotation to be removed from the source code of the domain class (but other annotations must be retained).
 
-[#complete]
-=== complete
+[#complete__G_Class]
+=== complete(G, Class)
 
 Takes a normalized grid and enriches it with all the available metadata (taken from Apache Isis' internal metadata) that can be represented in the layout XML.
 
 Such a grid, if persisted as the layout XML file for the domain class, allows all layout annotations ( _org.apache.isis.applib.annotation.ActionLayout_ , _org.apache.isis.applib.annotation.PropertyLayout_ , _org.apache.isis.applib.annotation.CollectionLayout_ ) to be removed from the source code of the domain class.
 
-[#minimal]
-=== minimal
+[#minimal__G_Class]
+=== minimal(G, Class)
 
 Takes a normalized grid and strips out removes all members, leaving only the grid structure.
 
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 669625b..57f5a31 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
@@ -18,27 +18,27 @@ interface HintStore {
 }
 ----
 
-<.> xref:#get[get]
+<.> xref:#get__Bookmark_String[get(Bookmark, String)]
 +
 --
 Obtain a hint (eg which tab to open) for a particular object.
 --
-<.> xref:#set[set]
+<.> xref:#set__Bookmark_String_String[set(Bookmark, String, String)]
 +
 --
 Set the state of a hint for the domain object
 --
-<.> xref:#remove[remove]
+<.> xref:#remove__Bookmark_String[remove(Bookmark, String)]
 +
 --
 Removes hint for the domain object.
 --
-<.> xref:#removeAll[removeAll]
+<.> xref:#removeAll__Bookmark[removeAll(Bookmark)]
 +
 --
 Remotes all hints for the domain object.
 --
-<.> xref:#findHintKeys[findHintKeys]
+<.> xref:#findHintKeys__Bookmark[findHintKeys(Bookmark)]
 +
 --
 The keys of all available hints for the domain object.
@@ -46,30 +46,30 @@ The keys of all available hints for the domain object.
 
 == Members
 
-[#get]
-=== get
+[#get__Bookmark_String]
+=== get(Bookmark, String)
 
 Obtain a hint (eg which tab to open) for a particular object.
 
 Object identity is represented by xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] so that alternative implementations can easily serialize this state to a string.
 
-[#set]
-=== set
+[#set__Bookmark_String_String]
+=== set(Bookmark, String, String)
 
 Set the state of a hint for the domain object
 
-[#remove]
-=== remove
+[#remove__Bookmark_String]
+=== remove(Bookmark, String)
 
 Removes hint for the domain object.
 
-[#removeAll]
-=== removeAll
+[#removeAll__Bookmark]
+=== removeAll(Bookmark)
 
 Remotes all hints for the domain object.
 
-[#findHintKeys]
-=== findHintKeys
+[#findHintKeys__Bookmark]
+=== findHintKeys(Bookmark)
 
 The keys of all available hints for the domain object.
 
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 3fd003a..e15f1f3 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,12 +1,27 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 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 a number of services that work together to provide support for i18n, its responsibility being simply to return the _Locale_ of the current user.
+
 == API
 
 [source,java]
 .LocaleProvider.java
 ----
 interface LocaleProvider {
-  Locale getLocale()
+  Locale getLocale()     // <.>
 }
 ----
 
+<.> xref:#getLocale__[getLocale()]
++
+--
+Returns the _Locale_ of the current user.
+--
+
+== Members
+
+[#getLocale__]
+=== getLocale()
+
+Returns the _Locale_ of the current user.
+
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 d3dcc2e..eb2810c 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,37 +22,37 @@ class TranslatableString {
 }
 ----
 
-<.> xref:#tr[tr]
+<.> xref:#tr__String_Object[tr(String, Object)]
 +
 --
 A translatable string with a single pattern for both singular and plural forms.
 --
-<.> xref:#trn[trn]
+<.> xref:#trn__String_String_int_Object[trn(String, String, int, Object)]
 +
 --
 A translatable string with different patterns for singular and plural forms, selected automatically by the number
 --
-<.> xref:#getSingularText[getSingularText]
+<.> 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 `true` then used only for the singular form.
 --
-<.> xref:#getPluralText[getPluralText]
+<.> 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 `null` if _#isPluralForm()_ is `false` .
 --
-<.> xref:#getArgumentsByParameterName[getArgumentsByParameterName]
+<.> xref:#getArgumentsByParameterName__[getArgumentsByParameterName()]
 +
 --
 The arguments; excluded from _#equals(Object)_ comparison.
 --
-<.> xref:#translate[translate]
+<.> xref:#translate__TranslationService_String[translate(TranslationService, String)]
 +
 --
 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()_ .
 --
-<.> xref:#getPattern[getPattern]
+<.> xref:#getPattern__[getPattern()]
 +
 --
 The text to be translated; depends on whether _#isPluralForm()_ and whether to be translated.
@@ -60,38 +60,38 @@ The text to be translated; depends on whether _#isPluralForm()_ and whether to b
 
 == Members
 
-[#tr]
-=== tr
+[#tr__String_Object]
+=== tr(String, Object)
 
 A translatable string with a single pattern for both singular and plural forms.
 
-[#trn]
-=== trn
+[#trn__String_String_int_Object]
+=== trn(String, String, int, Object)
 
 A translatable string with different patterns for singular and plural forms, selected automatically by the number
 
-[#getSingularText]
-=== getSingularText
+[#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
+[#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
+[#getArgumentsByParameterName__]
+=== getArgumentsByParameterName()
 
 The arguments; excluded from _#equals(Object)_ comparison.
 
-[#translate]
-=== translate
+[#translate__TranslationService_String]
+=== translate(TranslationService, String)
 
 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
+[#getPattern__]
+=== getPattern()
 
 The text to be translated; depends on whether _#isPluralForm()_ and whether to be translated.
 
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 2b4b4d5..c6f7c77 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,17 +12,17 @@ interface TranslationService {
 }
 ----
 
-<.> xref:#translate[translate]
+<.> xref:#translate__String_String[translate(String, String)]
 +
 --
 Return a translation of the text, in the locale of the "current user".
 --
-<.> xref:#translate[translate]
+<.> xref:#translate__String_String_String_int[translate(String, String, String, int)]
 +
 --
 Return a translation of either the singular or the plural text, dependent on the `num` parameter, in the locale of the "current user".
 --
-<.> xref:#getMode[getMode]
+<.> xref:#getMode__[getMode()]
 +
 --
 Whether this implementation is operating in read or in write mode.
@@ -30,22 +30,22 @@ Whether this implementation is operating in read or in write mode.
 
 == Members
 
-[#translate]
-=== translate
+[#translate__String_String]
+=== translate(String, String)
 
 Return a translation of the text, in the locale of the "current user".
 
 The mechanism to determine the locale is implementation-specific.
 
-[#translate]
-=== translate
+[#translate__String_String_String_int]
+=== translate(String, String, String, int)
 
 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
+[#getMode__]
+=== getMode()
 
 Whether this implementation is operating in read or in write mode.
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/iactn/Execution.adoc b/antora/components/system/modules/generated/pages/index/applib/services/iactn/Execution.adoc
index a36b0f6..08bdb42 100644
--- a/antora/components/system/modules/generated/pages/index/applib/services/iactn/Execution.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/services/iactn/Execution.adoc
@@ -21,37 +21,37 @@ class Execution<T, E> {
 }
 ----
 
-<.> xref:#setParent[setParent]
+<.> xref:#setParent__Execution[setParent(Execution)]
 +
 --
  *NOT API* : intended to be called only by the framework.
 --
-<.> xref:#getChildren[getChildren]
+<.> xref:#getChildren__[getChildren()]
 +
 --
 The actions/property edits made in turn via the xref:system:generated:index/applib/services/wrapper/WrapperFactory.adoc[WrapperFactory] .
 --
-<.> xref:#setEvent[setEvent]
+<.> xref:#setEvent__E[setEvent(E)]
 +
 --
  *NOT API* : intended to be called only by the framework.
 --
-<.> xref:#setCompletedAt[setCompletedAt]
+<.> xref:#setCompletedAt__Timestamp_MetricsService[setCompletedAt(Timestamp, MetricsService)]
 +
 --
  *NOT API* : intended to be called only by the framework.
 --
-<.> xref:#setReturned[setReturned]
+<.> xref:#setReturned__Object[setReturned(Object)]
 +
 --
  *NOT API* : intended to be called only by the framework.
 --
-<.> xref:#setThrew[setThrew]
+<.> xref:#setThrew__Exception[setThrew(Exception)]
 +
 --
  *NOT API* : intended to be called only by the framework.
 --
-<.> xref:#setDto[setDto]
+<.> xref:#setDto__T[setDto(T)]
 +
 --
  *NOT API* : Set by framework (implementation of _org.apache.isis.core.metamodel.execution.InternalInteraction.MemberExecutor_ )
@@ -59,38 +59,38 @@ The actions/property edits made in turn via the xref:system:generated:index/appl
 
 == Members
 
-[#setParent]
-=== setParent
+[#setParent__Execution]
+=== setParent(Execution)
 
  *NOT API* : intended to be called only by the framework.
 
-[#getChildren]
-=== getChildren
+[#getChildren__]
+=== getChildren()
 
 The actions/property edits made in turn via the xref:system:generated:index/applib/services/wrapper/WrapperFactory.adoc[WrapperFactory] .
 
-[#setEvent]
-=== setEvent
+[#setEvent__E]
+=== setEvent(E)
 
  *NOT API* : intended to be called only by the framework.
 
-[#setCompletedAt]
-=== setCompletedAt
+[#setCompletedAt__Timestamp_MetricsService]
+=== setCompletedAt(Timestamp, MetricsService)
 
  *NOT API* : intended to be called only by the framework.
 
-[#setReturned]
-=== setReturned
+[#setReturned__Object]
+=== setReturned(Object)
 
  *NOT API* : intended to be called only by the framework.
 
-[#setThrew]
-=== setThrew
+[#setThrew__Exception]
+=== setThrew(Exception)
 
  *NOT API* : intended to be called only by the framework.
 
-[#setDto]
-=== setDto
+[#setDto__T]
+=== setDto(T)
 
  *NOT API* : Set by framework (implementation of _org.apache.isis.core.metamodel.execution.InternalInteraction.MemberExecutor_ )
 
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 5dbe5b0..3853002 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
@@ -42,7 +42,7 @@ The (programmatically) simulated (or actual) user.
 --
 The (programmatically) simulated (or actual) clock.
 --
-<.> xref:#ofUserWithSystemDefaults[ofUserWithSystemDefaults]
+<.> xref:#ofUserWithSystemDefaults__UserMemento[ofUserWithSystemDefaults(UserMemento)]
 +
 --
 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.
@@ -60,8 +60,8 @@ The (programmatically) simulated (or actual) user.
 
 The (programmatically) simulated (or actual) clock.
 
-[#ofUserWithSystemDefaults]
-=== ofUserWithSystemDefaults
+[#ofUserWithSystemDefaults__UserMemento]
+=== ofUserWithSystemDefaults(UserMemento)
 
 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 685c53a..55a42b3 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
@@ -22,27 +22,27 @@ interface Interaction {
 }
 ----
 
-<.> xref:#getUniqueId[getUniqueId]
+<.> xref:#getUniqueId__[getUniqueId()]
 +
 --
 The unique identifier of this interaction (inherited from xref:system:generated:index/commons/having/HasUniqueId.adoc[HasUniqueId] )
 --
-<.> xref:#getCommand[getCommand]
+<.> xref:#getCommand__[getCommand()]
 +
 --
 Represents the _intention_ to perform this interaction.
 --
-<.> xref:#getCurrentExecution[getCurrentExecution]
+<.> xref:#getCurrentExecution__[getCurrentExecution()]
 +
 --
 The current (most recently pushed) xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] .
 --
-<.> xref:#getPriorExecution[getPriorExecution]
+<.> xref:#getPriorExecution__[getPriorExecution()]
 +
 --
 The execution that preceded the current one.
 --
-<.> xref:#next[next]
+<.> xref:#next__String[next(String)]
 +
 --
 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 xref:system:generated:index/applib/services/iactn/Sequence.adoc[Sequence] enum.
@@ -50,30 +50,30 @@ Generates numbers in a named sequence. The name of the sequence can be arbitrary
 
 == Members
 
-[#getUniqueId]
-=== getUniqueId
+[#getUniqueId__]
+=== getUniqueId()
 
 The unique identifier of this interaction (inherited from xref:system:generated:index/commons/having/HasUniqueId.adoc[HasUniqueId] )
 
 This can be used to correlate audit records and transactions happening as a consequence or within the interaction.
 
-[#getCommand]
-=== getCommand
+[#getCommand__]
+=== getCommand()
 
 Represents the _intention_ to perform this interaction.
 
-[#getCurrentExecution]
-=== getCurrentExecution
+[#getCurrentExecution__]
+=== getCurrentExecution()
 
 The current (most recently pushed) xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] .
 
-[#getPriorExecution]
-=== getPriorExecution
+[#getPriorExecution__]
+=== getPriorExecution()
 
 The execution that preceded the current one.
 
-[#next]
-=== next
+[#next__String]
+=== next(String)
 
 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 xref:system:generated:index/applib/services/iactn/Sequence.adoc[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 d51ac99..2e5d3fc 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
@@ -15,7 +15,7 @@ interface InteractionContext {
 }
 ----
 
-<.> xref:#currentInteraction[currentInteraction]
+<.> xref:#currentInteraction__[currentInteraction()]
 +
 --
 Optionally, the currently active xref:system:generated:index/applib/services/iactn/Interaction.adoc[Interaction] for the calling thread.
@@ -23,8 +23,8 @@ Optionally, the currently active xref:system:generated:index/applib/services/iac
 
 == Members
 
-[#currentInteraction]
-=== currentInteraction
+[#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 502e507..c256f21 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,41 +1,97 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 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 instances of JAXB-annotated classes to be marshalled to XML and unmarshalled from XML back into domain objects.
+
+The default implementation automatically caches the JAXB marshallers by target class.
+
 == API
 
 [source,java]
 .JaxbService.java
 ----
 interface JaxbService {
-  Object fromXml(JAXBContext jaxbContext, String xml)
-  Object fromXml(JAXBContext jaxbContext, String xml, Map<String, Object> unmarshallerProperties)
+  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)     // <.>
-  String toXml(Object domainObject)
-  String toXml(Object domainObject, Map<String, Object> marshallerProperties)
-  Map<String, String> toXsd(Object domainObject, IsisSchemas isisSchemas)
+  String toXml(Object domainObject)     // <.>
+  String toXml(Object domainObject, Map<String, Object> marshallerProperties)     // <.>
+  Map<String, String> toXsd(Object domainObject, IsisSchemas isisSchemas)     // <.>
 }
 ----
 
-<.> xref:#fromXml[fromXml]
+<.> xref:#fromXml__JAXBContext_String[fromXml(JAXBContext, String)]
++
+--
+unmarshalls the XML into an instance of the class, using the provided _JAXBContext_ .
+--
+<.> xref:#fromXml__JAXBContext_String_Map[fromXml(JAXBContext, String, Map)]
++
+--
+unmarshalls the XML into an instance of the class, using the provided _JAXBContext_ and the additional properties.
+--
+<.> xref:#fromXml__Class_String[fromXml(Class, String)]
++
+--
+Unmarshalls the XML to the specified domain class.
+--
+<.> xref:#fromXml__Class_String_Map[fromXml(Class, String, Map)]
++
+--
+Unmarshalls the XML to the specified domain class, with additional properties passed through to the _JAXBContext_ used to performed the unmarshalling.
+--
+<.> xref:#toXml__Object[toXml(Object)]
 +
 --
-As _#fromXml(JAXBContext, String)_ , but downcast to a specific type.
+Marshalls the object into XML (using a _JAXBContext_ for the object's class).
 --
-<.> xref:#fromXml[fromXml]
+<.> xref:#toXml__Object_Map[toXml(Object, Map)]
 +
 --
-As _#fromXml(JAXBContext, String, Map)_ , but downcast to a specific type.
+Marshalls the object into XML specifying additional properties (passed to the _JAXBContext_ used for the object's class).
+--
+<.> xref:#toXsd__Object_IsisSchemas[toXsd(Object, IsisSchemas)]
++
+--
+Generates a map of each of the schemas referenced; the key is the schema namespace, the value is the XML of the schema itself.
 --
 
 == Members
 
-[#fromXml]
-=== fromXml
+[#fromXml__JAXBContext_String]
+=== fromXml(JAXBContext, String)
+
+unmarshalls the XML into an instance of the class, using the provided _JAXBContext_ .
+
+[#fromXml__JAXBContext_String_Map]
+=== fromXml(JAXBContext, String, Map)
+
+unmarshalls the XML into an instance of the class, using the provided _JAXBContext_ and the additional properties.
+
+[#fromXml__Class_String]
+=== fromXml(Class, String)
+
+Unmarshalls the XML to the specified domain class.
+
+[#fromXml__Class_String_Map]
+=== fromXml(Class, String, Map)
+
+Unmarshalls the XML to the specified domain class, with additional properties passed through to the _JAXBContext_ used to performed the unmarshalling.
+
+[#toXml__Object]
+=== toXml(Object)
+
+Marshalls the object into XML (using a _JAXBContext_ for the object's class).
+
+[#toXml__Object_Map]
+=== toXml(Object, Map)
+
+Marshalls the object into XML specifying additional properties (passed to the _JAXBContext_ used for the object's class).
 
-As _#fromXml(JAXBContext, String)_ , but downcast to a specific type.
+[#toXsd__Object_IsisSchemas]
+=== toXsd(Object, IsisSchemas)
 
-[#fromXml]
-=== fromXml
+Generates a map of each of the schemas referenced; the key is the schema namespace, the value is the XML of the schema itself.
 
-As _#fromXml(JAXBContext, String, Map)_ , but downcast to a specific type.
+A JAXB-annotated domain object will live in its own XSD namespace and may reference multiple other XSD schemas. In particular, many JAXB domain objects will reference the common isis schemas. The _IsisSchemas_ paramter indicates whether these schemas should be included or excluded from the map.
 
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 46f3b40..c6465bf 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,5 +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 [...]
 
+Provides the ability to obtain the XML layout for a single domain object or for all domain objects.
+
 == API
 
 [source,java]
@@ -12,17 +14,17 @@ interface LayoutService {
 }
 ----
 
-<.> xref:#toXml[toXml]
+<.> xref:#toXml__Class_Style[toXml(Class, Style)]
 +
 --
 Obtains the serialized XML form of the layout (grid) for the specified domain class.
 --
-<.> xref:#toZip[toZip]
+<.> xref:#toZip__Style[toZip(Style)]
 +
 --
 Obtains a zip file of the serialized XML of the layouts (grids) of all domain entities and view models.
 --
-<.> xref:#toMenuBarsXml[toMenuBarsXml]
+<.> xref:#toMenuBarsXml__MenuBarsService.Type[toMenuBarsXml(MenuBarsService.Type)]
 +
 --
 Obtains the serialized XML form of the menu bars layout ( xref:system:generated:index/applib/services/menu/MenuBarsService.adoc[MenuBarsService] ).
@@ -30,18 +32,18 @@ Obtains the serialized XML form of the menu bars layout ( xref:system:generated:
 
 == Members
 
-[#toXml]
-=== toXml
+[#toXml__Class_Style]
+=== toXml(Class, Style)
 
 Obtains the serialized XML form of the layout (grid) for the specified domain class.
 
-[#toZip]
-=== toZip
+[#toZip__Style]
+=== toZip(Style)
 
 Obtains a zip file of the serialized XML of the layouts (grids) of all domain entities and view models.
 
-[#toMenuBarsXml]
-=== toMenuBarsXml
+[#toMenuBarsXml__MenuBarsService.Type]
+=== toMenuBarsXml(MenuBarsService.Type)
 
 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/layout/LayoutServiceMenu.adoc b/antora/components/system/modules/generated/pages/index/applib/services/layout/LayoutServiceMenu.adoc
index 5a02010..f26fc90 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,5 +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 [...]
 
+Simply provides a UI to allow layouts (obtained from xref:system:generated:index/applib/services/layout/LayoutService.adoc[LayoutService] to be downloaded within the UI.
+
 == API
 
 [source,java]
@@ -9,8 +11,8 @@ class LayoutServiceMenu {
   @Inject
 LayoutService layoutService;
   LayoutServiceMenu()
-  Blob downloadLayouts(final LayoutService.Style style)
-  LayoutService.Style default0DownloadLayouts()
+  Blob downloadLayouts(final Style style)
+  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/layout/Style.adoc b/antora/components/system/modules/generated/pages/index/applib/services/layout/Style.adoc
new file mode 100644
index 0000000..38043c6
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/services/layout/Style.adoc
@@ -0,0 +1,80 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
+
+Mode of operation when downloading a layout file (while prototyping). It affects the way the file's content is assembled. Once a layout file is in place, its layout data takes precedence over any conflicting layout data from annotations.
+
+== API
+
+[source,java]
+.Style.java
+----
+enum Style {
+  CURRENT     // <.>
+  COMPLETE     // <.>
+  NORMALIZED     // <.>
+  MINIMAL     // <.>
+}
+----
+
+<.> xref:#CURRENT[CURRENT]
++
+--
+The current layout for the domain class.
+--
+<.> xref:#COMPLETE[COMPLETE]
++
+--
+As per _#NORMALIZED_ , but also with all (non-null) facets for all properties/collections/actions also included included in the grid.
+--
+<.> xref:#NORMALIZED[NORMALIZED]
++
+--
+Default, whereby missing properties/collections/actions are added to regions, and unused/empty regions are removed/trimmed.
+--
+<.> xref:#MINIMAL[MINIMAL]
++
+--
+As per _#NORMALIZED_ , but with no properties/collections/actions.
+--
+
+== Members
+
+[#CURRENT]
+=== CURRENT
+
+The current layout for the domain class.
+
+If a `layout.xml` exists, then the grid returned will correspond to that grid, having been _org.apache.isis.applib.services.grid.GridService#normalize(Grid) normalized_ . If there is no `layout.xml` file, then the grid returned will be the _org.apache.isis.applib.services.grid.GridService#defaultGridFor(Class) default grid_ , also _org.apache.isis.applib.services.grid.GridService#normalize(Grid) normalized_ .
+
+[#COMPLETE]
+=== COMPLETE
+
+As per _#NORMALIZED_ , but also with all (non-null) facets for all properties/collections/actions also included included in the grid.
+
+The intention here is that any layout metadata annotations can be removed from the code.
+
+* _@MemberGroupLayout_ : *serialized as XML*
+* _@MemberOrder_ : *serialized as XML*
+* _@ActionLayout, @PropertyLayout, @CollectionLayout_ : *serialized as XML*
+
+[#NORMALIZED]
+=== NORMALIZED
+
+Default, whereby missing properties/collections/actions are added to regions, and unused/empty regions are removed/trimmed.
+
+It should be possible to remove any xref:system:generated:index/applib/annotation/MemberOrder.adoc[MemberOrder] annotation but any property/collection/action layout annotations would need to be retained.
+
+* _@MemberGroupLayout_ : *serialized as XML*
+* _@MemberOrder_ : *serialized as XML*
+* _@ActionLayout, @PropertyLayout, @CollectionLayout_ : *ignored*
+
+[#MINIMAL]
+=== MINIMAL
+
+As per _#NORMALIZED_ , but with no properties/collections/actions.
+
+The intention here is for layout annotations that "bind" the properties/collections/actions to the regions to be retained.
+
+* _@MemberGroupLayout_ : *serialized as XML*
+* _@MemberOrder_ : *ignored*
+* _@ActionLayout, @PropertyLayout, @CollectionLayout_ : *ignored*
+
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 c862f6a..184171a 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
@@ -16,7 +16,7 @@ interface DeepLinkService {
 }
 ----
 
-<.> xref:#deepLinkFor[deepLinkFor]
+<.> xref:#deepLinkFor__Object[deepLinkFor(Object)]
 +
 --
 Creates a URI that can be used to obtain a representation of the provided domain object in one of the Isis viewers.
@@ -24,8 +24,8 @@ Creates a URI that can be used to obtain a representation of the provided domain
 
 == Members
 
-[#deepLinkFor]
-=== deepLinkFor
+[#deepLinkFor__Object]
+=== deepLinkFor(Object)
 
 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 ff535ee..ce2ef40 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,5 +1,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 [...]
 
+Returns the xref:system:generated:index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc[BS3MenuBars] instance (bootstrap3-specific subtype of _org.apache.isis.applib.layout.menubars.MenuBars_ , for the UI.
+
+The default implementation deserializes the `menubars.layout.xml` file read from the classpath.
+
+The service is _called_ by the default implementation of xref:system:generated:index/applib/services/menu/MenuBarsService.adoc[MenuBarsService] .
+
 == API
 
 [source,java]
@@ -11,26 +17,28 @@ interface MenuBarsLoaderService {
 }
 ----
 
-<.> xref:#supportsReloading[supportsReloading]
+<.> xref:#supportsReloading__[supportsReloading()]
 +
 --
 Whether dynamic reloading of layouts is enabled.
 --
-<.> xref:#menuBars[menuBars]
+<.> xref:#menuBars__[menuBars()]
 +
 --
-Returns a new instance of a xref:system:generated:index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc[BS3MenuBars] , else `null` .
+Returns a new instance of a xref:system:generated:index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc[BS3MenuBars] if possible, else `null` .
 --
 
 == Members
 
-[#supportsReloading]
-=== supportsReloading
+[#supportsReloading__]
+=== supportsReloading()
 
 Whether dynamic reloading of layouts is enabled.
 
-[#menuBars]
-=== menuBars
+If not, then the calling xref:system:generated:index/applib/services/menu/MenuBarsService.adoc[MenuBarsService] will cache the layout once loaded.
+
+[#menuBars__]
+=== menuBars()
 
-Returns a new instance of a xref:system:generated:index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc[BS3MenuBars] , else `null` .
+Returns a new instance of a xref:system:generated:index/applib/layout/menubars/bootstrap3/BS3MenuBars.adoc[BS3MenuBars] if possible, 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 cedf174..ebd3adb 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,5 +1,9 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or ag [...]
 
+Responsible for returning a xref:system:generated:index/applib/services/menu/MenuBarsService.adoc[MenuBarsService] instance, a data structure representing the arrangement of domain service actions across multiple menu bars, menus and sections.
+
+This is used by the Wicket viewer to build up the menu. It is also served as the "menuBars" resource by the Restful Objects viewer.
+
 == API
 
 [source,java]
@@ -7,20 +11,30 @@
 ----
 interface MenuBarsService {
   MenuBars menuBars()     // <.>
-  MenuBars menuBars(final Type type)
+  MenuBars menuBars(final Type type)     // <.>
 }
 ----
 
-<.> xref:#menuBars[menuBars]
+<.> xref:#menuBars__[menuBars()]
 +
 --
 Returns _#menuBars()_ with a type of _Type#DEFAULT_ .
 --
+<.> xref:#menuBars__Type[menuBars(Type)]
++
+--
+Returns the menu bars with the requested _Type_ .
+--
 
 == Members
 
-[#menuBars]
-=== menuBars
+[#menuBars__]
+=== menuBars()
 
 Returns _#menuBars()_ with a type of _Type#DEFAULT_ .
 
+[#menuBars__Type]
+=== menuBars(Type)
+
+Returns the menu bars with the requested _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 a2096b1..2147083 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,5 +1,9 @@
 :Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 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 domain objects to raise information, warning or error messages.
+
+These messages can either be simple strings, or can be translated.
+
 == API
 
 [source,java]
@@ -18,102 +22,112 @@ interface MessageService {
 }
 ----
 
-<.> xref:#informUser[informUser]
+<.> xref:#informUser__String[informUser(String)]
 +
 --
-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.
+Make the specified message available to the user, intended to be useful but optional information, for a viewer to display typically in a transitory manner.
 --
-<.> xref:#informUser[informUser]
+<.> xref:#informUser__TranslatableString_Class_String[informUser(TranslatableString, Class, String)]
 +
 --
-Make the specified message available to the user, translated (if possible) to user's locale.
+As _#informUser(String)_ , but with the message translated (if possible) to user's _java.util.Locale_ .
 --
-<.> xref:#informUser[informUser]
+<.> xref:#informUser__TranslatableString_String[informUser(TranslatableString, String)]
 +
 --
-Override of _MessageService#informUser(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
+Override of _MessageService#informUser(TranslatableString, Class, String)_ , but with an arbitrary translation context (rather than inferred from the context class and method).
 --
-<.> xref:#warnUser[warnUser]
+<.> xref:#warnUser__String[warnUser(String)]
 +
 --
-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.
+Warn the user about a situation with the specified message.
 --
-<.> xref:#warnUser[warnUser]
+<.> xref:#warnUser__TranslatableString_Class_String[warnUser(TranslatableString, Class, String)]
 +
 --
-Warn the user about a situation with the specified message, translated (if possible) to user's locale.
+As _#warnUser(String)_ , but with the message translated (if possible) to user's _java.util.Locale_ .
 --
-<.> xref:#warnUser[warnUser]
+<.> xref:#warnUser__TranslatableString_String[warnUser(TranslatableString, String)]
 +
 --
-Override of _MessageService#warnUser(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
+Override of _MessageService#warnUser(TranslatableString, Class, String)_ , but with an arbitrary translation context (rather than inferred from the context class and method).
 --
-<.> xref:#raiseError[raiseError]
+<.> xref:#raiseError__String[raiseError(String)]
 +
 --
-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).
+Notify the user of an application error with the specified message.
 --
-<.> xref:#raiseError[raiseError]
+<.> xref:#raiseError__TranslatableString_Class_String[raiseError(TranslatableString, Class, String)]
 +
 --
-Notify the user of an application error with the specified message, translated (if possible) to user's locale.
+As _#raiseError(String)_ , but with the message translated (if possible) to user's _java.util.Locale_ .
 --
-<.> xref:#raiseError[raiseError]
+<.> xref:#raiseError__TranslatableString_String[raiseError(TranslatableString, String)]
 +
 --
-Override of _MessageService#raiseError(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
+Override of _MessageService#raiseError(TranslatableString, Class, String)_ , but with an arbitrary translation context (rather than inferred from the context class and method).
 --
 
 == Members
 
-[#informUser]
-=== informUser
+[#informUser__String]
+=== informUser(String)
+
+Make the specified message available to the user, intended to be useful but optional information, for a viewer to display typically in a transitory manner.
+
+In the Wicket viewer this is implemented as a "toast" message that automatically disappears after a period of time.
+
+[#informUser__TranslatableString_Class_String]
+=== informUser(TranslatableString, Class, String)
+
+As _#informUser(String)_ , but with the message translated (if possible) to user's _java.util.Locale_ .
+
+More precisely, the locale is as provided by the configured _org.apache.isis.applib.services.i18n.LocaleProvider_ service. This should be the _java.util.Locale_ of the user making the current request.
 
-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__TranslatableString_String]
+=== informUser(TranslatableString, String)
 
-[#informUser]
-=== informUser
+Override of _MessageService#informUser(TranslatableString, Class, String)_ , but with an arbitrary translation context (rather than inferred from the context class and method).
 
-Make the specified message available to the user, translated (if possible) to user's locale.
+[#warnUser__String]
+=== warnUser(String)
 
-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).
+Warn the user about a situation with the specified message.
 
-[#informUser]
-=== informUser
+The viewer should guarantee to display this warning to the user, and will typically require acknowledgement.
 
-Override of _MessageService#informUser(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
+In the Wicket viewer this is implemented as a "toast" message that must be explicitly closed by the user.
 
-[#warnUser]
-=== warnUser
+[#warnUser__TranslatableString_Class_String]
+=== warnUser(TranslatableString, Class, String)
 
-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.
+As _#warnUser(String)_ , but with the message translated (if possible) to user's _java.util.Locale_ .
 
-[#warnUser]
-=== warnUser
+More precisely, the locale is as provided by the configured _org.apache.isis.applib.services.i18n.LocaleProvider_ service. This should be the _java.util.Locale_ of the user making the current request.
 
-Warn the user about a situation with the specified message, translated (if possible) to user's locale.
+[#warnUser__TranslatableString_String]
+=== warnUser(TranslatableString, String)
 
-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).
+Override of _MessageService#warnUser(TranslatableString, Class, String)_ , but with an arbitrary translation context (rather than inferred from the context class and method).
 
-[#warnUser]
-=== warnUser
+[#raiseError__String]
+=== raiseError(String)
 
-Override of _MessageService#warnUser(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
+Notify the user of an application error with the specified message.
 
-[#raiseError]
-=== raiseError
+Note this will probably be displayed in an prominent fashion, so is only suitable for errors. The user will typically be required to perform additional steps after the error..
 
-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).
+In the Wicket viewer this is implemented as a toast (with a different colour) that must be closed by the end-user.
 
-[#raiseError]
-=== raiseError
+[#raiseError__TranslatableString_Class_String]
+=== raiseError(TranslatableString, Class, String)
 
-Notify the user of an application error with the specified message, translated (if possible) to user's locale.
+As _#raiseError(String)_ , but with the message translated (if possible) to user's _java.util.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).
+More precisely, the locale is as provided by the configured _org.apache.isis.applib.services.i18n.LocaleProvider_ service. This should be the _java.util.Locale_ of the user making the current request.
 
-[#raiseError]
-=== raiseError
+[#raiseError__TranslatableString_String]
+=== raiseError(TranslatableString, String)
 
-Override of _MessageService#raiseError(TranslatableString, Class, String)_ , but with last two parameters combined into a context string.
+Override of _MessageService#raiseError(TranslatableString, Class, String)_ , but with an arbitrary translation context (rather than inferred from the context class and method).
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/services/metamodel/Config.adoc b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/Config.adoc
new file mode 100644
index 0000000..39dc8c3
--- /dev/null
+++ b/antora/components/system/modules/generated/pages/index/applib/services/metamodel/Config.adoc
@@ -0,0 +1,41 @@
+:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. 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 what to include in the export from _MetaModelService#exportMetaModel(Config)_ .
+
+== API
+
+[source,java]
+.Config.java
+----
+class Config {
+  Config()
+  Set<String> getPackagePrefixes()
+  Config withIgnoreNoop()
+  Config withIgnoreInterfaces()
+  Config withIgnoreAbstractClasses()
+  Config withIgnoreBuiltInValueTypes()
+  Config withIgnoreMixins()
+  Config withPackagePrefixAny()
+  boolean isPackagePrefixAny()
+  Config withPackagePrefix(final String packagePrefix)     // <.>
+  boolean isIgnoreNoop()
+  boolean isIgnoreInterfaces()
+  boolean isIgnoreAbstractClasses()
+  boolean isIgnoreBuiltInValueTypes()
+  boolean isIgnoreMixins()
+}
+----
+
+<.> xref:#withPackagePrefix__String[withPackagePrefix(String)]
++
+--
+Returns a new _Config_ with given _packagePrefix_ added to the set of this _Config_ 's packagePrefixes.
+--
+
+== Members
+
+[#withPackagePrefix__String]
+=== withPackagePrefix(String)
+
+Returns a new _Config_ with given _packagePrefix_ added to the set of this _Config_ 's packagePrefixes.
+
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 3be7d01..615b733 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,8 +1,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 [...]
 
-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.
+This service provides a formal API into the framework's metamodel.
 
 == API
 
@@ -12,45 +10,75 @@ This API is currently extremely limited, but the intention is to extend it gradu
 interface MetaModelService {
   Class<?> fromObjectType(final String objectType)     // <.>
   String toObjectType(final Class<?> domainType)     // <.>
-  void rebuild(final Class<?> domainType)
+  void rebuild(final Class<?> domainType)     // <.>
   DomainModel getDomainModel()     // <.>
-  BeanSort sortOf(Class<?> domainType, Mode mode)
-  BeanSort sortOf(Bookmark bookmark, Mode mode)
-  CommandDtoProcessor commandDtoProcessorFor(String logicalMemberIdentifier)
-  MetamodelDto exportMetaModel(final Config config)
+  BeanSort sortOf(Class<?> domainType, Mode mode)     // <.>
+  BeanSort sortOf(Bookmark bookmark, Mode mode)     // <.>
+  CommandDtoProcessor commandDtoProcessorFor(String logicalMemberIdentifier)     // <.>
+  MetamodelDto exportMetaModel(final Config config)     // <.>
 }
 ----
 
-<.> xref:#fromObjectType[fromObjectType]
+<.> xref:#fromObjectType__String[fromObjectType(String)]
 +
 --
 Provides a reverse lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis' `ObjectSpecIdFacet` ).
 --
-<.> xref:#toObjectType[toObjectType]
+<.> xref:#toObjectType__Class[toObjectType(Class)]
 +
 --
 Provides a lookup of a domain class' object type, as defined by _DomainObject#objectType()_ (or any other mechanism that corresponds to Isis' `ObjectSpecIdFacet` ).
 --
-<.> xref:#getDomainModel[getDomainModel]
+<.> xref:#rebuild__Class[rebuild(Class)]
++
+--
+Invalidates and rebuilds the internal metadata for the specified domain type.
+--
+<.> xref:#getDomainModel__[getDomainModel()]
 +
 --
 Returns a list of representations of each of member of each domain class.
 --
+<.> xref:#sortOf__Class_Mode[sortOf(Class, Mode)]
++
+--
+What sort of object the domain type represents.
+--
+<.> xref:#sortOf__Bookmark_Mode[sortOf(Bookmark, Mode)]
++
+--
+Override of _#sortOf(Class, Mode)_ , extracting the domain type from the provided xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] of a domain object instance.
+--
+<.> xref:#commandDtoProcessorFor__String[commandDtoProcessorFor(String)]
++
+--
+Obtains the implementation of xref:system:generated:index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor] (if any) as per _Action#commandDtoProcessor()_ or _Property#commandDtoProcessor()_ .
+--
+<.> xref:#exportMetaModel__Config[exportMetaModel(Config)]
++
+--
+Exports the entire metamodel as a DTO, serializable into XML using JAXB.
+--
 
 == Members
 
-[#fromObjectType]
-=== fromObjectType
+[#fromObjectType__String]
+=== fromObjectType(String)
 
 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
+[#toObjectType__Class]
+=== toObjectType(Class)
 
 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
+[#rebuild__Class]
+=== rebuild(Class)
+
+Invalidates and rebuilds the internal metadata for the specified domain type.
+
+[#getDomainModel__]
+=== getDomainModel()
 
 Returns a list of representations of each of member of each domain class.
 
@@ -58,3 +86,27 @@ Used by xref:system:generated:index/applib/services/metamodel/MetaModelServiceMe
 
 Note that _MetaModelService#exportMetaModel(Config)_ provides a superset of the functionality provided by this method.
 
+[#sortOf__Class_Mode]
+=== sortOf(Class, Mode)
+
+What sort of object the domain type represents.
+
+[#sortOf__Bookmark_Mode]
+=== sortOf(Bookmark, Mode)
+
+Override of _#sortOf(Class, Mode)_ , extracting the domain type from the provided xref:system:generated:index/applib/services/bookmark/Bookmark.adoc[Bookmark] of a domain object instance.
+
+[#commandDtoProcessorFor__String]
+=== commandDtoProcessorFor(String)
+
+Obtains the implementation of xref:system:generated:index/applib/services/commanddto/processor/CommandDtoProcessor.adoc[CommandDtoProcessor] (if any) as per _Action#commandDtoProcessor()_ or _Property#commandDtoProcessor()_ .
+
+This is used by framework-provided implementations of _org.apache.isis.applib.services.conmap.ContentMappingService_ .
+
+[#exportMetaModel__Config]
+=== exportMetaModel(Config)
+
+Exports the entire metamodel as a DTO, serializable into XML using JAXB.
+
+The xref:system:generated:index/applib/services/metamodel/Config.adoc[Config] parameter can be used to restrict/filter the export to some subset of the metamodel; in particular to specific _Config#getPackagePrefixes() package prefixes_ .
+
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 03f7ab7..b0a16b1 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,5 +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 [...]
 
+Provides a UI to allow domain model metadata (obtained from xref:system:generated:index/applib/services/metamodel/MetaModelService.adoc[MetaModelService] to be downloaded within the UI.
+
 == API
 
 [source,java]
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 7feae20..f098cf6 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,12 +11,12 @@ interface MetricsService {
 }
 ----
 
-<.> xref:#numberEntitiesLoaded[numberEntitiesLoaded]
+<.> xref:#numberEntitiesLoaded__[numberEntitiesLoaded()]
 +
 --
 The number of entities that have, so far in this request, been loaded from the database.
 --
-<.> xref:#numberEntitiesDirtied[numberEntitiesDirtied]
+<.> 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.
@@ -24,8 +24,8 @@ The number of objects that have, so far in this request, been dirtied/will need
 
 == Members
 
-[#numberEntitiesLoaded]
-=== numberEntitiesLoaded
+[#numberEntitiesLoaded__]
+=== numberEntitiesLoaded()
 
 The number of entities that have, so far in this request, been loaded from the database.
 
@@ -33,8 +33,8 @@ Corresponds to the number of times that `javax.jdo.listener.LoadLifecycleListene
 
 Is captured within _MemberExecutionDto#getMetrics()_ (accessible from _InteractionContext#currentInteraction()_ ).
 
-[#numberEntitiesDirtied]
-=== numberEntitiesDirtied
+[#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.
 
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 165a384..e688b25 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,7 +12,7 @@ interface CommandSubscriber {
 }
 ----
 
-<.> xref:#onCompleted[onCompleted]
+<.> xref:#onCompleted__Command[onCompleted(Command)]
 +
 --
 Notifies that the command has completed.
@@ -20,8 +20,8 @@ Notifies that the command has completed.
 
 == Members
 
-[#onCompleted]
-=== onCompleted
+[#onCompleted__Command]
+=== onCompleted(Command)
 
 Notifies that the command has completed.
 
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 2f25609..0df4034 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
@@ -22,47 +22,47 @@ interface EntityChanges {
 }
 ----
 
-<.> xref:#getUniqueId[getUniqueId]
+<.> xref:#getUniqueId__[getUniqueId()]
 +
 --
 inherited from xref:system:generated:index/commons/having/HasUniqueId.adoc[HasUniqueId] , correlates back to the unique identifier of the transaction in which these objects were changed.
 --
-<.> xref:#getUsername[getUsername]
+<.> xref:#getUsername__[getUsername()]
 +
 --
 Inherited from xref:system:generated:index/commons/having/HasUsername.adoc[HasUsername] , is the user that initiated the transaction causing these objects to change.
 --
-<.> xref:#getCompletedAt[getCompletedAt]
+<.> xref:#getCompletedAt__[getCompletedAt()]
 +
 --
 Time that the interaction execution completed
 --
-<.> xref:#getNumberLoaded[getNumberLoaded]
+<.> xref:#getNumberLoaded__[getNumberLoaded()]
 +
 --
 Number of domain objects loaded in this interaction
 --
-<.> xref:#getNumberCreated[getNumberCreated]
+<.> xref:#getNumberCreated__[getNumberCreated()]
 +
 --
 Number of domain objects created in this interaction
 --
-<.> xref:#getNumberUpdated[getNumberUpdated]
+<.> xref:#getNumberUpdated__[getNumberUpdated()]
 +
 --
 Number of domain objects updated in this interaction
 --
-<.> xref:#getNumberDeleted[getNumberDeleted]
+<.> xref:#getNumberDeleted__[getNumberDeleted()]
 +
 --
 Number of domain objects deleted in this interaction
 --
-<.> xref:#getNumberPropertiesModified[getNumberPropertiesModified]
+<.> xref:#getNumberPropertiesModified__[getNumberPropertiesModified()]
 +
 --
 Number of domain objects properties that were changed in this interaction
 --
-<.> xref:#getDto[getDto]
+<.> xref:#getDto__[getDto()]
 +
 --
 Same details, but as an an instance of _ChangesDto_ .
@@ -70,48 +70,48 @@ Same details, but as an an instance of _ChangesDto_ .
 
 == Members
 
-[#getUniqueId]
-=== getUniqueId
+[#getUniqueId__]
+=== getUniqueId()
 
 inherited from xref:system:generated:index/commons/having/HasUniqueId.adoc[HasUniqueId] , correlates back to the unique identifier of the transaction in which these objects were changed.
 
-[#getUsername]
-=== getUsername
+[#getUsername__]
+=== getUsername()
 
 Inherited from xref:system:generated:index/commons/having/HasUsername.adoc[HasUsername] , is the user that initiated the transaction causing these objects to change.
 
-[#getCompletedAt]
-=== getCompletedAt
+[#getCompletedAt__]
+=== getCompletedAt()
 
 Time that the interaction execution completed
 
-[#getNumberLoaded]
-=== getNumberLoaded
+[#getNumberLoaded__]
+=== getNumberLoaded()
 
 Number of domain objects loaded in this interaction
 
-[#getNumberCreated]
-=== getNumberCreated
+[#getNumberCreated__]
+=== getNumberCreated()
 
 Number of domain objects created in this interaction
 
-[#getNumberUpdated]
-=== getNumberUpdated
+[#getNumberUpdated__]
+=== getNumberUpdated()
 
 Number of domain objects updated in this interaction
 
-[#getNumberDeleted]
-=== getNumberDeleted
+[#getNumberDeleted__]
+=== getNumberDeleted()
 
 Number of domain objects deleted in this interaction
 
-[#getNumberPropertiesModified]
-=== getNumberPropertiesModified
+[#getNumberPropertiesModified__]
+=== getNumberPropertiesModified()
 
 Number of domain objects properties that were changed in this interaction
 
-[#getDto]
-=== getDto
+[#getDto__]
+=== getDto()
 
 Same details, but as an an instance of _ChangesDto_ .
 
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 452c735..6c4a893 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
@@ -16,7 +16,7 @@ interface EntityChangesSubscriber {
 }
 ----
 
-<.> xref:#onChanging[onChanging]
+<.> xref:#onChanging__EntityChanges[onChanging(EntityChanges)]
 +
 --
 Receives all changing entities (with publishing enabled using _DomainObject#entityChangePublishing()_ ) as an instance of xref:system:generated:index/applib/services/publishing/spi/EntityChanges.adoc[EntityChanges] .
@@ -24,8 +24,8 @@ Receives all changing entities (with publishing enabled using _DomainObject#enti
 
 == Members
 
-[#onChanging]
-=== onChanging
+[#onChanging__EntityChanges]
+=== onChanging(EntityChanges)
 
 Receives all changing entities (with publishing enabled using _DomainObject#entityChangePublishing()_ ) as an instance of xref:system:generated:index/applib/services/publishing/spi/EntityChanges.adoc[EntityChanges] .
 
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 7ababd3..c92626e 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
@@ -14,7 +14,7 @@ interface EntityPropertyChangeSubscriber {
 }
 ----
 
-<.> xref:#onChanging[onChanging]
+<.> xref:#onChanging__EntityPropertyChange[onChanging(EntityPropertyChange)]
 +
 --
 Receives a single property change event for changing entities (with publishing enabled using _DomainObject#entityChangePublishing()_ ) as an instance of xref:system:generated:index/applib/services/publishing/spi/EntityPropertyChange.adoc[EntityPropertyChange] .
@@ -22,8 +22,8 @@ Receives a single property change event for changing entities (with publishing e
 
 == Members
 
-[#onChanging]
-=== onChanging
+[#onChanging__EntityPropertyChange]
+=== onChanging(EntityPropertyChange)
 
 Receives a single property change event for changing entities (with publishing enabled using _DomainObject#entityChangePublishing()_ ) as an instance of xref:system:generated:index/applib/services/publishing/spi/EntityPropertyChange.adoc[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 a1016bd..895f77d 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
@@ -16,7 +16,7 @@ interface ExecutionSubscriber {
 }
 ----
 
-<.> xref:#onExecution[onExecution]
+<.> xref:#onExecution__Execution[onExecution(Execution)]
 +
 --
 Callback to notify that an interaction (an action invocation or property edit, as represented by xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] ) has completed.
@@ -24,8 +24,8 @@ Callback to notify that an interaction (an action invocation or property edit, a
 
 == Members
 
-[#onExecution]
-=== onExecution
+[#onExecution__Execution]
+=== onExecution(Execution)
 
 Callback to notify that an interaction (an action invocation or property edit, as represented by xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] ) has completed.
 
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 6694441..5baae1a 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,7 +21,7 @@ interface QueryResultsCache {
 }
 ----
 
-<.> xref:#onTransactionEnded[onTransactionEnded]
+<.> xref:#onTransactionEnded__[onTransactionEnded()]
 +
 --
 Not API, for framework use only.
@@ -29,8 +29,8 @@ Not API, for framework use only.
 
 == Members
 
-[#onTransactionEnded]
-=== onTransactionEnded
+[#onTransactionEnded__]
+=== onTransactionEnded()
 
 Not API, for framework use only.
 
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/QueryResultsCacheControl.adoc
similarity index 92%
rename from antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultCacheControl.adoc
rename to antora/components/system/modules/generated/pages/index/applib/services/queryresultscache/QueryResultsCacheControl.adoc
index da03c70..ff45587 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/QueryResultsCacheControl.adoc
@@ -3,9 +3,9 @@
 == API
 
 [source,java]
-.QueryResultCacheControl.java
+.QueryResultsCacheControl.java
 ----
-interface QueryResultCacheControl {
+interface QueryResultsCacheControl {
   boolean isIgnoreCache()
 }
 ----
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 fadf4d0..8de6726 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,37 +18,37 @@ interface ServiceRegistry {
 }
 ----
 
-<.> xref:#select[select]
+<.> xref:#select__Class_Annotation[][select(Class, Annotation[])]
 +
 --
 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.
 --
-<.> xref:#select[select]
+<.> xref:#select__Class[select(Class)]
 +
 --
 Obtains a xref:system:generated:index/commons/collections/Can.adoc[Can] container containing any matching instances for the given required type.
 --
-<.> xref:#streamRegisteredBeansOfType[streamRegisteredBeansOfType]
+<.> xref:#streamRegisteredBeansOfType__Class[streamRegisteredBeansOfType(Class)]
 +
 --
 Streams all registered bean adapters implementing the requested type.
 --
-<.> xref:#streamRegisteredBeans[streamRegisteredBeans]
+<.> xref:#streamRegisteredBeans__[streamRegisteredBeans()]
 +
 --
 Returns all bean adapters that have been registered.
 --
-<.> xref:#lookupRegisteredBeanById[lookupRegisteredBeanById]
+<.> xref:#lookupRegisteredBeanById__String[lookupRegisteredBeanById(String)]
 +
 --
 Returns a registered bean of given _name_ .
 --
-<.> xref:#lookupRegisteredBeanByIdElseFail[lookupRegisteredBeanByIdElseFail]
+<.> xref:#lookupRegisteredBeanByIdElseFail__String[lookupRegisteredBeanByIdElseFail(String)]
 +
 --
 Returns a registered bean of given _name_ , or throws when no such bean.
 --
-<.> xref:#lookupService[lookupService]
+<.> xref:#lookupService__Class[lookupService(Class)]
 +
 --
 Returns a domain service implementing the requested type.
@@ -56,38 +56,38 @@ Returns a domain service implementing the requested type.
 
 == Members
 
-[#select]
-=== select
+[#select__Class_Annotation[]]
+=== select(Class, Annotation[])
 
 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
+[#select__Class]
+=== select(Class)
 
 Obtains a xref:system:generated:index/commons/collections/Can.adoc[Can] container containing any matching instances for the given required type.
 
-[#streamRegisteredBeansOfType]
-=== streamRegisteredBeansOfType
+[#streamRegisteredBeansOfType__Class]
+=== streamRegisteredBeansOfType(Class)
 
 Streams all registered bean adapters implementing the requested type.
 
-[#streamRegisteredBeans]
-=== streamRegisteredBeans
+[#streamRegisteredBeans__]
+=== streamRegisteredBeans()
 
 Returns all bean adapters that have been registered.
 
-[#lookupRegisteredBeanById]
-=== lookupRegisteredBeanById
+[#lookupRegisteredBeanById__String]
+=== lookupRegisteredBeanById(String)
 
 Returns a registered bean of given _name_ .
 
-[#lookupRegisteredBeanByIdElseFail]
-=== lookupRegisteredBeanByIdElseFail
+[#lookupRegisteredBeanByIdElseFail__String]
+=== lookupRegisteredBeanByIdElseFail(String)
 
 Returns a registered bean of given _name_ , or throws when no such bean.
 
-[#lookupService]
-=== lookupService
+[#lookupService__Class]
+=== lookupService(Class)
 
 Returns a domain service implementing the requested type.
 
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 244f9b8..0da09fb 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,97 +31,97 @@ interface RepositoryService {
 }
 ----
 
-<.> xref:#getEntityState[getEntityState]
+<.> xref:#getEntityState__Object[getEntityState(Object)]
 +
 --
 Returns the EntityState of given _object_ . Returns _EntityState#NOT_PERSISTABLE_ for _object==null_ .
 --
-<.> xref:#detachedEntity[detachedEntity]
+<.> xref:#detachedEntity__T[detachedEntity(T)]
 +
 --
 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.
 --
-<.> xref:#persist[persist]
+<.> xref:#persist__T[persist(T)]
 +
 --
 Persist the specified object (or do nothing if already persistent).
 --
-<.> xref:#persistAndFlush[persistAndFlush]
+<.> xref:#persistAndFlush__T[persistAndFlush(T)]
 +
 --
 Persist the specified object (or do nothing if already persistent) and flushes changes to the database.
 --
-<.> xref:#remove[remove]
+<.> xref:#remove__Object[remove(Object)]
 +
 --
 Deletes the domain object but only if is attached.
 --
-<.> xref:#removeAndFlush[removeAndFlush]
+<.> xref:#removeAndFlush__Object[removeAndFlush(Object)]
 +
 --
 Deletes the domain object but only if is persistent, and flushes changes to the database.
 --
-<.> xref:#removeAll[removeAll]
+<.> xref:#removeAll__Class[removeAll(Class)]
 +
 --
 Removes all instances of the domain object.
 --
-<.> xref:#allInstances[allInstances]
+<.> xref:#allInstances__Class[allInstances(Class)]
 +
 --
 As _#allInstances(Class, long, long)_ , but but returning all instances rather than just those * within the specified range..
 --
-<.> xref:#allInstances[allInstances]
+<.> xref:#allInstances__Class_long_long[allInstances(Class, long, long)]
 +
 --
 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.
 --
-<.> xref:#allMatches[allMatches]
+<.> xref:#allMatches__Class_Predicate[allMatches(Class, Predicate)]
 +
 --
 As _#allMatches(Class, Predicate, long, long)_ , but returning all instances rather than just those within the specified range.
 --
-<.> xref:#allMatches[allMatches]
+<.> xref:#allMatches__Class_Predicate_long_long[allMatches(Class, Predicate, long, long)]
 +
 --
 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.
 --
-<.> xref:#allMatches[allMatches]
+<.> xref:#allMatches__Query[allMatches(Query)]
 +
 --
 Returns all the instances that match the given xref:system:generated:index/applib/query/Query.adoc[Query] .
 --
-<.> xref:#uniqueMatch[uniqueMatch]
+<.> xref:#uniqueMatch__Class_Predicate[uniqueMatch(Class, Predicate)]
 +
 --
 Find the only instance of the specified type (including subtypes) that has the specified title.
 --
-<.> xref:#uniqueMatch[uniqueMatch]
+<.> xref:#uniqueMatch__Query[uniqueMatch(Query)]
 +
 --
 Find the only instance that matches the provided query.
 --
-<.> xref:#firstMatch[firstMatch]
+<.> xref:#firstMatch__Class_Predicate[firstMatch(Class, Predicate)]
 +
 --
 Find the only instance of the specified type (including subtypes) that has the specified title.
 --
-<.> xref:#firstMatch[firstMatch]
+<.> xref:#firstMatch__Query[firstMatch(Query)]
 +
 --
 Find the only instance that matches the provided query, if any..
 --
-<.> xref:#refresh[refresh]
+<.> xref:#refresh__T[refresh(T)]
 +
 --
 Reloads the pojo.
 --
-<.> xref:#detach[detach]
+<.> xref:#detach__T[detach(T)]
 +
 --
 Detach the entity from the current persistence session.
 --
-<.> xref:#detachedEntity[detachedEntity]
+<.> xref:#detachedEntity__Class[detachedEntity(Class)]
 +
 --
 [WARNING]
@@ -133,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.
 --
-<.> xref:#instantiate[instantiate]
+<.> xref:#instantiate__Class[instantiate(Class)]
 +
 --
 [WARNING]
@@ -143,7 +143,7 @@ Same as _org.apache.isis.applib.services.factory.FactoryService#detachedEntity(C
 if applicable use _#detachedEntity(Object)_ instead
 ====
 --
-<.> xref:#isPersistent[isPersistent]
+<.> xref:#isPersistent__Object[isPersistent(Object)]
 +
 --
 [WARNING]
@@ -155,7 +155,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).
 --
-<.> xref:#isDeleted[isDeleted]
+<.> xref:#isDeleted__Object[isDeleted(Object)]
 +
 --
 [WARNING]
@@ -170,50 +170,50 @@ Determines if the specified object has been deleted from the object store.
 
 == Members
 
-[#getEntityState]
-=== getEntityState
+[#getEntityState__Object]
+=== getEntityState(Object)
 
 Returns the EntityState of given _object_ . Returns _EntityState#NOT_PERSISTABLE_ for _object==null_ .
 
-[#detachedEntity]
-=== detachedEntity
+[#detachedEntity__T]
+=== detachedEntity(T)
 
 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__T]
+=== persist(T)
 
 Persist the specified object (or do nothing if already persistent).
 
-[#persistAndFlush]
-=== persistAndFlush
+[#persistAndFlush__T]
+=== persistAndFlush(T)
 
 Persist the specified object (or do nothing if already persistent) and flushes changes to the database.
 
-[#remove]
-=== remove
+[#remove__Object]
+=== remove(Object)
 
 Deletes the domain object but only if is attached.
 
-[#removeAndFlush]
-=== removeAndFlush
+[#removeAndFlush__Object]
+=== removeAndFlush(Object)
 
 Deletes the domain object but only if is persistent, and flushes changes to the database.
 
-[#removeAll]
-=== removeAll
+[#removeAll__Class]
+=== removeAll(Class)
 
 Removes all instances of the domain object.
 
 Intended primarily for testing purposes.
 
-[#allInstances]
-=== allInstances
+[#allInstances__Class]
+=== allInstances(Class)
 
 As _#allInstances(Class, long, long)_ , but but returning all instances rather than just those * within the specified range..
 
-[#allInstances]
-=== allInstances
+[#allInstances__Class_long_long]
+=== allInstances(Class, long, long)
 
 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.
 
@@ -221,13 +221,13 @@ If there are no instances the list will be empty. This method creates a new _Lis
 
 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
+[#allMatches__Class_Predicate]
+=== allMatches(Class, Predicate)
 
 As _#allMatches(Class, Predicate, long, long)_ , but returning all instances rather than just those within the specified range.
 
-[#allMatches]
-=== allMatches
+[#allMatches__Class_Predicate_long_long]
+=== allMatches(Class, Predicate, long, long)
 
 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.
 
@@ -235,8 +235,8 @@ If there are no instances the list will be empty. This method creates a new _Lis
 
 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
+[#allMatches__Query]
+=== allMatches(Query)
 
 Returns all the instances that match the given xref:system:generated:index/applib/query/Query.adoc[Query] .
 
@@ -244,8 +244,8 @@ If there are no instances the list will be empty. This method creates a new _Lis
 
 This method is the recommended way of querying for multiple instances.
 
-[#uniqueMatch]
-=== uniqueMatch
+[#uniqueMatch__Class_Predicate]
+=== uniqueMatch(Class, Predicate)
 
 Find the only instance of the specified type (including subtypes) that has the specified title.
 
@@ -253,8 +253,8 @@ If no instance is found then _Optional#empty()_ will be return, while if there i
 
 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
+[#uniqueMatch__Query]
+=== uniqueMatch(Query)
 
 Find the only instance that matches the provided query.
 
@@ -262,8 +262,8 @@ If no instance is found then _Optional#empty()_ will be return, while if there i
 
 This method is the recommended way of querying for (precisely) one instance. See also _#allMatches(Query)_
 
-[#firstMatch]
-=== firstMatch
+[#firstMatch__Class_Predicate]
+=== firstMatch(Class, Predicate)
 
 Find the only instance of the specified type (including subtypes) that has the specified title.
 
@@ -271,27 +271,27 @@ If no instance is found then _Optional#empty()_ will be return, while if there i
 
 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
+[#firstMatch__Query]
+=== firstMatch(Query)
 
 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
+[#refresh__T]
+=== refresh(T)
 
 Reloads the pojo.
 
-[#detach]
-=== detach
+[#detach__T]
+=== detach(T)
 
 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
+[#detachedEntity__Class]
+=== detachedEntity(Class)
 
 [WARNING]
 ====
@@ -302,8 +302,8 @@ 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.
 
-[#instantiate]
-=== instantiate
+[#instantiate__Class]
+=== instantiate(Class)
 
 [WARNING]
 ====
@@ -312,8 +312,8 @@ Same as _org.apache.isis.applib.services.factory.FactoryService#detachedEntity(C
 if applicable use _#detachedEntity(Object)_ instead
 ====
 
-[#isPersistent]
-=== isPersistent
+[#isPersistent__Object]
+=== isPersistent(Object)
 
 [WARNING]
 ====
@@ -326,8 +326,8 @@ Determines if the specified object is persistent (that it is stored permanently
 
 This method can also return `true` if the object has been _#isDeleted(Object) deleted_ from the object store.
 
-[#isDeleted]
-=== isDeleted
+[#isDeleted__Object]
+=== isDeleted(Object)
 
 [WARNING]
 ====
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 8ced138..a427005 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,12 +15,12 @@ interface Scratchpad {
 }
 ----
 
-<.> xref:#get[get]
+<.> xref:#get__Object[get(Object)]
 +
 --
 Obtain user-data, as set by a previous object being acted upon.
 --
-<.> xref:#put[put]
+<.> xref:#put__Object_Object[put(Object, Object)]
 +
 --
 Set user-data, for the use of a subsequent object being acted upon.
@@ -28,13 +28,13 @@ Set user-data, for the use of a subsequent object being acted upon.
 
 == Members
 
-[#get]
-=== get
+[#get__Object]
+=== get(Object)
 
 Obtain user-data, as set by a previous object being acted upon.
 
-[#put]
-=== put
+[#put__Object_Object]
+=== put(Object, Object)
 
 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 7e77623..e3b0f15 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
@@ -19,12 +19,12 @@ interface SudoService {
 --
 If included in the list of roles, then will disable security checks (can view and use all object members).
 --
-<.> xref:#call[call]
+<.> xref:#call__UnaryOperator_Callable[call(UnaryOperator, Callable)]
 +
 --
 Executes the supplied block, with the xref:system:generated:index/applib/services/user/UserService.adoc[UserService] returning the specified user.
 --
-<.> xref:#run[run]
+<.> xref:#run__UnaryOperator_ThrowingRunnable[run(UnaryOperator, ThrowingRunnable)]
 +
 --
 Executes the supplied block, with the xref:system:generated:index/applib/services/user/UserService.adoc[UserService] returning the specified user.
@@ -37,13 +37,13 @@ Executes the supplied block, with the xref:system:generated:index/applib/service
 
 If included in the list of roles, then will disable security checks (can view and use all object members).
 
-[#call]
-=== call
+[#call__UnaryOperator_Callable]
+=== call(UnaryOperator, Callable)
 
 Executes the supplied block, with the xref:system:generated:index/applib/services/user/UserService.adoc[UserService] returning the specified user.
 
-[#run]
-=== run
+[#run__UnaryOperator_ThrowingRunnable]
+=== run(UnaryOperator, ThrowingRunnable)
 
 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 8b1a640..7a8ca2c 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,12 +11,12 @@ interface TitleService {
 }
 ----
 
-<.> xref:#titleOf[titleOf]
+<.> xref:#titleOf__Object[titleOf(Object)]
 +
 --
 Return the title of the object, as rendered in the UI by the Isis viewers.
 --
-<.> xref:#iconNameOf[iconNameOf]
+<.> xref:#iconNameOf__Object[iconNameOf(Object)]
 +
 --
 Return the icon name of the object, as rendered in the UI by the Isis viewers.
@@ -24,13 +24,13 @@ Return the icon name of the object, as rendered in the UI by the Isis viewers.
 
 == Members
 
-[#titleOf]
-=== titleOf
+[#titleOf__Object]
+=== titleOf(Object)
 
 Return the title of the object, as rendered in the UI by the Isis viewers.
 
-[#iconNameOf]
-=== iconNameOf
+[#iconNameOf__Object]
+=== iconNameOf(Object)
 
 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/UserMemento.adoc b/antora/components/system/modules/generated/pages/index/applib/services/user/UserMemento.adoc
index c6d6d6d..e954712 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
@@ -30,32 +30,32 @@ class UserMemento {
 --
 Creates a new user with the specified name and assigned roles.
 --
-<.> xref:#system[system]
+<.> xref:#system__[system()]
 +
 --
 The framework's internal user with unrestricted privileges.
 --
-<.> xref:#ofName[ofName]
+<.> xref:#ofName__String[ofName(String)]
 +
 --
 Creates a new user with the specified name and no roles.
 --
-<.> xref:#ofNameAndRoles[ofNameAndRoles]
+<.> xref:#ofNameAndRoles__String_RoleMemento[ofNameAndRoles(String, RoleMemento)]
 +
 --
 Creates a new user with the specified name and assigned roles.
 --
-<.> xref:#ofNameAndRoleNames[ofNameAndRoleNames]
+<.> xref:#ofNameAndRoleNames__String_String[ofNameAndRoleNames(String, String)]
 +
 --
 Creates a new user with the specified name and assigned role names.
 --
-<.> xref:#ofNameAndRoleNames[ofNameAndRoleNames]
+<.> xref:#ofNameAndRoleNames__String_Stream[ofNameAndRoleNames(String, Stream)]
 +
 --
 Creates a new user with the specified name and assigned role names.
 --
-<.> xref:#isCurrentUser[isCurrentUser]
+<.> xref:#isCurrentUser__String[isCurrentUser(String)]
 +
 --
 Determine if the specified name is this user.
@@ -68,33 +68,33 @@ Determine if the specified name is this user.
 
 Creates a new user with the specified name and assigned roles.
 
-[#system]
-=== system
+[#system__]
+=== system()
 
 The framework's internal user with unrestricted privileges.
 
-[#ofName]
-=== ofName
+[#ofName__String]
+=== ofName(String)
 
 Creates a new user with the specified name and no roles.
 
-[#ofNameAndRoles]
-=== ofNameAndRoles
+[#ofNameAndRoles__String_RoleMemento]
+=== ofNameAndRoles(String, RoleMemento)
 
 Creates a new user with the specified name and assigned roles.
 
-[#ofNameAndRoleNames]
-=== ofNameAndRoleNames
+[#ofNameAndRoleNames__String_String]
+=== ofNameAndRoleNames(String, String)
 
 Creates a new user with the specified name and assigned role names.
 
-[#ofNameAndRoleNames]
-=== ofNameAndRoleNames
+[#ofNameAndRoleNames__String_Stream]
+=== ofNameAndRoleNames(String, Stream)
 
 Creates a new user with the specified name and assigned role names.
 
-[#isCurrentUser]
-=== isCurrentUser
+[#isCurrentUser__String]
+=== isCurrentUser(String)
 
 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 fdcb858..30e1514 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,27 +18,27 @@ interface UserService {
 }
 ----
 
-<.> xref:#currentUser[currentUser]
+<.> 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.
 --
-<.> xref:#getUser[getUser]
+<.> xref:#getUser__[getUser()]
 +
 --
 Gets the details about the current user.
 --
-<.> xref:#currentUserElseFail[currentUserElseFail]
+<.> xref:#currentUserElseFail__[currentUserElseFail()]
 +
 --
 Gets the details about the current user.
 --
-<.> xref:#currentUserName[currentUserName]
+<.> 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.
 --
-<.> xref:#currentUserNameElseNobody[currentUserNameElseNobody]
+<.> xref:#currentUserNameElseNobody__[currentUserNameElseNobody()]
 +
 --
 Returns either the current user's name or else _Nobody_ .
@@ -46,28 +46,28 @@ Returns either the current user's name or else _Nobody_ .
 
 == Members
 
-[#currentUser]
-=== currentUser
+[#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
+[#getUser__]
+=== getUser()
 
 Gets the details about the current user.
 
-[#currentUserElseFail]
-=== currentUserElseFail
+[#currentUserElseFail__]
+=== currentUserElseFail()
 
 Gets the details about the current user.
 
-[#currentUserName]
-=== currentUserName
+[#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
+[#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 1adde62..5323b68 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,7 +14,7 @@ interface UserProfileService {
 }
 ----
 
-<.> xref:#userProfileName[userProfileName]
+<.> xref:#userProfileName__[userProfileName()]
 +
 --
 Used as the menu name of the _org.apache.isis.applib.annotation.DomainServiceLayout.MenuBar#TERTIARY tertiary_ "Me" menu bar.
@@ -22,8 +22,8 @@ Used as the menu name of the _org.apache.isis.applib.annotation.DomainServiceLay
 
 == Members
 
-[#userProfileName]
-=== userProfileName
+[#userProfileName__]
+=== userProfileName()
 
 Used as the menu name of the _org.apache.isis.applib.annotation.DomainServiceLayout.MenuBar#TERTIARY tertiary_ "Me" menu bar.
 
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 e1e8c23..4164a9f 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
@@ -16,17 +16,17 @@ interface EmailNotificationService {
 }
 ----
 
-<.> xref:#send[send]
+<.> xref:#send__EmailRegistrationEvent[send(EmailRegistrationEvent)]
 +
 --
 Sends an email to verify an email address as part of the initial user registration
 --
-<.> xref:#send[send]
+<.> xref:#send__PasswordResetEvent[send(PasswordResetEvent)]
 +
 --
 Sends an email to reset a password for an already-registered user
 --
-<.> xref:#isConfigured[isConfigured]
+<.> xref:#isConfigured__[isConfigured()]
 +
 --
 Whether this service has been configured and thus available for use.
@@ -34,18 +34,18 @@ Whether this service has been configured and thus available for use.
 
 == Members
 
-[#send]
-=== send
+[#send__EmailRegistrationEvent]
+=== send(EmailRegistrationEvent)
 
 Sends an email to verify an email address as part of the initial user registration
 
-[#send]
-=== send
+[#send__PasswordResetEvent]
+=== send(PasswordResetEvent)
 
 Sends an email to reset a password for an already-registered user
 
-[#isConfigured]
-=== isConfigured
+[#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/wrapper/WrapperFactory.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/WrapperFactory.adoc
index 0e986f0..7046738 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,57 +40,57 @@ interface WrapperFactory {
 }
 ----
 
-<.> xref:#wrap[wrap]
+<.> xref:#wrap__T_SyncControl[wrap(T, SyncControl)]
 +
 --
 Provides the "wrapper" of a domain object against which to invoke the action.
 --
-<.> xref:#wrap[wrap]
+<.> xref:#wrap__T[wrap(T)]
 +
 --
 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.
 --
-<.> xref:#wrapMixin[wrapMixin]
+<.> xref:#wrapMixin__Class_Object_SyncControl[wrapMixin(Class, Object, SyncControl)]
 +
 --
 Provides the wrapper for a _FactoryService#mixin(Class, Object) mixin_ , against which to invoke the action.
 --
-<.> xref:#wrapMixin[wrapMixin]
+<.> xref:#wrapMixin__Class_Object[wrapMixin(Class, Object)]
 +
 --
 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.
 --
-<.> xref:#unwrap[unwrap]
+<.> xref:#unwrap__T[unwrap(T)]
 +
 --
 Obtains the underlying domain object, if wrapped.
 --
-<.> xref:#isWrapper[isWrapper]
+<.> xref:#isWrapper__T[isWrapper(T)]
 +
 --
 Whether the supplied object is a wrapper around a domain object.
 --
-<.> xref:#asyncWrap[asyncWrap]
+<.> xref:#asyncWrap__T_AsyncControl[asyncWrap(T, AsyncControl)]
 +
 --
 Returns a proxy object for the provided _domainObject_ , through which can execute the action asynchronously.
 --
-<.> xref:#asyncWrapMixin[asyncWrapMixin]
+<.> xref:#asyncWrapMixin__Class_Object_AsyncControl[asyncWrapMixin(Class, Object, AsyncControl)]
 +
 --
 Returns a proxy object for the provided _mixinClass_ , through which can execute the action asynchronously.
 --
-<.> xref:#getListeners[getListeners]
+<.> xref:#getListeners__[getListeners()]
 +
 --
 All xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] s that have been registered using _#addInteractionListener(InteractionListener)_ .
 --
-<.> xref:#addInteractionListener[addInteractionListener]
+<.> xref:#addInteractionListener__InteractionListener[addInteractionListener(InteractionListener)]
 +
 --
 Registers an xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] , to be notified of interactions on all wrappers.
 --
-<.> xref:#removeInteractionListener[removeInteractionListener]
+<.> xref:#removeInteractionListener__InteractionListener[removeInteractionListener(InteractionListener)]
 +
 --
 Remove an xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] , to no longer be notified of interactions on wrappers.
@@ -98,8 +98,8 @@ Remove an xref:system:generated:index/applib/services/wrapper/listeners/Interact
 
 == Members
 
-[#wrap]
-=== wrap
+[#wrap__T_SyncControl]
+=== wrap(T, SyncControl)
 
 Provides the "wrapper" of a domain object against which to invoke the action.
 
@@ -113,59 +113,59 @@ The last logical option (skip rules, skip action) is valid but doesn't make sens
 
 Otherwise, will do all the validations (raise exceptions as required etc.), but doesn't modify the model.
 
-[#wrap]
-=== wrap
+[#wrap__T]
+=== wrap(T)
 
 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
+[#wrapMixin__Class_Object_SyncControl]
+=== wrapMixin(Class, Object, SyncControl)
 
 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
+[#wrapMixin__Class_Object]
+=== wrapMixin(Class, Object)
 
 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
+[#unwrap__T]
+=== unwrap(T)
 
 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
+[#isWrapper__T]
+=== isWrapper(T)
 
 Whether the supplied object is a wrapper around a domain object.
 
-[#asyncWrap]
-=== asyncWrap
+[#asyncWrap__T_AsyncControl]
+=== asyncWrap(T, AsyncControl)
 
 Returns a proxy object for the provided _domainObject_ , through which can execute the action asynchronously.
 
-[#asyncWrapMixin]
-=== asyncWrapMixin
+[#asyncWrapMixin__Class_Object_AsyncControl]
+=== asyncWrapMixin(Class, Object, AsyncControl)
 
 Returns a proxy object for the provided _mixinClass_ , through which can execute the action asynchronously.
 
-[#getListeners]
-=== getListeners
+[#getListeners__]
+=== getListeners()
 
 All xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] s that have been registered using _#addInteractionListener(InteractionListener)_ .
 
-[#addInteractionListener]
-=== addInteractionListener
+[#addInteractionListener__InteractionListener]
+=== addInteractionListener(InteractionListener)
 
 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
+[#removeInteractionListener__InteractionListener]
+=== removeInteractionListener(InteractionListener)
 
 Remove an xref:system:generated:index/applib/services/wrapper/listeners/InteractionListener.adoc[InteractionListener] , to no longer be notified of interactions on wrappers.
 
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 8b0e645..d8c2e1f 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,17 +14,17 @@ interface WrappingObject {
 }
 ----
 
-<.> xref:#__isis_save[__isis_save]
+<.> xref:#__isis_save__[__isis_save()]
 +
 --
 Programmatic equivalent of invoking save for a transient object .
 --
-<.> xref:#__isis_wrapped[__isis_wrapped]
+<.> xref:#__isis_wrapped__[__isis_wrapped()]
 +
 --
 Provide access to the underlying, wrapped object.
 --
-<.> xref:#__isis_executionModes[__isis_executionModes]
+<.> 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_ .
@@ -32,15 +32,15 @@ The _EnumSetexecution modes_ inferred from the xref:system:generated:index/appli
 
 == Members
 
-[#__isis_save]
-=== __isis_save
+[#__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
+[#__isis_wrapped__]
+=== __isis_wrapped()
 
 Provide access to the underlying, wrapped object.
 
@@ -50,8 +50,8 @@ NOTE: domain classes may not have a method with this name. The `__isis_` prefix
 
  *NOTE: there is a string-literal reference to this name `DomainObjectInvocationHandler` , so it should not be changed.* .
 
-[#__isis_executionModes]
-=== __isis_executionModes
+[#__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 c57a702..a601277 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,7 +14,7 @@ class ControlAbstract<T> {
 }
 ----
 
-<.> xref:#getExecutionModes[getExecutionModes]
+<.> xref:#getExecutionModes__[getExecutionModes()]
 +
 --
 Not API.
@@ -22,8 +22,8 @@ Not API.
 
 == Members
 
-[#getExecutionModes]
-=== getExecutionModes
+[#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 b9cff53..7cc877d 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,7 +10,7 @@ interface ExceptionHandler {
 }
 ----
 
-<.> xref:#handle[handle]
+<.> xref:#handle__Exception[handle(Exception)]
 +
 --
 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).
@@ -18,8 +18,8 @@ Handle the exception in some way. Typically this will log and rethrow the except
 
 == Members
 
-[#handle]
-=== handle
+[#handle__Exception]
+=== handle(Exception)
 
 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/SyncControl.adoc b/antora/components/system/modules/generated/pages/index/applib/services/wrapper/control/SyncControl.adoc
index 23b4add..38b3523 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,7 +13,7 @@ class SyncControl {
 }
 ----
 
-<.> xref:#getExecutionModes[getExecutionModes]
+<.> xref:#getExecutionModes__[getExecutionModes()]
 +
 --
 Not API.
@@ -21,8 +21,8 @@ Not API.
 
 == Members
 
-[#getExecutionModes]
-=== getExecutionModes
+[#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 0197b95..b542f7e 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,7 +20,7 @@ class ActionArgumentEvent {
 }
 ----
 
-<.> xref:#getPosition[getPosition]
+<.> xref:#getPosition__[getPosition()]
 +
 --
 The position (0-based) of the invalid argument.
@@ -28,8 +28,8 @@ The position (0-based) of the invalid argument.
 
 == Members
 
-[#getPosition]
-=== getPosition
+[#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 2caf043..6fef969 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,7 +19,7 @@ class ActionInvocationEvent {
 }
 ----
 
-<.> xref:#getProposed[getProposed]
+<.> xref:#getProposed__[getProposed()]
 +
 --
 Does not apply
@@ -27,8 +27,8 @@ Does not apply
 
 == Members
 
-[#getProposed]
-=== getProposed
+[#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 ea1b32a..122973a 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,7 +15,7 @@ class CollectionAddToEvent {
 }
 ----
 
-<.> xref:#getProposed[getProposed]
+<.> xref:#getProposed__[getProposed()]
 +
 --
 The object that is being added.
@@ -23,8 +23,8 @@ The object that is being added.
 
 == Members
 
-[#getProposed]
-=== getProposed
+[#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 2944a22..578ee76 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,27 +17,27 @@ class CollectionMethodEvent {
 }
 ----
 
-<.> xref:#getSource[getSource]
+<.> xref:#getSource__[getSource()]
 +
 --
 The collection object (an instance of a `List` or a `Set` etc) that is the originator of this event.
 --
-<.> xref:#getDomainObject[getDomainObject]
+<.> xref:#getDomainObject__[getDomainObject()]
 +
 --
 The owner of the collection (an instance of `Customer/tt> or `Order` , say).` 
 --
-<.> xref:#getMethodName[getMethodName]
+<.> xref:#getMethodName__[getMethodName()]
 +
 --
 The name of the method invoked on this collection, for example `isEmpty` .
 --
-<.> xref:#getArgs[getArgs]
+<.> xref:#getArgs__[getArgs()]
 +
 --
 The arguments with which the collection's _#getMethodName() method_ was invoked.
 --
-<.> xref:#getReturnValue[getReturnValue]
+<.> xref:#getReturnValue__[getReturnValue()]
 +
 --
 The return value from the _#getMethodName() method_ invocation.
@@ -45,30 +45,30 @@ The return value from the _#getMethodName() method_ invocation.
 
 == Members
 
-[#getSource]
-=== getSource
+[#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
+[#getDomainObject__]
+=== getDomainObject()
 
 The owner of the collection (an instance of `Customer/tt> or `Order` , say).` 
 
-[#getMethodName]
-=== getMethodName
+[#getMethodName__]
+=== getMethodName()
 
 The name of the method invoked on this collection, for example `isEmpty` .
 
-[#getArgs]
-=== getArgs
+[#getArgs__]
+=== getArgs()
 
 The arguments with which the collection's _#getMethodName() method_ was invoked.
 
-[#getReturnValue]
-=== getReturnValue
+[#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 3f0248e..dd87cdc 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,67 +27,67 @@ class InteractionEvent {
 }
 ----
 
-<.> xref:#getSource[getSource]
+<.> xref:#getSource__[getSource()]
 +
 --
 The domain object (pojo) against which the interaction occurred.
 --
-<.> xref:#getIdentifier[getIdentifier]
+<.> xref:#getIdentifier__[getIdentifier()]
 +
 --
 The xref:system:generated:index/applib/Identifier.adoc[Identifier] of the feature of the object being interacted with.
 --
-<.> xref:#getClassName[getClassName]
+<.> xref:#getClassName__[getClassName()]
 +
 --
 As per _#getClassName()_ , but naturalized.
 --
-<.> xref:#getClassNaturalName[getClassNaturalName]
+<.> xref:#getClassNaturalName__[getClassNaturalName()]
 +
 --
 Convenience method that returns the _Identifier#getClassNaturalName() natural class name_ of the _#getIdentifier() identifier_ .
 --
-<.> xref:#getMemberName[getMemberName]
+<.> xref:#getMemberName__[getMemberName()]
 +
 --
 Convenience method that returns the _Identifier#getMemberName() member name_ of the _#getIdentifier() identifier_ .
 --
-<.> xref:#getMemberNaturalName[getMemberNaturalName]
+<.> xref:#getMemberNaturalName__[getMemberNaturalName()]
 +
 --
 As per _#getMemberName()_ , but naturalized.
 --
-<.> xref:#getMemberParameterNames[getMemberParameterNames]
+<.> xref:#getMemberParameterNames__[getMemberParameterNames()]
 +
 --
 Convenience method that returns the _Identifier#getClassName() class name_ of the _#getIdentifier() identifier_ .
 --
-<.> xref:#getMemberParameterNaturalNames[getMemberParameterNaturalNames]
+<.> xref:#getMemberParameterNaturalNames__[getMemberParameterNaturalNames()]
 +
 --
 As per _#getMemberParameterNames()_ , but naturalized.
 --
-<.> xref:#getReason[getReason]
+<.> xref:#getReason__[getReason()]
 +
 --
 The reason, if any, that this interaction may have been vetoed or otherwise disallowed.
 --
-<.> xref:#getReasonMessage[getReasonMessage]
+<.> xref:#getReasonMessage__[getReasonMessage()]
 +
 --
 The reason message, if any, that this interaction may have been vetoed or otherwise disallowed.
 --
-<.> xref:#getAdvisorClass[getAdvisorClass]
+<.> xref:#getAdvisorClass__[getAdvisorClass()]
 +
 --
 The class of the (first) advisor, if any, that provided the _#getReason() reason_ that this interaction is _#isVeto() vetoed_ .
 --
-<.> xref:#advised[advised]
+<.> xref:#advised__String_Class[advised(String, Class)]
 +
 --
 Specify the _#getReason() reason_ that this interaction has been vetoed and the _#getAdvisorClass() class of the advisor_ that did the veto.
 --
-<.> xref:#isVeto[isVeto]
+<.> 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.)
@@ -95,74 +95,74 @@ Whether this interaction has been vetoed (meaning that _#getReason()_ and _#getA
 
 == Members
 
-[#getSource]
-=== getSource
+[#getSource__]
+=== getSource()
 
 The domain object (pojo) against which the interaction occurred.
 
-[#getIdentifier]
-=== getIdentifier
+[#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
+[#getClassName__]
+=== getClassName()
 
 As per _#getClassName()_ , but naturalized.
 
-[#getClassNaturalName]
-=== getClassNaturalName
+[#getClassNaturalName__]
+=== getClassNaturalName()
 
 Convenience method that returns the _Identifier#getClassNaturalName() natural class name_ of the _#getIdentifier() identifier_ .
 
-[#getMemberName]
-=== getMemberName
+[#getMemberName__]
+=== getMemberName()
 
 Convenience method that returns the _Identifier#getMemberName() member name_ of the _#getIdentifier() identifier_ .
 
-[#getMemberNaturalName]
-=== getMemberNaturalName
+[#getMemberNaturalName__]
+=== getMemberNaturalName()
 
 As per _#getMemberName()_ , but naturalized.
 
-[#getMemberParameterNames]
-=== getMemberParameterNames
+[#getMemberParameterNames__]
+=== getMemberParameterNames()
 
 Convenience method that returns the _Identifier#getClassName() class name_ of the _#getIdentifier() identifier_ .
 
-[#getMemberParameterNaturalNames]
-=== getMemberParameterNaturalNames
+[#getMemberParameterNaturalNames__]
+=== getMemberParameterNaturalNames()
 
 As per _#getMemberParameterNames()_ , but naturalized.
 
-[#getReason]
-=== getReason
+[#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
+[#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
+[#getAdvisorClass__]
+=== getAdvisorClass()
 
 The class of the (first) advisor, if any, that provided the _#getReason() reason_ that this interaction is _#isVeto() vetoed_ .
 
-[#advised]
-=== advised
+[#advised__String_Class]
+=== advised(String, Class)
 
 Specify the _#getReason() reason_ that this interaction has been vetoed and the _#getAdvisorClass() class of the advisor_ that did the veto.
 
-[#isVeto]
-=== isVeto
+[#isVeto__]
+=== isVeto()
 
 Whether this interaction has been vetoed (meaning that _#getReason()_ and _#getAdvisorClass()_ will both be non- `null` and the _#getReason() reason_ non-empty.)
 
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 463813e..e0f2281 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,7 +16,7 @@ class ParseValueEvent {
 }
 ----
 
-<.> xref:#getSource[getSource]
+<.> 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.
@@ -24,8 +24,8 @@ Will be the source provided in the _#ParseValueEvent(Object, Identifier, String)
 
 == Members
 
-[#getSource]
-=== getSource
+[#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 6f7d001..16f0b0b 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,7 +15,7 @@ class PropertyModifyEvent {
 }
 ----
 
-<.> xref:#getProposed[getProposed]
+<.> xref:#getProposed__[getProposed()]
 +
 --
 If `null` , then the property was cleared.
@@ -23,8 +23,8 @@ If `null` , then the property was cleared.
 
 == Members
 
-[#getProposed]
-=== getProposed
+[#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 aeb8638..7fe351e 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,82 +25,82 @@ interface InteractionListener {
 }
 ----
 
-<.> xref:#objectTitleRead[objectTitleRead]
+<.> xref:#objectTitleRead__ObjectTitleEvent[objectTitleRead(ObjectTitleEvent)]
 +
 --
 The title was read.
 --
-<.> xref:#objectPersisted[objectPersisted]
+<.> xref:#objectPersisted__ObjectValidityEvent[objectPersisted(ObjectValidityEvent)]
 +
 --
 The object was persisted (or an attempt to persist it was made).
 --
-<.> xref:#propertyVisible[propertyVisible]
+<.> xref:#propertyVisible__PropertyVisibilityEvent[propertyVisible(PropertyVisibilityEvent)]
 +
 --
 A check was made to determine if a property was visible.
 --
-<.> xref:#propertyUsable[propertyUsable]
+<.> xref:#propertyUsable__PropertyUsabilityEvent[propertyUsable(PropertyUsabilityEvent)]
 +
 --
 A check was made to determine if a property was usable.
 --
-<.> xref:#propertyAccessed[propertyAccessed]
+<.> xref:#propertyAccessed__PropertyAccessEvent[propertyAccessed(PropertyAccessEvent)]
 +
 --
 A property was read.
 --
-<.> xref:#propertyModified[propertyModified]
+<.> xref:#propertyModified__PropertyModifyEvent[propertyModified(PropertyModifyEvent)]
 +
 --
 A property was modified (or an attempt to modify it was made)
 --
-<.> xref:#collectionVisible[collectionVisible]
+<.> xref:#collectionVisible__CollectionVisibilityEvent[collectionVisible(CollectionVisibilityEvent)]
 +
 --
 A check was made to determine if a collection was visible.
 --
-<.> xref:#collectionUsable[collectionUsable]
+<.> xref:#collectionUsable__CollectionUsabilityEvent[collectionUsable(CollectionUsabilityEvent)]
 +
 --
 A check was made to determine if a collection was usable.
 --
-<.> xref:#collectionAccessed[collectionAccessed]
+<.> xref:#collectionAccessed__CollectionAccessEvent[collectionAccessed(CollectionAccessEvent)]
 +
 --
 A collection was read.
 --
-<.> xref:#collectionAddedTo[collectionAddedTo]
+<.> xref:#collectionAddedTo__CollectionAddToEvent[collectionAddedTo(CollectionAddToEvent)]
 +
 --
 An object was added to the collection (or an attempt to add it was made).
 --
-<.> xref:#collectionRemovedFrom[collectionRemovedFrom]
+<.> xref:#collectionRemovedFrom__CollectionRemoveFromEvent[collectionRemovedFrom(CollectionRemoveFromEvent)]
 +
 --
 An object was removed from the collection (or an attempt to remove it was made).
 --
-<.> xref:#collectionMethodInvoked[collectionMethodInvoked]
+<.> xref:#collectionMethodInvoked__CollectionMethodEvent[collectionMethodInvoked(CollectionMethodEvent)]
 +
 --
 A method of a collection (such as `isEmpty()` or `size()` ) has been invoked.
 --
-<.> xref:#actionVisible[actionVisible]
+<.> xref:#actionVisible__ActionVisibilityEvent[actionVisible(ActionVisibilityEvent)]
 +
 --
 A check was made to determine if an action was visible.
 --
-<.> xref:#actionUsable[actionUsable]
+<.> xref:#actionUsable__ActionUsabilityEvent[actionUsable(ActionUsabilityEvent)]
 +
 --
 A check was made to determine if an action was usable.
 --
-<.> xref:#actionArgument[actionArgument]
+<.> xref:#actionArgument__ActionArgumentEvent[actionArgument(ActionArgumentEvent)]
 +
 --
 A check was made as to whether an argument proposed for an action was valid.
 --
-<.> xref:#actionInvoked[actionInvoked]
+<.> xref:#actionInvoked__ActionInvocationEvent[actionInvoked(ActionInvocationEvent)]
 +
 --
 An action was invoked (or an attempt to invoke it was made).
@@ -108,101 +108,101 @@ An action was invoked (or an attempt to invoke it was made).
 
 == Members
 
-[#objectTitleRead]
-=== objectTitleRead
+[#objectTitleRead__ObjectTitleEvent]
+=== objectTitleRead(ObjectTitleEvent)
 
 The title was read.
 
-[#objectPersisted]
-=== objectPersisted
+[#objectPersisted__ObjectValidityEvent]
+=== objectPersisted(ObjectValidityEvent)
 
 The object was persisted (or an attempt to persist it was made).
 
-[#propertyVisible]
-=== propertyVisible
+[#propertyVisible__PropertyVisibilityEvent]
+=== propertyVisible(PropertyVisibilityEvent)
 
 A check was made to determine if a property was visible.
 
-[#propertyUsable]
-=== propertyUsable
+[#propertyUsable__PropertyUsabilityEvent]
+=== propertyUsable(PropertyUsabilityEvent)
 
 A check was made to determine if a property was usable.
 
-[#propertyAccessed]
-=== propertyAccessed
+[#propertyAccessed__PropertyAccessEvent]
+=== propertyAccessed(PropertyAccessEvent)
 
 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
+[#propertyModified__PropertyModifyEvent]
+=== propertyModified(PropertyModifyEvent)
 
 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
+[#collectionVisible__CollectionVisibilityEvent]
+=== collectionVisible(CollectionVisibilityEvent)
 
 A check was made to determine if a collection was visible.
 
 Will be fired prior to _#collectionUsable(CollectionUsabilityEvent)_ .
 
-[#collectionUsable]
-=== collectionUsable
+[#collectionUsable__CollectionUsabilityEvent]
+=== collectionUsable(CollectionUsabilityEvent)
 
 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
+[#collectionAccessed__CollectionAccessEvent]
+=== collectionAccessed(CollectionAccessEvent)
 
 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
+[#collectionAddedTo__CollectionAddToEvent]
+=== collectionAddedTo(CollectionAddToEvent)
 
 An object was added to the collection (or an attempt to add it was made).
 
-[#collectionRemovedFrom]
-=== collectionRemovedFrom
+[#collectionRemovedFrom__CollectionRemoveFromEvent]
+=== collectionRemovedFrom(CollectionRemoveFromEvent)
 
 An object was removed from the collection (or an attempt to remove it was made).
 
-[#collectionMethodInvoked]
-=== collectionMethodInvoked
+[#collectionMethodInvoked__CollectionMethodEvent]
+=== collectionMethodInvoked(CollectionMethodEvent)
 
 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
+[#actionVisible__ActionVisibilityEvent]
+=== actionVisible(ActionVisibilityEvent)
 
 A check was made to determine if an action was visible.
 
 Will be fired prior to _#actionUsable(ActionUsabilityEvent)_ .
 
-[#actionUsable]
-=== actionUsable
+[#actionUsable__ActionUsabilityEvent]
+=== actionUsable(ActionUsabilityEvent)
 
 A check was made to determine if an action was usable.
 
 Will be fired prior to _#actionArgument(ActionArgumentEvent)_ .
 
-[#actionArgument]
-=== actionArgument
+[#actionArgument__ActionArgumentEvent]
+=== actionArgument(ActionArgumentEvent)
 
 A check was made as to whether an argument proposed for an action was valid.
 
 Will be fired prior to _#actionInvoked(ActionInvocationEvent)_ .
 
-[#actionInvoked]
-=== actionInvoked
+[#actionInvoked__ActionInvocationEvent]
+=== actionInvoked(ActionInvocationEvent)
 
 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 b9f5381..8af9fde 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,22 +15,22 @@ interface TransactionService {
 }
 ----
 
-<.> xref:#currentTransactionId[currentTransactionId]
+<.> 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.
 --
-<.> xref:#currentTransactionState[currentTransactionState]
+<.> 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.
 --
-<.> xref:#flushTransaction[flushTransaction]
+<.> xref:#flushTransaction__[flushTransaction()]
 +
 --
 Flushes all changes to the object store.
 --
-<.> xref:#nextTransaction[nextTransaction]
+<.> xref:#nextTransaction__[nextTransaction()]
 +
 --
 Commits the current thread's transaction (if there is one), and in any case begins a new one.
@@ -38,18 +38,18 @@ Commits the current thread's transaction (if there is one), and in any case begi
 
 == Members
 
-[#currentTransactionId]
-=== currentTransactionId
+[#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
+[#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
+[#flushTransaction__]
+=== flushTransaction()
 
 Flushes all changes to the object store.
 
@@ -57,8 +57,8 @@ Occasionally useful to ensure that newly persisted domain objects are flushed to
 
 If there is no active transaction associated with the current thread, then does nothing.
 
-[#nextTransaction]
-=== nextTransaction
+[#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 3c2daed..2d88294 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
@@ -45,22 +45,22 @@ Completed, having successfully committed.May not flush or abort or commit (will
 --
 Completed, having aborted.May not flush, commit or abort (will throw _IllegalStateException_ ).
 --
-<.> xref:#canFlush[canFlush]
+<.> xref:#canFlush__[canFlush()]
 +
 --
 Whether it is valid to flush the transaction.
 --
-<.> xref:#canCommit[canCommit]
+<.> xref:#canCommit__[canCommit()]
 +
 --
 Whether it is valid to commit the transaction.
 --
-<.> xref:#canAbort[canAbort]
+<.> xref:#canAbort__[canAbort()]
 +
 --
 Whether it is valid to mark as aborted this transaction}.
 --
-<.> xref:#isComplete[isComplete]
+<.> xref:#isComplete__[isComplete()]
 +
 --
 Whether the transaction is complete (and so a new one can be started).
@@ -93,23 +93,23 @@ Completed, having successfully committed.May not flush or abort or commit (will
 
 Completed, having aborted.May not flush, commit or abort (will throw _IllegalStateException_ ).
 
-[#canFlush]
-=== canFlush
+[#canFlush__]
+=== canFlush()
 
 Whether it is valid to flush the transaction.
 
-[#canCommit]
-=== canCommit
+[#canCommit__]
+=== canCommit()
 
 Whether it is valid to commit the transaction.
 
-[#canAbort]
-=== canAbort
+[#canAbort__]
+=== canAbort()
 
 Whether it is valid to mark as aborted this transaction}.
 
-[#isComplete]
-=== isComplete
+[#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 35ce8bd..2326c77 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,32 +15,32 @@ interface TransactionalProcessor {
 }
 ----
 
-<.> xref:#callTransactional[callTransactional]
+<.> xref:#callTransactional__TransactionDefinition_Callable[callTransactional(TransactionDefinition, Callable)]
 +
 --
 Runs given _callable_ with a transactional boundary, where the detailed transactional behavior is governed by given _TransactionDefinition_ _def_ .
 --
-<.> xref:#runTransactional[runTransactional]
+<.> xref:#runTransactional__TransactionDefinition_ThrowingRunnable[runTransactional(TransactionDefinition, ThrowingRunnable)]
 +
 --
 Runs given _runnable_ with a transactional boundary, where the detailed transactional behavior is governed by given _TransactionDefinition_ _def_ .
 --
-<.> xref:#callTransactional[callTransactional]
+<.> xref:#callTransactional__Propagation_Callable[callTransactional(Propagation, Callable)]
 +
 --
 Runs given _callable_ with a transactional boundary, where the detailed transactional behavior is governed by given _Propagation_ _propagation_ .
 --
-<.> xref:#runTransactional[runTransactional]
+<.> xref:#runTransactional__Propagation_ThrowingRunnable[runTransactional(Propagation, ThrowingRunnable)]
 +
 --
 Runs given _runnable_ with a transactional boundary, where the detailed transactional behavior is governed by given _Propagation_ _propagation_ .
 --
-<.> xref:#callWithinCurrentTransactionElseCreateNew[callWithinCurrentTransactionElseCreateNew]
+<.> xref:#callWithinCurrentTransactionElseCreateNew__Callable[callWithinCurrentTransactionElseCreateNew(Callable)]
 +
 --
 Runs given _callable_ within an existing transactional boundary, or in the absence of such a boundary, creates a new one.
 --
-<.> xref:#runWithinCurrentTransactionElseCreateNew[runWithinCurrentTransactionElseCreateNew]
+<.> xref:#runWithinCurrentTransactionElseCreateNew__ThrowingRunnable[runWithinCurrentTransactionElseCreateNew(ThrowingRunnable)]
 +
 --
 Runs given _runnable_ within an existing transactional boundary, or in the absence of such a boundary creates a new one.
@@ -48,39 +48,39 @@ Runs given _runnable_ within an existing transactional boundary, or in the absen
 
 == Members
 
-[#callTransactional]
-=== callTransactional
+[#callTransactional__TransactionDefinition_Callable]
+=== callTransactional(TransactionDefinition, Callable)
 
 Runs given _callable_ with a transactional boundary, where the detailed transactional behavior is governed by given _TransactionDefinition_ _def_ .
 
-[#runTransactional]
-=== runTransactional
+[#runTransactional__TransactionDefinition_ThrowingRunnable]
+=== runTransactional(TransactionDefinition, ThrowingRunnable)
 
 Runs given _runnable_ with a transactional boundary, where the detailed transactional behavior is governed by given _TransactionDefinition_ _def_ .
 
-[#callTransactional]
-=== callTransactional
+[#callTransactional__Propagation_Callable]
+=== callTransactional(Propagation, Callable)
 
 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
+[#runTransactional__Propagation_ThrowingRunnable]
+=== runTransactional(Propagation, ThrowingRunnable)
 
 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
+[#callWithinCurrentTransactionElseCreateNew__Callable]
+=== callWithinCurrentTransactionElseCreateNew(Callable)
 
 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
+[#runWithinCurrentTransactionElseCreateNew__ThrowingRunnable]
+=== runWithinCurrentTransactionElseCreateNew(ThrowingRunnable)
 
 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 8f6aac3..f18460b 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,22 +15,22 @@ interface XmlService {
 }
 ----
 
-<.> xref:#asDocument[asDocument]
+<.> xref:#asDocument__String[asDocument(String)]
 +
 --
 Converts xml string into an _Document W3C Document_ .
 --
-<.> xref:#asString[asString]
+<.> xref:#asString__Document[asString(Document)]
 +
 --
 Serializes a _Document W3C Document_ back into a string.
 --
-<.> xref:#getChildElement[getChildElement]
+<.> xref:#getChildElement__Element_String[getChildElement(Element, String)]
 +
 --
 Convenience method to walk XML document.
 --
-<.> xref:#getChildTextValue[getChildTextValue]
+<.> xref:#getChildTextValue__Element[getChildTextValue(Element)]
 +
 --
 Convenience method to obtain value of child text node.
@@ -38,23 +38,23 @@ Convenience method to obtain value of child text node.
 
 == Members
 
-[#asDocument]
-=== asDocument
+[#asDocument__String]
+=== asDocument(String)
 
 Converts xml string into an _Document W3C Document_ .
 
-[#asString]
-=== asString
+[#asString__Document]
+=== asString(Document)
 
 Serializes a _Document W3C Document_ back into a string.
 
-[#getChildElement]
-=== getChildElement
+[#getChildElement__Element_String]
+=== getChildElement(Element, String)
 
 Convenience method to walk XML document.
 
-[#getChildTextValue]
-=== getChildTextValue
+[#getChildTextValue__Element]
+=== getChildTextValue(Element)
 
 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 9d7834c..a51ffd6 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,17 +16,17 @@ interface XmlSnapshotService {
 }
 ----
 
-<.> xref:#snapshotFor[snapshotFor]
+<.> xref:#snapshotFor__Object[snapshotFor(Object)]
 +
 --
 Exports the state of a domain object into a Snapshot (which can then be converted into XML, for example).
 --
-<.> xref:#builderFor[builderFor]
+<.> xref:#builderFor__Object[builderFor(Object)]
 +
 --
 Creates a Snapshot.Builder that allows the contents of the snapshot to include other related state.
 --
-<.> xref:#getChildElementValue[getChildElementValue]
+<.> xref:#getChildElementValue__Element_String_Class[getChildElementValue(Element, String, Class)]
 +
 --
 Convenience method to extract value of an XML element, based on its type.
@@ -34,18 +34,18 @@ Convenience method to extract value of an XML element, based on its type.
 
 == Members
 
-[#snapshotFor]
-=== snapshotFor
+[#snapshotFor__Object]
+=== snapshotFor(Object)
 
 Exports the state of a domain object into a Snapshot (which can then be converted into XML, for example).
 
-[#builderFor]
-=== builderFor
+[#builderFor__Object]
+=== builderFor(Object)
 
 Creates a Snapshot.Builder that allows the contents of the snapshot to include other related state.
 
-[#getChildElementValue]
-=== getChildElementValue
+[#getChildElementValue__Element_String_Class]
+=== getChildElementValue(Element, String, Class)
 
 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 ac51dda..eca7b76 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,12 +11,12 @@ interface Snapshot {
 }
 ----
 
-<.> xref:#getXmlDocument[getXmlDocument]
+<.> xref:#getXmlDocument__[getXmlDocument()]
 +
 --
 Converts the snapshotted state into an XML document.
 --
-<.> xref:#getXsdDocument[getXsdDocument]
+<.> xref:#getXsdDocument__[getXsdDocument()]
 +
 --
 Creates a corresponding XSD that describes the structure of the exported XML.
@@ -24,13 +24,13 @@ Creates a corresponding XSD that describes the structure of the exported XML.
 
 == Members
 
-[#getXmlDocument]
-=== getXmlDocument
+[#getXmlDocument__]
+=== getXmlDocument()
 
 Converts the snapshotted state into an XML document.
 
-[#getXsdDocument]
-=== getXsdDocument
+[#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 1bdae30..1d58022 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,17 +12,17 @@ interface Builder {
 }
 ----
 
-<.> xref:#includePath[includePath]
+<.> xref:#includePath__String[includePath(String)]
 +
 --
 Enrich the snapshot to include the state of these referenced objects
 --
-<.> xref:#includePathAndAnnotation[includePathAndAnnotation]
+<.> xref:#includePathAndAnnotation__String_String[includePathAndAnnotation(String, String)]
 +
 --
 Ditto, but add an XML annotation attribute to the included element(s).
 --
-<.> xref:#build[build]
+<.> xref:#build__[build()]
 +
 --
 Builds the Snapshot.
@@ -30,18 +30,18 @@ Builds the Snapshot.
 
 == Members
 
-[#includePath]
-=== includePath
+[#includePath__String]
+=== includePath(String)
 
 Enrich the snapshot to include the state of these referenced objects
 
-[#includePathAndAnnotation]
-=== includePathAndAnnotation
+[#includePathAndAnnotation__String_String]
+=== includePathAndAnnotation(String, String)
 
 Ditto, but add an XML annotation attribute to the included element(s).
 
-[#build]
-=== build
+[#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 fe819aa..5eb1b9a 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,7 +12,7 @@ interface SnapshottableWithInclusions {
 }
 ----
 
-<.> xref:#snapshotInclusions[snapshotInclusions]
+<.> xref:#snapshotInclusions__[snapshotInclusions()]
 +
 --
 Paths to include in the snapshot.
@@ -20,8 +20,8 @@ Paths to include in the snapshot.
 
 == Members
 
-[#snapshotInclusions]
-=== snapshotInclusions
+[#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 efa9cb0..cc3d2d1 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,7 +19,7 @@ class AbstractSpecification<T> {
 }
 ----
 
-<.> xref:#satisfies[satisfies]
+<.> xref:#satisfies__Object[satisfies(Object)]
 +
 --
 Checks not null and is correct type, and delegates to _#satisfiesSafely(Object)_ .
@@ -27,8 +27,8 @@ Checks not null and is correct type, and delegates to _#satisfiesSafely(Object)_
 
 == Members
 
-[#satisfies]
-=== satisfies
+[#satisfies__Object]
+=== satisfies(Object)
 
 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 dcc3ffa..72c5ece 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,7 +20,7 @@ class AbstractSpecification2<T> {
 }
 ----
 
-<.> xref:#satisfiesTranslatable[satisfiesTranslatable]
+<.> xref:#satisfiesTranslatable__Object[satisfiesTranslatable(Object)]
 +
 --
 Checks not null and is correct type, and delegates to _#satisfiesTranslatableSafely(Object)_ .
@@ -28,8 +28,8 @@ Checks not null and is correct type, and delegates to _#satisfiesTranslatableSaf
 
 == Members
 
-[#satisfiesTranslatable]
-=== satisfiesTranslatable
+[#satisfiesTranslatable__Object]
+=== satisfiesTranslatable(Object)
 
 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 a42caac..1c49daa 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,7 +12,7 @@ interface Specification {
 }
 ----
 
-<.> xref:#satisfies[satisfies]
+<.> xref:#satisfies__Object[satisfies(Object)]
 +
 --
 If `null` then satisfied, otherwise is reason why the specification is not satisfied.
@@ -20,8 +20,8 @@ If `null` then satisfied, otherwise is reason why the specification is not satis
 
 == Members
 
-[#satisfies]
-=== satisfies
+[#satisfies__Object]
+=== satisfies(Object)
 
 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 6e43734..5a8242a 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,7 +14,7 @@ interface Specification2 {
 }
 ----
 
-<.> xref:#satisfiesTranslatable[satisfiesTranslatable]
+<.> xref:#satisfiesTranslatable__Object[satisfiesTranslatable(Object)]
 +
 --
 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.
@@ -22,8 +22,8 @@ If `null` then satisfied, otherwise is the reason (as a xref:system:generated:in
 
 == Members
 
-[#satisfiesTranslatable]
-=== satisfiesTranslatable
+[#satisfiesTranslatable__Object]
+=== satisfiesTranslatable(Object)
 
 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 f28799c..5fcdba8 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
@@ -19,17 +19,17 @@ class ReasonBuffer {
 }
 ----
 
-<.> xref:#append[append]
+<.> xref:#append__String[append(String)]
 +
 --
 Append a reason to the list of existing reasons.
 --
-<.> xref:#appendOnCondition[appendOnCondition]
+<.> xref:#appendOnCondition__boolean_String[appendOnCondition(boolean, String)]
 +
 --
 Append a reason to the list of existing reasons if the condition flag is true.
 --
-<.> xref:#getReason[getReason]
+<.> xref:#getReason__[getReason()]
 +
 --
 Return the combined set of reasons, or `null` if there are none.
@@ -37,18 +37,18 @@ Return the combined set of reasons, or `null` if there are none.
 
 == Members
 
-[#append]
-=== append
+[#append__String]
+=== append(String)
 
 Append a reason to the list of existing reasons.
 
-[#appendOnCondition]
-=== appendOnCondition
+[#appendOnCondition__boolean_String]
+=== appendOnCondition(boolean, String)
 
 Append a reason to the list of existing reasons if the condition flag is true.
 
-[#getReason]
-=== getReason
+[#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 069b7c7..66ff46c 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,32 +24,32 @@ class ReasonBuffer2 {
 }
 ----
 
-<.> xref:#append[append]
+<.> xref:#append__String[append(String)]
 +
 --
 Append a reason to the list of existing reasons.
 --
-<.> xref:#append[append]
+<.> xref:#append__boolean_String[append(boolean, String)]
 +
 --
 Append a reason to the list of existing reasons if the condition flag is true.
 --
-<.> xref:#append[append]
+<.> xref:#append__Condition_String[append(Condition, String)]
 +
 --
 Append a reason to the list of existing reasons if the condition flag is true.
 --
-<.> xref:#getReason[getReason]
+<.> xref:#getReason__[getReason()]
 +
 --
 Return the combined set of reasons, or `null` if there are none.
 --
-<.> xref:#appendReason[appendReason]
+<.> xref:#appendReason__StringBuilder[appendReason(StringBuilder)]
 +
 --
 Appends reasons.
 --
-<.> xref:#plus[plus]
+<.> xref:#plus__ReasonBuffer2[plus(ReasonBuffer2)]
 +
 --
 Combines sets of reasons from another.
@@ -57,33 +57,33 @@ Combines sets of reasons from another.
 
 == Members
 
-[#append]
-=== append
+[#append__String]
+=== append(String)
 
 Append a reason to the list of existing reasons.
 
-[#append]
-=== append
+[#append__boolean_String]
+=== append(boolean, String)
 
 Append a reason to the list of existing reasons if the condition flag is true.
 
-[#append]
-=== append
+[#append__Condition_String]
+=== append(Condition, String)
 
 Append a reason to the list of existing reasons if the condition flag is true.
 
-[#getReason]
-=== getReason
+[#getReason__]
+=== getReason()
 
 Return the combined set of reasons, or `null` if there are none.
 
-[#appendReason]
-=== appendReason
+[#appendReason__StringBuilder]
+=== appendReason(StringBuilder)
 
 Appends reasons.
 
-[#plus]
-=== plus
+[#plus__ReasonBuffer2]
+=== plus(ReasonBuffer2)
 
 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 d1a6eec..54680cc 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
@@ -57,88 +57,88 @@ Creates a new title object, containing the title of the specified object.
 --
 Creates a new title object, containing the specified text.
 --
-<.> xref:#isEmpty[isEmpty]
+<.> xref:#isEmpty__Object[isEmpty(Object)]
 +
 --
 Determines if the specified object's title is empty (or null).
 --
-<.> xref:#isEmpty[isEmpty]
+<.> xref:#isEmpty__String[isEmpty(String)]
 +
 --
 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.
 --
-<.> xref:#append[append]
-<.> xref:#append[append]
+<.> xref:#append__int[append(int)]
+<.> xref:#append__Object[append(Object)]
 +
 --
 Append the title of the specified object to this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] .
 --
-<.> xref:#append[append]
+<.> xref:#append__Object_String[append(Object, String)]
 +
 --
 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.
 --
-<.> xref:#append[append]
+<.> xref:#append__String[append(String)]
 +
 --
 Appends a space (if there is already some text in this title object) and then the specified text.
 --
-<.> xref:#append[append]
+<.> xref:#append__String_Object[append(String, Object)]
 +
 --
 Appends the joining string and the title of the specified object. If the object is empty then nothing will be appended.
 --
-<.> xref:#append[append]
+<.> xref:#append__String_Object_String[append(String, Object, String)]
 +
 --
 Append the `joiner` text, a space, and the title of the specified object to the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] . If the title of the specified object is null then use the `defaultValue` text. If both the objects title and the default value are null or equate to a zero-length string then no text will be appended ; not even the joiner text.
 --
-<.> xref:#append[append]
+<.> xref:#append__String_String[append(String, String)]
 +
 --
 Appends the joiner text, a space, and the text to the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] . If no text yet exists in the object then the joiner text and space are omitted.
 --
-<.> xref:#appendSpace[appendSpace]
+<.> xref:#appendSpace__[appendSpace()]
 +
 --
 Append a space to the text of this TitleString object if, and only if, there is some existing text i.e., a space is only added to existing text and will not create a text entry consisting of only one space.
 --
-<.> xref:#concat[concat]
+<.> xref:#concat__Object[concat(Object)]
 +
 --
 Concatenate the the title value (the result of calling an objects label() method) to this TitleString object. If the value is null the no text is added.
 --
-<.> xref:#concat[concat]
+<.> xref:#concat__Object_String[concat(Object, String)]
 +
 --
 Concatenate the title of the object value or the specified default value if the title is equal to null or is empty, to this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] .
 --
-<.> xref:#concat[concat]
+<.> xref:#concat__String[concat(String)]
 +
 --
 Concatenate the specified text on to the end of the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] .
 --
-<.> xref:#concat[concat]
+<.> xref:#concat__String_String[concat(String, String)]
 +
 --
 Concatenate the joiner text and the text to the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] object. If no text yet exists in the object then the joiner text is omitted.
 --
-<.> xref:#concat[concat]
+<.> xref:#concat__String_Object[concat(String, Object)]
 +
 --
 Concatenate the joiner text and the title of the object to the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] . If no object yet exists in the object then the joiner text is omitted.
 --
-<.> xref:#concat[concat]
+<.> xref:#concat__String_Object_String[concat(String, Object, String)]
 +
 --
 Concatenate the joiner text and the title of the object to the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] object. If no object yet exists in the object then defaultValue is used instead.
 --
-<.> xref:#toString[toString]
+<.> xref:#toString__[toString()]
 +
 --
 Returns a String that represents the value of this object.
 --
-<.> xref:#truncate[truncate]
+<.> xref:#truncate__int[truncate(int)]
 +
 --
 Truncates this title so it has a maximum number of words. Spaces are used to determine words, thus two spaces in a title will cause two words to be mistakenly identified.
@@ -170,107 +170,107 @@ Note: this method only obtains the title using either `title()` or `toString()`
 
 Creates a new title object, containing the specified text.
 
-[#isEmpty]
-=== isEmpty
+[#isEmpty__Object]
+=== isEmpty(Object)
 
 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.
 
-[#isEmpty]
-=== isEmpty
+[#isEmpty__String]
+=== isEmpty(String)
 
 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.
 
-[#append]
-=== append
+[#append__int]
+=== append(int)
 
-[#append]
-=== append
+[#append__Object]
+=== append(Object)
 
 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.
 
-[#append]
-=== append
+[#append__Object_String]
+=== append(Object, String)
 
 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.
 
-[#append]
-=== append
+[#append__String]
+=== append(String)
 
 Appends a space (if there is already some text in this title object) and then the specified text.
 
-[#append]
-=== append
+[#append__String_Object]
+=== append(String, Object)
 
 Appends the joining string and the title of the specified object. If the object is empty then nothing will be appended.
 
 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.
 
-[#append]
-=== append
+[#append__String_Object_String]
+=== append(String, Object, String)
 
 Append the `joiner` text, a space, and the title of the specified object to the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] . If the title of the specified object is null then use the `defaultValue` text. If both the objects title and the default value are null or equate to a zero-length string then no text will be appended ; not even the joiner text.
 
 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.
 
-[#append]
-=== append
+[#append__String_String]
+=== append(String, String)
 
 Appends the joiner text, a space, and the text to the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] . If no text yet exists in the object then the joiner text and space are omitted.
 
-[#appendSpace]
-=== appendSpace
+[#appendSpace__]
+=== appendSpace()
 
 Append a space to the text of this TitleString object if, and only if, there is some existing text i.e., a space is only added to existing text and will not create a text entry consisting of only one space.
 
-[#concat]
-=== concat
+[#concat__Object]
+=== concat(Object)
 
 Concatenate the the title value (the result of calling an objects label() method) to this TitleString object. If the value is null the no text is added.
 
-[#concat]
-=== concat
+[#concat__Object_String]
+=== concat(Object, String)
 
 Concatenate the title of the object value or the specified default value if the title is equal to null or is empty, 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.
 
-[#concat]
-=== concat
+[#concat__String]
+=== concat(String)
 
 Concatenate the specified text on to the end of the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] .
 
-[#concat]
-=== concat
+[#concat__String_String]
+=== concat(String, String)
 
 Concatenate the joiner text and the text to the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] object. If no text yet exists in the object then the joiner text is omitted.
 
-[#concat]
-=== concat
+[#concat__String_Object]
+=== concat(String, Object)
 
 Concatenate the joiner text and the title of the object to the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] . If no object yet exists in the object then the joiner text is omitted.
 
 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.
 
-[#concat]
-=== concat
+[#concat__String_Object_String]
+=== concat(String, Object, String)
 
 Concatenate the joiner text and the title of the object to the text of this xref:system:generated:index/applib/util/TitleBuffer.adoc[TitleBuffer] object. If no object yet exists in the object then defaultValue is used instead.
 
 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.
 
-[#toString]
-=== toString
+[#toString__]
+=== toString()
 
 Returns a String that represents the value of this object.
 
-[#truncate]
-=== truncate
+[#truncate__int]
+=== truncate(int)
 
 Truncates this title so it has a maximum number of words. Spaces are used to determine words, thus two spaces in a title will cause two words to be mistakenly identified.
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/util/schema/InteractionDtoUtils.adoc b/antora/components/system/modules/generated/pages/index/applib/util/schema/InteractionDtoUtils.adoc
index 0af2687..2bf3482 100644
--- a/antora/components/system/modules/generated/pages/index/applib/util/schema/InteractionDtoUtils.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/util/schema/InteractionDtoUtils.adoc
@@ -34,30 +34,30 @@ class InteractionDtoUtils {
 }
 ----
 
-<.> xref:#newInteractionDto[newInteractionDto]
+<.> xref:#newInteractionDto__Execution[newInteractionDto(Execution)]
 +
 --
 Creates a _InteractionDto_ (serializable to XML) for the provided xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] (the applib object).
 --
-<.> xref:#newInteractionDto[newInteractionDto]
+<.> xref:#newInteractionDto__Execution_Strategy[newInteractionDto(Execution, Strategy)]
 +
 --
 Creates a _InteractionDto_ (serializable to XML) for the provided xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] (the applib object).
 --
-<.> xref:#addReturn[addReturn]
+<.> xref:#addReturn__ActionInvocationDto_Class_Object_BookmarkService[addReturn(ActionInvocationDto, Class, Object, BookmarkService)]
 
 == Members
 
-[#newInteractionDto]
-=== newInteractionDto
+[#newInteractionDto__Execution]
+=== newInteractionDto(Execution)
 
 Creates a _InteractionDto_ (serializable to XML) for the provided xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] (the applib object).
 
-[#newInteractionDto]
-=== newInteractionDto
+[#newInteractionDto__Execution_Strategy]
+=== newInteractionDto(Execution, Strategy)
 
 Creates a _InteractionDto_ (serializable to XML) for the provided xref:system:generated:index/applib/services/iactn/Execution.adoc[Execution] (the applib object).
 
-[#addReturn]
-=== addReturn
+[#addReturn__ActionInvocationDto_Class_Object_BookmarkService]
+=== addReturn(ActionInvocationDto, Class, Object, BookmarkService)
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/value/Blob.adoc b/antora/components/system/modules/generated/pages/index/applib/value/Blob.adoc
index 4adadfc..31e5a36 100644
--- a/antora/components/system/modules/generated/pages/index/applib/value/Blob.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/value/Blob.adoc
@@ -21,22 +21,22 @@ class Blob {
 }
 ----
 
-<.> xref:#of[of]
+<.> xref:#of__String_CommonMimeType_byte[][of(String, CommonMimeType, byte[])]
 +
 --
 Returns a new xref:system:generated:index/applib/value/Blob.adoc[Blob] of given _name_ , _mimeType_ and _content_ .
 --
-<.> xref:#writeBytesTo[writeBytesTo]
+<.> xref:#writeBytesTo__OutputStream[writeBytesTo(OutputStream)]
 +
 --
 Does not close the OutputStream.
 --
-<.> xref:#asImage[asImage]
+<.> xref:#asImage__[asImage()]
 
 == Members
 
-[#of]
-=== of
+[#of__String_CommonMimeType_byte[]]
+=== of(String, CommonMimeType, byte[])
 
 Returns a new xref:system:generated:index/applib/value/Blob.adoc[Blob] of given _name_ , _mimeType_ and _content_ .
 
@@ -44,11 +44,11 @@ _name_ may or may not include the desired filename extension, it is guaranteed,
 
 For more fine-grained control use one of the xref:system:generated:index/applib/value/Blob.adoc[Blob] constructors directly.
 
-[#writeBytesTo]
-=== writeBytesTo
+[#writeBytesTo__OutputStream]
+=== writeBytesTo(OutputStream)
 
 Does not close the OutputStream.
 
-[#asImage]
-=== asImage
+[#asImage__]
+=== asImage()
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/value/Clob.adoc b/antora/components/system/modules/generated/pages/index/applib/value/Clob.adoc
index 3aa6afb..02312ee 100644
--- a/antora/components/system/modules/generated/pages/index/applib/value/Clob.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/value/Clob.adoc
@@ -23,7 +23,7 @@ class Clob {
 }
 ----
 
-<.> xref:#of[of]
+<.> xref:#of__String_CommonMimeType_CharSequence[of(String, CommonMimeType, CharSequence)]
 +
 --
 Returns a new xref:system:generated:index/applib/value/Clob.adoc[Clob] of given _name_ , _mimeType_ and _content_ .
@@ -31,8 +31,8 @@ Returns a new xref:system:generated:index/applib/value/Clob.adoc[Clob] of given
 
 == Members
 
-[#of]
-=== of
+[#of__String_CommonMimeType_CharSequence]
+=== of(String, CommonMimeType, CharSequence)
 
 Returns a new xref:system:generated:index/applib/value/Clob.adoc[Clob] of given _name_ , _mimeType_ and _content_ .
 
diff --git a/antora/components/system/modules/generated/pages/index/applib/value/Markup.adoc b/antora/components/system/modules/generated/pages/index/applib/value/Markup.adoc
index 006f2e8..c3d35b8 100644
--- a/antora/components/system/modules/generated/pages/index/applib/value/Markup.adoc
+++ b/antora/components/system/modules/generated/pages/index/applib/value/Markup.adoc
@@ -20,7 +20,7 @@ class Markup {
 }
 ----
 
-<.> xref:#valueOfHtml[valueOfHtml]
+<.> xref:#valueOfHtml__String[valueOfHtml(String)]
 +
 --
 syntactic sugar
@@ -28,8 +28,8 @@ syntactic sugar
 
 == Members
 
-[#valueOfHtml]
-=== valueOfHtml
+[#valueOfHtml__String]
+=== valueOfHtml(String)
 
 syntactic sugar
 
diff --git a/antora/components/system/modules/generated/pages/index/commons/collections/Can.adoc b/antora/components/system/modules/generated/pages/index/commons/collections/Can.adoc
index 7cebeed..22eef46 100644
--- a/antora/components/system/modules/generated/pages/index/commons/collections/Can.adoc
+++ b/antora/components/system/modules/generated/pages/index/commons/collections/Can.adoc
@@ -65,276 +65,276 @@ interface Can<T> {
 }
 ----
 
-<.> xref:#getCardinality[getCardinality]
-<.> xref:#size[size]
-<.> xref:#get[get]
+<.> xref:#getCardinality__[getCardinality()]
+<.> xref:#size__[size()]
+<.> xref:#get__int[get(int)]
 +
 --
 Will only ever return an empty Optional, if the elementIndex is out of bounds.
 --
-<.> xref:#getElseFail[getElseFail]
+<.> xref:#getElseFail__int[getElseFail(int)]
 +
 --
 Shortcut to _get(elementIndex).orElseThrow(...)_
 --
-<.> xref:#compareTo[compareTo]
+<.> xref:#compareTo__Can[compareTo(Can)]
 +
 --
 For convenience allows the argument to be _null_ treating _null_ equivalent to _Can#empty()_ .
 --
-<.> xref:#stream[stream]
-<.> xref:#parallelStream[parallelStream]
-<.> xref:#getFirst[getFirst]
-<.> xref:#getFirstOrFail[getFirstOrFail]
+<.> xref:#stream__[stream()]
+<.> xref:#parallelStream__[parallelStream()]
+<.> xref:#getFirst__[getFirst()]
+<.> xref:#getFirstOrFail__[getFirstOrFail()]
 +
 --
 Shortcut for _getFirst().orElseThrow(_Exceptions::noSuchElement)_
 --
-<.> xref:#getSingleton[getSingleton]
-<.> xref:#getSingletonOrFail[getSingletonOrFail]
+<.> xref:#getSingleton__[getSingleton()]
+<.> xref:#getSingletonOrFail__[getSingletonOrFail()]
 +
 --
 Shortcut for _getSingleton().orElseThrow(_Exceptions::noSuchElement)_
 --
-<.> xref:#contains[contains]
-<.> xref:#empty[empty]
+<.> xref:#contains__T[contains(T)]
+<.> xref:#empty__[empty()]
 +
 --
 Returns an empty _Can_ .
 --
-<.> xref:#ofNullable[ofNullable]
+<.> xref:#ofNullable__T[ofNullable(T)]
 +
 --
 Returns either a _Can_ with the given _element_ or an empty _Can_ if the _element_ is _null_ .
 --
-<.> xref:#ofSingleton[ofSingleton]
+<.> xref:#ofSingleton__T[ofSingleton(T)]
 +
 --
 Returns either a _Can_ with the given _element_ or throws if the _element_ is _null_ .
 --
-<.> xref:#ofCollection[ofCollection]
+<.> xref:#ofCollection__Collection[ofCollection(Collection)]
 +
 --
 Returns either a _Can_ with all the elements from given _collection_ or an empty _Can_ if the _collection_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
 --
-<.> xref:#ofStream[ofStream]
+<.> xref:#ofStream__Stream[ofStream(Stream)]
 +
 --
 Returns either a _Can_ with all the elements from given _stream_ or an empty _Can_ if the _stream_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
 --
-<.> xref:#ofInstance[ofInstance]
+<.> xref:#ofInstance__Instance[ofInstance(Instance)]
 +
 --
 Returns either a _Can_ with all the elements from given _instance_ or an empty _Can_ if the _instance_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
 --
-<.> xref:#reverse[reverse]
+<.> xref:#reverse__[reverse()]
 +
 --
 Returns a _Can_ with all the elements from this _Can_ but contained in reversed order.
 --
-<.> xref:#filter[filter]
+<.> xref:#filter__Predicate[filter(Predicate)]
 +
 --
 Returns a _Can_ with all the elements from this _Can_ , that are accepted by the given _predicate_ . If _predicate_ is _null_ *all* elements are accepted.
 --
-<.> xref:#map[map]
+<.> xref:#map__Function[map(Function)]
 +
 --
 Returns a _Can_ with all the elements from this _Can_ 'transformed' by the given _mapper_ function. Any resulting elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
 --
-<.> xref:#concat[concat]
+<.> xref:#concat__Can_T[concat(Can, T)]
 +
 --
 Returns a _Can_ with all the elements from given _can_ joined by the given _element_ . If any of given _can_ or _element_ are _null_ these do not contribute any elements and are ignored.
 --
-<.> xref:#zip[zip]
+<.> xref:#zip__Iterable_BiConsumer[zip(Iterable, BiConsumer)]
 +
 --
 Similar to _#forEach(Consumer)_ , but zipps in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _action_ .
 --
-<.> xref:#zipMap[zipMap]
+<.> xref:#zipMap__Iterable_BiFunction[zipMap(Iterable, BiFunction)]
 +
 --
 Similar to _#map(Function)_ , but zipps in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _mapper_ .
 --
-<.> xref:#add[add]
+<.> xref:#add__int_T[add(int, T)]
 +
 --
 Inserts the specified element at the specified position in this list (optional operation). Shifts the element currently at that position (if any) and any subsequent elements to the right (adds one to their indices).
 --
-<.> xref:#remove[remove]
+<.> xref:#remove__int[remove(int)]
 +
 --
 Removes the element at the specified position in this list (optional operation). Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the list.
 --
-<.> xref:#indexOf[indexOf]
+<.> xref:#indexOf__T[indexOf(T)]
 +
 --
 Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element. More formally, returns the lowest index `i` such that `(o==null ? get(i)==null : o.equals(get(i)))` , or -1 if there is no such index.
 --
-<.> xref:#isEqualTo[isEqualTo]
-<.> xref:#startsWith[startsWith]
+<.> xref:#isEqualTo__Can[isEqualTo(Can)]
+<.> xref:#startsWith__Can[startsWith(Can)]
 +
 --
 Let _n_ be the number of elements in _other_ . Returns whether the first _n_ elements of this _Can_ are element-wise equal to _other_ .
 --
-<.> xref:#endsWith[endsWith]
+<.> xref:#endsWith__Can[endsWith(Can)]
 +
 --
 Let _n_ be the number of elements in _other_ . Returns whether the last _n_ elements of this _Can_ are element-wise equal to _other_ .
 --
-<.> xref:#toList[toList]
-<.> xref:#toCollection[toCollection]
-<.> xref:#toArray[toArray]
-<.> xref:#toArray[toArray]
+<.> xref:#toList__[toList()]
+<.> xref:#toCollection__Supplier[toCollection(Supplier)]
+<.> xref:#toArray__T[][toArray(T[])]
+<.> xref:#toArray__Class[toArray(Class)]
 
 == Members
 
-[#getCardinality]
-=== getCardinality
+[#getCardinality__]
+=== getCardinality()
 
-[#size]
-=== size
+[#size__]
+=== size()
 
-[#get]
-=== get
+[#get__int]
+=== get(int)
 
 Will only ever return an empty Optional, if the elementIndex is out of bounds.
 
-[#getElseFail]
-=== getElseFail
+[#getElseFail__int]
+=== getElseFail(int)
 
 Shortcut to _get(elementIndex).orElseThrow(...)_
 
 Will only ever throw, if the elementIndex is out of bounds.
 
-[#compareTo]
-=== compareTo
+[#compareTo__Can]
+=== compareTo(Can)
 
 For convenience allows the argument to be _null_ treating _null_ equivalent to _Can#empty()_ .
 
-[#stream]
-=== stream
+[#stream__]
+=== stream()
 
-[#parallelStream]
-=== parallelStream
+[#parallelStream__]
+=== parallelStream()
 
-[#getFirst]
-=== getFirst
+[#getFirst__]
+=== getFirst()
 
-[#getFirstOrFail]
-=== getFirstOrFail
+[#getFirstOrFail__]
+=== getFirstOrFail()
 
 Shortcut for _getFirst().orElseThrow(_Exceptions::noSuchElement)_
 
-[#getSingleton]
-=== getSingleton
+[#getSingleton__]
+=== getSingleton()
 
-[#getSingletonOrFail]
-=== getSingletonOrFail
+[#getSingletonOrFail__]
+=== getSingletonOrFail()
 
 Shortcut for _getSingleton().orElseThrow(_Exceptions::noSuchElement)_
 
-[#contains]
-=== contains
+[#contains__T]
+=== contains(T)
 
-[#empty]
-=== empty
+[#empty__]
+=== empty()
 
 Returns an empty _Can_ .
 
-[#ofNullable]
-=== ofNullable
+[#ofNullable__T]
+=== ofNullable(T)
 
 Returns either a _Can_ with the given _element_ or an empty _Can_ if the _element_ is _null_ .
 
-[#ofSingleton]
-=== ofSingleton
+[#ofSingleton__T]
+=== ofSingleton(T)
 
 Returns either a _Can_ with the given _element_ or throws if the _element_ is _null_ .
 
-[#ofCollection]
-=== ofCollection
+[#ofCollection__Collection]
+=== ofCollection(Collection)
 
 Returns either a _Can_ with all the elements from given _collection_ or an empty _Can_ if the _collection_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
 
-[#ofStream]
-=== ofStream
+[#ofStream__Stream]
+=== ofStream(Stream)
 
 Returns either a _Can_ with all the elements from given _stream_ or an empty _Can_ if the _stream_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
 
-[#ofInstance]
-=== ofInstance
+[#ofInstance__Instance]
+=== ofInstance(Instance)
 
 Returns either a _Can_ with all the elements from given _instance_ or an empty _Can_ if the _instance_ is _null_ . Any elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
 
-[#reverse]
-=== reverse
+[#reverse__]
+=== reverse()
 
 Returns a _Can_ with all the elements from this _Can_ but contained in reversed order.
 
-[#filter]
-=== filter
+[#filter__Predicate]
+=== filter(Predicate)
 
 Returns a _Can_ with all the elements from this _Can_ , that are accepted by the given _predicate_ . If _predicate_ is _null_ *all* elements are accepted.
 
-[#map]
-=== map
+[#map__Function]
+=== map(Function)
 
 Returns a _Can_ with all the elements from this _Can_ 'transformed' by the given _mapper_ function. Any resulting elements equal to _null_ are ignored and will not be contained in the resulting _Can_ .
 
-[#concat]
-=== concat
+[#concat__Can_T]
+=== concat(Can, T)
 
 Returns a _Can_ with all the elements from given _can_ joined by the given _element_ . If any of given _can_ or _element_ are _null_ these do not contribute any elements and are ignored.
 
-[#zip]
-=== zip
+[#zip__Iterable_BiConsumer]
+=== zip(Iterable, BiConsumer)
 
 Similar to _#forEach(Consumer)_ , but zipps in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _action_ .
 
-[#zipMap]
-=== zipMap
+[#zipMap__Iterable_BiFunction]
+=== zipMap(Iterable, BiFunction)
 
 Similar to _#map(Function)_ , but zipps in _zippedIn_ to iterate through its elements and passes them over as the second argument to the _mapper_ .
 
-[#add]
-=== add
+[#add__int_T]
+=== add(int, T)
 
 Inserts the specified element at the specified position in this list (optional operation). Shifts the element currently at that position (if any) and any subsequent elements to the right (adds one to their indices).
 
-[#remove]
-=== remove
+[#remove__int]
+=== remove(int)
 
 Removes the element at the specified position in this list (optional operation). Shifts any subsequent elements to the left (subtracts one from their indices). Returns the element that was removed from the list.
 
-[#indexOf]
-=== indexOf
+[#indexOf__T]
+=== indexOf(T)
 
 Returns the index of the first occurrence of the specified element in this list, or -1 if this list does not contain the element. More formally, returns the lowest index `i` such that `(o==null ? get(i)==null : o.equals(get(i)))` , or -1 if there is no such index.
 
-[#isEqualTo]
-=== isEqualTo
+[#isEqualTo__Can]
+=== isEqualTo(Can)
 
-[#startsWith]
-=== startsWith
+[#startsWith__Can]
+=== startsWith(Can)
 
 Let _n_ be the number of elements in _other_ . Returns whether the first _n_ elements of this _Can_ are element-wise equal to _other_ .
 
-[#endsWith]
-=== endsWith
+[#endsWith__Can]
+=== endsWith(Can)
 
 Let _n_ be the number of elements in _other_ . Returns whether the last _n_ elements of this _Can_ are element-wise equal to _other_ .
 
-[#toList]
-=== toList
+[#toList__]
+=== toList()
 
-[#toCollection]
-=== toCollection
+[#toCollection__Supplier]
+=== toCollection(Supplier)
 
-[#toArray]
-=== toArray
+[#toArray__T[]]
+=== toArray(T[])
 
-[#toArray]
-=== toArray
+[#toArray__Class]
+=== toArray(Class)
 
diff --git a/antora/components/system/modules/generated/pages/index/commons/having/HasUniqueId.adoc b/antora/components/system/modules/generated/pages/index/commons/having/HasUniqueId.adoc
index dc490bf..fea71f2 100644
--- a/antora/components/system/modules/generated/pages/index/commons/having/HasUniqueId.adoc
+++ b/antora/components/system/modules/generated/pages/index/commons/having/HasUniqueId.adoc
@@ -10,7 +10,7 @@ interface HasUniqueId {
 }
 ----
 
-<.> xref:#getUniqueId[getUniqueId]
+<.> xref:#getUniqueId__[getUniqueId()]
 +
 --
 A unique identifier (a GUID).
@@ -18,8 +18,8 @@ A unique identifier (a GUID).
 
 == Members
 
-[#getUniqueId]
-=== getUniqueId
+[#getUniqueId__]
+=== getUniqueId()
 
 A unique identifier (a GUID).
 
diff --git a/antora/components/system/modules/generated/pages/index/commons/having/HasUsername.adoc b/antora/components/system/modules/generated/pages/index/commons/having/HasUsername.adoc
index f42fea9..fe79bd8 100644
--- a/antora/components/system/modules/generated/pages/index/commons/having/HasUsername.adoc
+++ b/antora/components/system/modules/generated/pages/index/commons/having/HasUsername.adoc
@@ -14,7 +14,7 @@ interface HasUsername {
 }
 ----
 
-<.> xref:#getUsername[getUsername]
+<.> xref:#getUsername__[getUsername()]
 +
 --
 The user that created this object.
@@ -22,8 +22,8 @@ The user that created this object.
 
 == Members
 
-[#getUsername]
-=== getUsername
+[#getUsername__]
+=== getUsername()
 
 The user that created this object.
 
diff --git a/antora/components/system/modules/generated/pages/index/core/runtimeservices/transaction/TransactionServiceSpring.adoc b/antora/components/system/modules/generated/pages/index/core/runtimeservices/transaction/TransactionServiceSpring.adoc
index aa3c470..d8ba97f 100644
--- a/antora/components/system/modules/generated/pages/index/core/runtimeservices/transaction/TransactionServiceSpring.adoc
+++ b/antora/components/system/modules/generated/pages/index/core/runtimeservices/transaction/TransactionServiceSpring.adoc
@@ -18,17 +18,17 @@ class TransactionServiceSpring {
 }
 ----
 
-<.> xref:#beforeEnteringTransactionalBoundary[beforeEnteringTransactionalBoundary]
+<.> xref:#beforeEnteringTransactionalBoundary__InteractionSession[beforeEnteringTransactionalBoundary(InteractionSession)]
 +
 --
 INTERACTION BEGIN BOUNDARY
 --
-<.> xref:#onTransactionEnded[onTransactionEnded]
+<.> xref:#onTransactionEnded__TransactionAfterCompletionEvent[onTransactionEnded(TransactionAfterCompletionEvent)]
 +
 --
 TRANSACTION END BOUNDARY
 --
-<.> xref:#afterLeavingTransactionalBoundary[afterLeavingTransactionalBoundary]
+<.> xref:#afterLeavingTransactionalBoundary__InteractionSession[afterLeavingTransactionalBoundary(InteractionSession)]
 +
 --
 INTERACTION END BOUNDARY
@@ -36,18 +36,18 @@ INTERACTION END BOUNDARY
 
 == Members
 
-[#beforeEnteringTransactionalBoundary]
-=== beforeEnteringTransactionalBoundary
+[#beforeEnteringTransactionalBoundary__InteractionSession]
+=== beforeEnteringTransactionalBoundary(InteractionSession)
 
 INTERACTION BEGIN BOUNDARY
 
-[#onTransactionEnded]
-=== onTransactionEnded
+[#onTransactionEnded__TransactionAfterCompletionEvent]
+=== onTransactionEnded(TransactionAfterCompletionEvent)
 
 TRANSACTION END BOUNDARY
 
-[#afterLeavingTransactionalBoundary]
-=== afterLeavingTransactionalBoundary
+[#afterLeavingTransactionalBoundary__InteractionSession]
+=== afterLeavingTransactionalBoundary(InteractionSession)
 
 INTERACTION END BOUNDARY
 
diff --git a/antora/components/system/modules/generated/pages/index/core/transaction/changetracking/EntityChangeTrackerDefault.adoc b/antora/components/system/modules/generated/pages/index/core/transaction/changetracking/EntityChangeTrackerDefault.adoc
index e2e8c60..1bb9121 100644
--- a/antora/components/system/modules/generated/pages/index/core/transaction/changetracking/EntityChangeTrackerDefault.adoc
+++ b/antora/components/system/modules/generated/pages/index/core/transaction/changetracking/EntityChangeTrackerDefault.adoc
@@ -23,7 +23,7 @@ class EntityChangeTrackerDefault {
 }
 ----
 
-<.> xref:#onPreCommit[onPreCommit]
+<.> xref:#onPreCommit__TransactionBeforeCompletionEvent[onPreCommit(TransactionBeforeCompletionEvent)]
 +
 --
 TRANSACTION END BOUNDARY
@@ -31,8 +31,8 @@ TRANSACTION END BOUNDARY
 
 == Members
 
-[#onPreCommit]
-=== onPreCommit
+[#onPreCommit__TransactionBeforeCompletionEvent]
+=== onPreCommit(TransactionBeforeCompletionEvent)
 
 TRANSACTION END BOUNDARY
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/commandlog/impl/IsisModuleExtCommandLogImpl.adoc b/antora/components/system/modules/generated/pages/index/extensions/commandlog/impl/IsisModuleExtCommandLogImpl.adoc
index c5fcc27..063e603 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/commandlog/impl/IsisModuleExtCommandLogImpl.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/commandlog/impl/IsisModuleExtCommandLogImpl.adoc
@@ -11,7 +11,7 @@ class IsisModuleExtCommandLogImpl {
 }
 ----
 
-<.> xref:#getTeardownFixtureWillDelete[getTeardownFixtureWillDelete]
+<.> xref:#getTeardownFixtureWillDelete__[getTeardownFixtureWillDelete()]
 +
 --
 For tests that need to delete the command table first. Should be run in the @Before of the test.
@@ -19,8 +19,8 @@ For tests that need to delete the command table first. Should be run in the @Bef
 
 == Members
 
-[#getTeardownFixtureWillDelete]
-=== getTeardownFixtureWillDelete
+[#getTeardownFixtureWillDelete__]
+=== getTeardownFixtureWillDelete()
 
 For tests that need to delete the command table first. Should be run in the @Before of the test.
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/commandlog/impl/mixins/HasUniqueId_command.adoc b/antora/components/system/modules/generated/pages/index/extensions/commandlog/impl/mixins/HasUniqueId_command.adoc
index 7e3f151..dc779ee 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/commandlog/impl/mixins/HasUniqueId_command.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/commandlog/impl/mixins/HasUniqueId_command.adoc
@@ -17,7 +17,7 @@ CommandJdoRepository commandServiceRepository;
 }
 ----
 
-<.> xref:#hideAct[hideAct]
+<.> xref:#hideAct__[hideAct()]
 +
 --
 Hide if the contributee is a xref:system:generated:index/applib/services/command/Command.adoc[Command] , because xref:system:generated:index/applib/services/command/Command.adoc[Command] s already have a _Command#getParent() parent_ property.
@@ -25,8 +25,8 @@ Hide if the contributee is a xref:system:generated:index/applib/services/command
 
 == Members
 
-[#hideAct]
-=== hideAct
+[#hideAct__]
+=== hideAct()
 
 Hide if the contributee is a xref:system:generated:index/applib/services/command/Command.adoc[Command] , because xref:system:generated:index/applib/services/command/Command.adoc[Command] s already have a _Command#getParent() parent_ property.
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/primary/restapi/CommandRetrievalService.adoc b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/primary/restapi/CommandRetrievalService.adoc
index a171bdf..5393acf 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/primary/restapi/CommandRetrievalService.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/primary/restapi/CommandRetrievalService.adoc
@@ -13,7 +13,7 @@ CommandJdoRepository commandServiceRepository;
 }
 ----
 
-<.> xref:#findCommandsOnPrimaryFrom[findCommandsOnPrimaryFrom]
+<.> xref:#findCommandsOnPrimaryFrom__UUID_Integer[findCommandsOnPrimaryFrom(UUID, Integer)]
 +
 --
 These actions should be called with HTTP Accept Header set to: `application/xml;profile="urn:org.restfulobjects:repr-types/action-result";x-ro-domain-type="org.apache.isis.schema.cmd.v1.CommandsDto"` 
@@ -21,8 +21,8 @@ These actions should be called with HTTP Accept Header set to: `application/xml;
 
 == Members
 
-[#findCommandsOnPrimaryFrom]
-=== findCommandsOnPrimaryFrom
+[#findCommandsOnPrimaryFrom__UUID_Integer]
+=== findCommandsOnPrimaryFrom(UUID, Integer)
 
 These actions should be called with HTTP Accept Header set to: `application/xml;profile="urn:org.restfulobjects:repr-types/action-result";x-ro-domain-type="org.apache.isis.schema.cmd.v1.CommandsDto"` 
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/primary/ui/CommandReplayOnPrimaryService.adoc b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/primary/ui/CommandReplayOnPrimaryService.adoc
index 06775dc..3681d80 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/primary/ui/CommandReplayOnPrimaryService.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/primary/ui/CommandReplayOnPrimaryService.adoc
@@ -26,17 +26,17 @@ final CommandRetrievalService commandRetrievalService;
 }
 ----
 
-<.> xref:#findCommands[findCommands]
+<.> xref:#findCommands__UUID_Integer[findCommands(UUID, Integer)]
 +
 --
 These actions should be called with HTTP Accept Header set to: `application/xml;profile="urn:org.restfulobjects:repr-types/action-result";x-ro-domain-type="org.apache.isis.schema.cmd.v1.CommandsDto"` 
 --
-<.> xref:#downloadCommands[downloadCommands]
+<.> xref:#downloadCommands__UUID_Integer_String[downloadCommands(UUID, Integer, String)]
 +
 --
 These actions should be called with HTTP Accept Header set to: `application/xml;profile="urn:org.restfulobjects:repr-types/action-result";x-ro-domain-type="org.apache.isis.schema.cmd.v1.CommandsDto"` 
 --
-<.> xref:#downloadCommandById[downloadCommandById]
+<.> xref:#downloadCommandById__UUID_String[downloadCommandById(UUID, String)]
 +
 --
 This action should be called with HTTP Accept Header set to: `application/xml;profile="urn:org.restfulobjects:repr-types/action-result";x-ro-domain-type="org.apache.isis.schema.cmd.v1.CommandDto"` 
@@ -44,18 +44,18 @@ This action should be called with HTTP Accept Header set to: `application/xml;pr
 
 == Members
 
-[#findCommands]
-=== findCommands
+[#findCommands__UUID_Integer]
+=== findCommands(UUID, Integer)
 
 These actions should be called with HTTP Accept Header set to: `application/xml;profile="urn:org.restfulobjects:repr-types/action-result";x-ro-domain-type="org.apache.isis.schema.cmd.v1.CommandsDto"` 
 
-[#downloadCommands]
-=== downloadCommands
+[#downloadCommands__UUID_Integer_String]
+=== downloadCommands(UUID, Integer, String)
 
 These actions should be called with HTTP Accept Header set to: `application/xml;profile="urn:org.restfulobjects:repr-types/action-result";x-ro-domain-type="org.apache.isis.schema.cmd.v1.CommandsDto"` 
 
-[#downloadCommandById]
-=== downloadCommandById
+[#downloadCommandById__UUID_String]
+=== downloadCommandById(UUID, String)
 
 This action should be called with HTTP Accept Header set to: `application/xml;profile="urn:org.restfulobjects:repr-types/action-result";x-ro-domain-type="org.apache.isis.schema.cmd.v1.CommandDto"` 
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/analyser/CommandReplayAnalyser.adoc b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/analyser/CommandReplayAnalyser.adoc
index b7ac59e..65dde4c 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/analyser/CommandReplayAnalyser.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/analyser/CommandReplayAnalyser.adoc
@@ -10,10 +10,10 @@ interface CommandReplayAnalyser {
 }
 ----
 
-<.> xref:#analyzeReplay[analyzeReplay]
+<.> xref:#analyzeReplay__CommandJdo[analyzeReplay(CommandJdo)]
 
 == Members
 
-[#analyzeReplay]
-=== analyzeReplay
+[#analyzeReplay__CommandJdo]
+=== analyzeReplay(CommandJdo)
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/analysis/CommandReplayAnalysisService.adoc b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/analysis/CommandReplayAnalysisService.adoc
index 9b19776..d6d8a11 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/analysis/CommandReplayAnalysisService.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/analysis/CommandReplayAnalysisService.adoc
@@ -12,7 +12,7 @@ List<CommandReplayAnalyser> analysers;
 }
 ----
 
-<.> xref:#analyse[analyse]
+<.> xref:#analyse__CommandJdo[analyse(CommandJdo)]
 +
 --
 if hit an issue with the command having been replayed, then mark this as in error. This will effectively block the running of any further commands until the adminstrator fixes the issue.
@@ -20,8 +20,8 @@ if hit an issue with the command having been replayed, then mark this as in erro
 
 == Members
 
-[#analyse]
-=== analyse
+[#analyse__CommandJdo]
+=== analyse(CommandJdo)
 
 if hit an issue with the command having been replayed, then mark this as in error. This will effectively block the running of any further commands until the adminstrator fixes the issue.
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/clock/TickingClockService.adoc b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/clock/TickingClockService.adoc
index 6857367..fc24488 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/clock/TickingClockService.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/clock/TickingClockService.adoc
@@ -20,12 +20,12 @@ class TickingClockService {
 }
 ----
 
-<.> xref:#at[at]
+<.> xref:#at__Timestamp_Runnable[at(Timestamp, Runnable)]
 +
 --
 Executes the runnable, setting the clock to be the specified time beforehand (and reinstating it to its original time afterwards).
 --
-<.> xref:#at[at]
+<.> xref:#at__Timestamp_Supplier[at(Timestamp, Supplier)]
 +
 --
 Executes the callable, setting the clock to be the specified time beforehand (and reinstating it to its original time afterwards).
@@ -33,15 +33,15 @@ Executes the callable, setting the clock to be the specified time beforehand (an
 
 == Members
 
-[#at]
-=== at
+[#at__Timestamp_Runnable]
+=== at(Timestamp, Runnable)
 
 Executes the runnable, setting the clock to be the specified time beforehand (and reinstating it to its original time afterwards).
 
 IMPORTANT: this method is not thread-safe, because the clock is a globally-scoped singleton rather than a thread-local. This method should therefore only be used in single-user systems, eg a replay secondary.
 
-[#at]
-=== at
+[#at__Timestamp_Supplier]
+=== at(Timestamp, Supplier)
 
 Executes the callable, setting the clock to be the specified time beforehand (and reinstating it to its original time afterwards).
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/fetch/CommandFetcher.adoc b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/fetch/CommandFetcher.adoc
index 59d648f..f714279 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/fetch/CommandFetcher.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/fetch/CommandFetcher.adoc
@@ -13,7 +13,7 @@ SecondaryConfig secondaryConfig;
 }
 ----
 
-<.> xref:#fetchCommand[fetchCommand]
+<.> xref:#fetchCommand__CommandJdo[fetchCommand(CommandJdo)]
 +
 --
 Replicates a single command.
@@ -21,8 +21,8 @@ Replicates a single command.
 
 == Members
 
-[#fetchCommand]
-=== fetchCommand
+[#fetchCommand__CommandJdo]
+=== fetchCommand(CommandJdo)
 
 Replicates a single command.
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/spi/ReplayCommandExecutionController.adoc b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/spi/ReplayCommandExecutionController.adoc
index 2f24344..0dd1562 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/spi/ReplayCommandExecutionController.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/commandreplay/secondary/spi/ReplayCommandExecutionController.adoc
@@ -14,7 +14,7 @@ interface ReplayCommandExecutionController {
 }
 ----
 
-<.> xref:#getState[getState]
+<.> xref:#getState__[getState()]
 +
 --
 The current state, or `null` if the service implementing this SPI has not yet been initialized.
@@ -22,8 +22,8 @@ The current state, or `null` if the service implementing this SPI has not yet be
 
 == Members
 
-[#getState]
-=== getState
+[#getState__]
+=== getState()
 
 The current state, or `null` if the service implementing this SPI has not yet been initialized.
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/fullcalendar/applib/CalendarEventable.adoc b/antora/components/system/modules/generated/pages/index/extensions/fullcalendar/applib/CalendarEventable.adoc
index bef2b70..5a02815 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/fullcalendar/applib/CalendarEventable.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/fullcalendar/applib/CalendarEventable.adoc
@@ -11,7 +11,7 @@ interface CalendarEventable {
 }
 ----
 
-<.> xref:#getCalendarName[getCalendarName]
+<.> xref:#getCalendarName__[getCalendarName()]
 +
 --
 The name of the calendar to which this event belongs.
@@ -19,8 +19,8 @@ The name of the calendar to which this event belongs.
 
 == Members
 
-[#getCalendarName]
-=== getCalendarName
+[#getCalendarName__]
+=== getCalendarName()
 
 The name of the calendar to which this event belongs.
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/fullcalendar/applib/Calendarable.adoc b/antora/components/system/modules/generated/pages/index/extensions/fullcalendar/applib/Calendarable.adoc
index 87cc650..a2ff31e 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/fullcalendar/applib/Calendarable.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/fullcalendar/applib/Calendarable.adoc
@@ -11,12 +11,12 @@ interface Calendarable {
 }
 ----
 
-<.> xref:#getCalendarNames[getCalendarNames]
+<.> xref:#getCalendarNames__[getCalendarNames()]
 +
 --
 The names of unique "calendar"s provided by this object.
 --
-<.> xref:#getCalendarEvents[getCalendarEvents]
+<.> xref:#getCalendarEvents__[getCalendarEvents()]
 +
 --
 The events associated with this object, keyed by their corresponding _#getCalendarNames() calendar name_ .
@@ -24,8 +24,8 @@ The events associated with this object, keyed by their corresponding _#getCalend
 
 == Members
 
-[#getCalendarNames]
-=== getCalendarNames
+[#getCalendarNames__]
+=== getCalendarNames()
 
 The names of unique "calendar"s provided by this object.
 
@@ -33,8 +33,8 @@ The "calendar" is a string identifier that indicates the nature of this event.
 
 For example, an event of a lease's `FixedBreakOption` has three dates: the _break date_ , the _exercise date_ and the _reminder date_ . These therefore correspond to three different calendar names, respectively _Fixed break_ , _Fixed break exercise_ and _Fixed break exercise reminder_ .
 
-[#getCalendarEvents]
-=== getCalendarEvents
+[#getCalendarEvents__]
+=== getCalendarEvents()
 
 The events associated with this object, keyed by their corresponding _#getCalendarNames() calendar name_ .
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/quartz/context/JobExecutionData.adoc b/antora/components/system/modules/generated/pages/index/extensions/quartz/context/JobExecutionData.adoc
index db133b1..8a17511 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/quartz/context/JobExecutionData.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/quartz/context/JobExecutionData.adoc
@@ -13,12 +13,12 @@ class JobExecutionData {
 }
 ----
 
-<.> xref:#getString[getString]
+<.> xref:#getString__String_String[getString(String, String)]
 +
 --
 Lookup property from the job detail.
 --
-<.> xref:#setString[setString]
+<.> xref:#setString__String_String[setString(String, String)]
 +
 --
 Save key into the job detail obtained from context.
@@ -26,13 +26,13 @@ Save key into the job detail obtained from context.
 
 == Members
 
-[#getString]
-=== getString
+[#getString__String_String]
+=== getString(String, String)
 
 Lookup property from the job detail.
 
-[#setString]
-=== setString
+[#setString__String_String]
+=== setString(String, String)
 
 Save key into the job detail obtained from context.
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/restclient/ResponseDigest.adoc b/antora/components/system/modules/generated/pages/index/extensions/restclient/ResponseDigest.adoc
index ef22a20..cd00867 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/restclient/ResponseDigest.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/restclient/ResponseDigest.adoc
@@ -19,64 +19,64 @@ class ResponseDigest<T> {
 }
 ----
 
-<.> xref:#of[of]
+<.> xref:#of__Response_Class[of(Response, Class)]
 +
 --
 synchronous response processing (single entity)
 --
-<.> xref:#ofList[ofList]
+<.> xref:#ofList__Response_Class_GenericType[ofList(Response, Class, GenericType)]
 +
 --
 synchronous response processing (list of entities)
 --
-<.> xref:#ofAsyncFailure[ofAsyncFailure]
+<.> xref:#ofAsyncFailure__Future_Class_Exception[ofAsyncFailure(Future, Class, Exception)]
 +
 --
 a-synchronous response failure processing
 --
-<.> xref:#isSuccess[isSuccess]
-<.> xref:#isFailure[isFailure]
-<.> xref:#getEntity[getEntity]
-<.> xref:#getEntities[getEntities]
-<.> xref:#getFailureCause[getFailureCause]
-<.> xref:#singletonOrElseMapFailure[singletonOrElseMapFailure]
-<.> xref:#multipleOrElseMapFailure[multipleOrElseMapFailure]
+<.> xref:#isSuccess__[isSuccess()]
+<.> xref:#isFailure__[isFailure()]
+<.> xref:#getEntity__[getEntity()]
+<.> xref:#getEntities__[getEntities()]
+<.> xref:#getFailureCause__[getFailureCause()]
+<.> xref:#singletonOrElseMapFailure__Function[singletonOrElseMapFailure(Function)]
+<.> xref:#multipleOrElseMapFailure__Function[multipleOrElseMapFailure(Function)]
 
 == Members
 
-[#of]
-=== of
+[#of__Response_Class]
+=== of(Response, Class)
 
 synchronous response processing (single entity)
 
-[#ofList]
-=== ofList
+[#ofList__Response_Class_GenericType]
+=== ofList(Response, Class, GenericType)
 
 synchronous response processing (list of entities)
 
-[#ofAsyncFailure]
-=== ofAsyncFailure
+[#ofAsyncFailure__Future_Class_Exception]
+=== ofAsyncFailure(Future, Class, Exception)
 
 a-synchronous response failure processing
 
-[#isSuccess]
-=== isSuccess
+[#isSuccess__]
+=== isSuccess()
 
-[#isFailure]
-=== isFailure
+[#isFailure__]
+=== isFailure()
 
-[#getEntity]
-=== getEntity
+[#getEntity__]
+=== getEntity()
 
-[#getEntities]
-=== getEntities
+[#getEntities__]
+=== getEntities()
 
-[#getFailureCause]
-=== getFailureCause
+[#getFailureCause__]
+=== getFailureCause()
 
-[#singletonOrElseMapFailure]
-=== singletonOrElseMapFailure
+[#singletonOrElseMapFailure__Function]
+=== singletonOrElseMapFailure(Function)
 
-[#multipleOrElseMapFailure]
-=== multipleOrElseMapFailure
+[#multipleOrElseMapFailure__Function]
+=== multipleOrElseMapFailure(Function)
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/ApplicationPermission.adoc b/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/ApplicationPermission.adoc
index dc6cf9d..66944fe 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/ApplicationPermission.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/ApplicationPermission.adoc
@@ -30,7 +30,7 @@ interface ApplicationPermission {
 }
 ----
 
-<.> xref:#title[title]
+<.> xref:#title__[title()]
 +
 --
 having a title() method (rather than using @Title annotation) is necessary as a workaround to be able to use wrapperFactory#unwrap(...) method, which is otherwise broken in Isis 1.6.0
@@ -38,8 +38,8 @@ having a title() method (rather than using @Title annotation) is necessary as a
 
 == Members
 
-[#title]
-=== title
+[#title__]
+=== title()
 
 having a title() method (rather than using @Title annotation) is necessary as a workaround to be able to use wrapperFactory#unwrap(...) method, which is otherwise broken in Isis 1.6.0
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/ApplicationPermissionRepository.adoc b/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/ApplicationPermissionRepository.adoc
index dab3300..14a1ef8 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/ApplicationPermissionRepository.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/ApplicationPermissionRepository.adoc
@@ -18,10 +18,10 @@ interface ApplicationPermissionRepository<P> {
 }
 ----
 
-<.> xref:#newApplicationPermission[newApplicationPermission]
+<.> xref:#newApplicationPermission__[newApplicationPermission()]
 
 == Members
 
-[#newApplicationPermission]
-=== newApplicationPermission
+[#newApplicationPermission__]
+=== newApplicationPermission()
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/PermissionsEvaluationService.adoc b/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/PermissionsEvaluationService.adoc
index fee530a..13e1f5d 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/PermissionsEvaluationService.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/secman/api/permission/PermissionsEvaluationService.adoc
@@ -14,10 +14,10 @@ interface PermissionsEvaluationService {
 }
 ----
 
-<.> xref:#evaluate[evaluate]
+<.> xref:#evaluate__ApplicationFeatureId_ApplicationPermissionMode_Collection[evaluate(ApplicationFeatureId, ApplicationPermissionMode, Collection)]
 
 == Members
 
-[#evaluate]
-=== evaluate
+[#evaluate__ApplicationFeatureId_ApplicationPermissionMode_Collection]
+=== evaluate(ApplicationFeatureId, ApplicationPermissionMode, Collection)
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/secman/api/role/ApplicationRole.adoc b/antora/components/system/modules/generated/pages/index/extensions/secman/api/role/ApplicationRole.adoc
index a68e13c..8d9bc42 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/secman/api/role/ApplicationRole.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/secman/api/role/ApplicationRole.adoc
@@ -17,7 +17,7 @@ interface ApplicationRole {
 }
 ----
 
-<.> xref:#title[title]
+<.> xref:#title__[title()]
 +
 --
 having a title() method (rather than using @Title annotation) is necessary as a workaround to be able to use wrapperFactory#unwrap(...) method, which is otherwise broken in Isis 1.6.0
@@ -25,8 +25,8 @@ having a title() method (rather than using @Title annotation) is necessary as a
 
 == Members
 
-[#title]
-=== title
+[#title__]
+=== title()
 
 having a title() method (rather than using @Title annotation) is necessary as a workaround to be able to use wrapperFactory#unwrap(...) method, which is otherwise broken in Isis 1.6.0
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/secman/api/role/ApplicationRoleRepository.adoc b/antora/components/system/modules/generated/pages/index/extensions/secman/api/role/ApplicationRoleRepository.adoc
index 71c357b..22d3f1c 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/secman/api/role/ApplicationRoleRepository.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/secman/api/role/ApplicationRoleRepository.adoc
@@ -21,8 +21,8 @@ interface ApplicationRoleRepository<R> {
 }
 ----
 
-<.> xref:#newApplicationRole[newApplicationRole]
-<.> xref:#findMatching[findMatching]
+<.> xref:#newApplicationRole__[newApplicationRole()]
+<.> xref:#findMatching__String[findMatching(String)]
 +
 --
 auto-complete support
@@ -30,11 +30,11 @@ auto-complete support
 
 == Members
 
-[#newApplicationRole]
-=== newApplicationRole
+[#newApplicationRole__]
+=== newApplicationRole()
 
-[#findMatching]
-=== findMatching
+[#findMatching__String]
+=== findMatching(String)
 
 auto-complete support
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/secman/api/tenancy/ApplicationTenancyEvaluator.adoc b/antora/components/system/modules/generated/pages/index/extensions/secman/api/tenancy/ApplicationTenancyEvaluator.adoc
index b0e405f..e5f803c 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/secman/api/tenancy/ApplicationTenancyEvaluator.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/secman/api/tenancy/ApplicationTenancyEvaluator.adoc
@@ -14,7 +14,7 @@ interface ApplicationTenancyEvaluator {
 }
 ----
 
-<.> xref:#handles[handles]
+<.> xref:#handles__Class[handles(Class)]
 +
 --
 Whether this evaluator can determine the tenancy of the specified domain entity (such as `ToDoItem` ) being interacted with (the "what").
@@ -22,8 +22,8 @@ Whether this evaluator can determine the tenancy of the specified domain entity
 
 == Members
 
-[#handles]
-=== handles
+[#handles__Class]
+=== handles(Class)
 
 Whether this evaluator can determine the tenancy of the specified domain entity (such as `ToDoItem` ) being interacted with (the "what").
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/secman/api/tenancy/ApplicationTenancyRepository.adoc b/antora/components/system/modules/generated/pages/index/extensions/secman/api/tenancy/ApplicationTenancyRepository.adoc
index 827a710..84fa645 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/secman/api/tenancy/ApplicationTenancyRepository.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/secman/api/tenancy/ApplicationTenancyRepository.adoc
@@ -19,8 +19,8 @@ interface ApplicationTenancyRepository<T> {
 }
 ----
 
-<.> xref:#newApplicationTenancy[newApplicationTenancy]
-<.> xref:#findMatching[findMatching]
+<.> xref:#newApplicationTenancy__[newApplicationTenancy()]
+<.> xref:#findMatching__String[findMatching(String)]
 +
 --
 auto-complete support
@@ -28,11 +28,11 @@ auto-complete support
 
 == Members
 
-[#newApplicationTenancy]
-=== newApplicationTenancy
+[#newApplicationTenancy__]
+=== newApplicationTenancy()
 
-[#findMatching]
-=== findMatching
+[#findMatching__String]
+=== findMatching(String)
 
 auto-complete support
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/secman/api/user/ApplicationUser.adoc b/antora/components/system/modules/generated/pages/index/extensions/secman/api/user/ApplicationUser.adoc
index 41d25ad..bd7652d 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/secman/api/user/ApplicationUser.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/secman/api/user/ApplicationUser.adoc
@@ -43,7 +43,7 @@ interface ApplicationUser {
 }
 ----
 
-<.> xref:#title[title]
+<.> xref:#title__[title()]
 +
 --
 having a title() method (rather than using @Title annotation) is necessary as a workaround to be able to use wrapperFactory#unwrap(...) method, which is otherwise broken in Isis 1.6.0
@@ -51,8 +51,8 @@ having a title() method (rather than using @Title annotation) is necessary as a
 
 == Members
 
-[#title]
-=== title
+[#title__]
+=== title()
 
 having a title() method (rather than using @Title annotation) is necessary as a workaround to be able to use wrapperFactory#unwrap(...) method, which is otherwise broken in Isis 1.6.0
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/secman/api/user/ApplicationUserRepository.adoc b/antora/components/system/modules/generated/pages/index/extensions/secman/api/user/ApplicationUserRepository.adoc
index 77b5825..8e3249c 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/secman/api/user/ApplicationUserRepository.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/secman/api/user/ApplicationUserRepository.adoc
@@ -26,8 +26,8 @@ interface ApplicationUserRepository<U> {
 }
 ----
 
-<.> xref:#newApplicationUser[newApplicationUser]
-<.> xref:#findMatching[findMatching]
+<.> xref:#newApplicationUser__[newApplicationUser()]
+<.> xref:#findMatching__String[findMatching(String)]
 +
 --
 auto-complete support
@@ -35,11 +35,11 @@ auto-complete support
 
 == Members
 
-[#newApplicationUser]
-=== newApplicationUser
+[#newApplicationUser__]
+=== newApplicationUser()
 
-[#findMatching]
-=== findMatching
+[#findMatching__String]
+=== findMatching(String)
 
 auto-complete support
 
diff --git a/antora/components/system/modules/generated/pages/index/extensions/shirorealmldap/realm/impl/IsisLdapRealm.adoc b/antora/components/system/modules/generated/pages/index/extensions/shirorealmldap/realm/impl/IsisLdapRealm.adoc
index d68ab3c..a4bf5e7 100644
--- a/antora/components/system/modules/generated/pages/index/extensions/shirorealmldap/realm/impl/IsisLdapRealm.adoc
+++ b/antora/components/system/modules/generated/pages/index/extensions/shirorealmldap/realm/impl/IsisLdapRealm.adoc
@@ -96,12 +96,12 @@ class IsisLdapRealm {
 }
 ----
 
-<.> xref:#setResourcePath[setResourcePath]
+<.> xref:#setResourcePath__String[setResourcePath(String)]
 +
 --
 
 --
-<.> xref:#setPermissionsByRole[setPermissionsByRole]
+<.> xref:#setPermissionsByRole__String[setPermissionsByRole(String)]
 +
 --
 Specify permissions for each role using a formatted string.
@@ -109,8 +109,8 @@ Specify permissions for each role using a formatted string.
 
 == Members
 
-[#setResourcePath]
-=== setResourcePath
+[#setResourcePath__String]
+=== setResourcePath(String)
 
 ----
 
@@ -128,8 +128,8 @@ self-install_role = *:ToDoItemsFixturesService:install:*
 admin_role = *
 ----
 
-[#setPermissionsByRole]
-=== setPermissionsByRole
+[#setPermissionsByRole__String]
+=== setPermissionsByRole(String)
 
 Specify permissions for each role using a formatted string.
 
diff --git a/antora/components/system/modules/generated/pages/index/persistence/jdo/applib/integration/JdoSupportService.adoc b/antora/components/system/modules/generated/pages/index/persistence/jdo/applib/integration/JdoSupportService.adoc
index 5b892d6..c00e8f3 100644
--- a/antora/components/system/modules/generated/pages/index/persistence/jdo/applib/integration/JdoSupportService.adoc
+++ b/antora/components/system/modules/generated/pages/index/persistence/jdo/applib/integration/JdoSupportService.adoc
@@ -25,37 +25,37 @@ interface JdoSupportService {
 }
 ----
 
-<.> xref:#refresh[refresh]
+<.> xref:#refresh__T[refresh(T)]
 +
 --
 Force a reload (corresponding to the JDO `PersistenceManager` 's `refresh()` method) of a domain objects.
 --
-<.> xref:#deleteAll[deleteAll]
+<.> xref:#deleteAll__Class[deleteAll(Class)]
 +
 --
 Force the deletion of all instances of the specified class.
 --
-<.> xref:#executeQuery[executeQuery]
+<.> xref:#executeQuery__Class_BooleanExpression[executeQuery(Class, BooleanExpression)]
 +
 --
 To perform the most common use-case of executing a (type-safe) query against the specified class, filtering using the provided _BooleanExpression_ , then automatically cloning the returned list and closing the query.
 --
-<.> xref:#executeQueryUnique[executeQueryUnique]
+<.> xref:#executeQueryUnique__Class_BooleanExpression[executeQueryUnique(Class, BooleanExpression)]
 +
 --
 To perform a common use-case of executing a (type-safe) query against the specified class, filtering a unique match using the provided _BooleanExpression_ , then returning the result and closing the query.
 --
-<.> xref:#newTypesafeQuery[newTypesafeQuery]
+<.> xref:#newTypesafeQuery__Class[newTypesafeQuery(Class)]
 +
 --
 To support the execution of type-safe queries using DataNucleus' lower-level APIs (eg for group by and so on).
 --
-<.> xref:#disableMultivaluedFetch[disableMultivaluedFetch]
+<.> xref:#disableMultivaluedFetch__JDOQLTypedQuery[disableMultivaluedFetch(JDOQLTypedQuery)]
 +
 --
 Fetch Optimization
 --
-<.> xref:#disableMultivaluedFetch[disableMultivaluedFetch]
+<.> xref:#disableMultivaluedFetch__Query[disableMultivaluedFetch(Query)]
 +
 --
 Fetch Optimization
@@ -63,8 +63,8 @@ Fetch Optimization
 
 == Members
 
-[#refresh]
-=== refresh
+[#refresh__T]
+=== refresh(T)
 
 Force a reload (corresponding to the JDO `PersistenceManager` 's `refresh()` method) of a domain objects.
 
@@ -72,8 +72,8 @@ In fact, this may just reset the lazy-load state of the domain object, but the e
 
 The particular example that led to this method being added was a 1:m bidirectional relationship, analogous to `Customer <-> * Order` . Persisting the child `Order` object did not cause the parent `Customer` 's collection of orders to be updated. In fact, JDO does not make any such guarantee to do so. Options are therefore either to maintain the collection in code, or to refresh the parent.
 
-[#deleteAll]
-=== deleteAll
+[#deleteAll__Class]
+=== deleteAll(Class)
 
 Force the deletion of all instances of the specified class.
 
@@ -81,8 +81,8 @@ Note: this is intended primarily for testing purposes, eg clearing existing data
 
 Implementation note: It can occasionally be the case that Isis' internal adapter for the domain object is still in memory. JDO/DataNucleus seems to bump up the version of the object prior to its deletion, which under normal circumstances would cause Isis to throw a concurrency exception. Therefore To prevent this from happening (ie to _force_ the deletion of all instances), concurrency checking is temporarily disabled while this method is performed.
 
-[#executeQuery]
-=== executeQuery
+[#executeQuery__Class_BooleanExpression]
+=== executeQuery(Class, BooleanExpression)
 
 To perform the most common use-case of executing a (type-safe) query against the specified class, filtering using the provided _BooleanExpression_ , then automatically cloning the returned list and closing the query.
 
@@ -98,8 +98,8 @@ Typical usage:
     
 ----
 
-[#executeQueryUnique]
-=== executeQueryUnique
+[#executeQueryUnique__Class_BooleanExpression]
+=== executeQueryUnique(Class, BooleanExpression)
 
 To perform a common use-case of executing a (type-safe) query against the specified class, filtering a unique match using the provided _BooleanExpression_ , then returning the result and closing the query.
 
@@ -115,15 +115,15 @@ Typical usage:
     
 ----
 
-[#newTypesafeQuery]
-=== newTypesafeQuery
+[#newTypesafeQuery__Class]
+=== newTypesafeQuery(Class)
 
 To support the execution of type-safe queries using DataNucleus' lower-level APIs (eg for group by and so on).
 
 Responsibility for cloning any result sets and closing the query is the responsibility of the caller.
 
-[#disableMultivaluedFetch]
-=== disableMultivaluedFetch
+[#disableMultivaluedFetch__JDOQLTypedQuery]
+=== disableMultivaluedFetch(JDOQLTypedQuery)
 
 Fetch Optimization
 
@@ -131,8 +131,8 @@ FromDN-5.2...
 
 For RDBMS any single-valued member will be fetched in the original SQL query, but with multiple-valued members this is not supported. However what will happen is that any collection/array field will be retrieved in a single SQL query for all candidate objects (by default using an EXISTS subquery); this avoids the "N+1" problem, resulting in 1 original SQL query plus 1 SQL query per collection member. Note that you can disable this by either not putting multi-valued fields in the FetchPla [...]
 
-[#disableMultivaluedFetch]
-=== disableMultivaluedFetch
+[#disableMultivaluedFetch__Query]
+=== disableMultivaluedFetch(Query)
 
 Fetch Optimization
 
diff --git a/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/IsisModuleJdoDatanucleus.adoc b/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/IsisModuleJdoDatanucleus.adoc
index 12b63cc..c487a5d 100644
--- a/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/IsisModuleJdoDatanucleus.adoc
+++ b/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/IsisModuleJdoDatanucleus.adoc
@@ -14,12 +14,12 @@ class IsisModuleJdoDatanucleus {
 }
 ----
 
-<.> xref:#getDnJdoDialect[getDnJdoDialect]
+<.> xref:#getDnJdoDialect__DataSource[getDnJdoDialect(DataSource)]
 +
 --
 Conveniently registers this dialect as a _PersistenceExceptionTranslator_ with _Spring_ .
 --
-<.> xref:#getTransactionInterceptorFactory[getTransactionInterceptorFactory]
+<.> xref:#getTransactionInterceptorFactory__[getTransactionInterceptorFactory()]
 +
 --
 AOP PATCH
@@ -27,13 +27,13 @@ AOP PATCH
 
 == Members
 
-[#getDnJdoDialect]
-=== getDnJdoDialect
+[#getDnJdoDialect__DataSource]
+=== getDnJdoDialect(DataSource)
 
 Conveniently registers this dialect as a _PersistenceExceptionTranslator_ with _Spring_ .
 
-[#getTransactionInterceptorFactory]
-=== getTransactionInterceptorFactory
+[#getTransactionInterceptorFactory__]
+=== getTransactionInterceptorFactory()
 
 AOP PATCH
 
diff --git a/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.adoc b/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.adoc
index 006c81d..66dbb31 100644
--- a/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.adoc
+++ b/antora/components/system/modules/generated/pages/index/persistence/jdo/datanucleus/changetracking/JdoLifecycleListener.adoc
@@ -30,12 +30,12 @@ class JdoLifecycleListener {
 }
 ----
 
-<.> xref:#preClear[preClear]
+<.> xref:#preClear__InstanceLifecycleEvent[preClear(InstanceLifecycleEvent)]
 +
 --
 Does nothing, not important event for Isis to track.
 --
-<.> xref:#postClear[postClear]
+<.> xref:#postClear__InstanceLifecycleEvent[postClear(InstanceLifecycleEvent)]
 +
 --
 Does nothing, not important event for Isis to track.
@@ -43,13 +43,13 @@ Does nothing, not important event for Isis to track.
 
 == Members
 
-[#preClear]
-=== preClear
+[#preClear__InstanceLifecycleEvent]
+=== preClear(InstanceLifecycleEvent)
 
 Does nothing, not important event for Isis to track.
 
-[#postClear]
-=== postClear
+[#postClear__InstanceLifecycleEvent]
+=== postClear(InstanceLifecycleEvent)
 
 Does nothing, not important event for Isis to track.
 
diff --git a/antora/components/system/modules/generated/pages/index/persistence/jpa/applib/services/JpaSupportService.adoc b/antora/components/system/modules/generated/pages/index/persistence/jpa/applib/services/JpaSupportService.adoc
index 6ce40a7..69e4402 100644
--- a/antora/components/system/modules/generated/pages/index/persistence/jpa/applib/services/JpaSupportService.adoc
+++ b/antora/components/system/modules/generated/pages/index/persistence/jpa/applib/services/JpaSupportService.adoc
@@ -13,12 +13,12 @@ interface JpaSupportService {
 }
 ----
 
-<.> xref:#getEntityManager[getEntityManager]
+<.> xref:#getEntityManager__Class[getEntityManager(Class)]
 +
 --
 Optionally returns the current interaction's _EntityManager_ , that is bound to given _entityClass_ , based on whether an open interaction is available and a persistence layer is configured in support of JPA.
 --
-<.> xref:#getEntityManagerElseFail[getEntityManagerElseFail]
+<.> xref:#getEntityManagerElseFail__Class[getEntityManagerElseFail(Class)]
 +
 --
 Returns the current interaction's _EntityManager_ that is managing the given domain type _entityType_ .
@@ -26,13 +26,13 @@ Returns the current interaction's _EntityManager_ that is managing the given dom
 
 == Members
 
-[#getEntityManager]
-=== getEntityManager
+[#getEntityManager__Class]
+=== getEntityManager(Class)
 
 Optionally returns the current interaction's _EntityManager_ , that is bound to given _entityClass_ , based on whether an open interaction is available and a persistence layer is configured in support of JPA.
 
-[#getEntityManagerElseFail]
-=== getEntityManagerElseFail
+[#getEntityManagerElseFail__Class]
+=== getEntityManagerElseFail(Class)
 
 Returns the current interaction's _EntityManager_ that is managing the given domain type _entityType_ .
 
diff --git a/antora/components/system/modules/generated/pages/index/security/shiro/authorization/AuthorizorShiro.adoc b/antora/components/system/modules/generated/pages/index/security/shiro/authorization/AuthorizorShiro.adoc
index e467996..cd25d4c 100644
--- a/antora/components/system/modules/generated/pages/index/security/shiro/authorization/AuthorizorShiro.adoc
+++ b/antora/components/system/modules/generated/pages/index/security/shiro/authorization/AuthorizorShiro.adoc
@@ -17,12 +17,12 @@ class AuthorizorShiro {
 }
 ----
 
-<.> xref:#isVisibleInRole[isVisibleInRole]
+<.> xref:#isVisibleInRole__String_Identifier[isVisibleInRole(String, Identifier)]
 +
 --
 Returns `false` because the checking across all roles is done in _#isVisibleInAnyRole(Identifier)_ , which is always called prior to this.
 --
-<.> xref:#isUsableInRole[isUsableInRole]
+<.> xref:#isUsableInRole__String_Identifier[isUsableInRole(String, Identifier)]
 +
 --
 Returns `false` because the checking across all roles is done in _#isUsableInAnyRole(Identifier)_ , which is always called prior to this.
@@ -30,13 +30,13 @@ Returns `false` because the checking across all roles is done in _#isUsableInAny
 
 == Members
 
-[#isVisibleInRole]
-=== isVisibleInRole
+[#isVisibleInRole__String_Identifier]
+=== isVisibleInRole(String, Identifier)
 
 Returns `false` because the checking across all roles is done in _#isVisibleInAnyRole(Identifier)_ , which is always called prior to this.
 
-[#isUsableInRole]
-=== isUsableInRole
+[#isUsableInRole__String_Identifier]
+=== isUsableInRole(String, Identifier)
 
 Returns `false` because the checking across all roles is done in _#isUsableInAnyRole(Identifier)_ , which is always called prior to this.
 
diff --git a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/Chained.adoc b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/Chained.adoc
index a92d79c..537f0eb 100644
--- a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/Chained.adoc
+++ b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/Chained.adoc
@@ -11,12 +11,12 @@ interface Chained<T> {
 }
 ----
 
-<.> xref:#getPrevious[getPrevious]
+<.> xref:#getPrevious__[getPrevious()]
 +
 --
 The object (usually an xref:system:generated:index/subdomains/base/applib/with/WithInterval.adoc[WithInterval] , but not necessarily) that precedes this one, if any (not necessarily contiguously)..
 --
-<.> xref:#getNext[getNext]
+<.> xref:#getNext__[getNext()]
 +
 --
 The object (usually an xref:system:generated:index/subdomains/base/applib/with/WithInterval.adoc[WithInterval] , but not necessarily) that succeeds this one, if any (not necessarily contiguously).
@@ -24,15 +24,15 @@ The object (usually an xref:system:generated:index/subdomains/base/applib/with/W
 
 == Members
 
-[#getPrevious]
-=== getPrevious
+[#getPrevious__]
+=== getPrevious()
 
 The object (usually an xref:system:generated:index/subdomains/base/applib/with/WithInterval.adoc[WithInterval] , but not necessarily) that precedes this one, if any (not necessarily contiguously)..
 
 Implementations where successive intervals are contiguous should instead implement xref:system:generated:index/subdomains/base/applib/with/WithIntervalContiguous.adoc[WithIntervalContiguous] .
 
-[#getNext]
-=== getNext
+[#getNext__]
+=== getNext()
 
 The object (usually an xref:system:generated:index/subdomains/base/applib/with/WithInterval.adoc[WithInterval] , but not necessarily) that succeeds this one, if any (not necessarily contiguously).
 
diff --git a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/services/calendar/CalendarService.adoc b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/services/calendar/CalendarService.adoc
index ebff353..8c40d939 100644
--- a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/services/calendar/CalendarService.adoc
+++ b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/services/calendar/CalendarService.adoc
@@ -16,7 +16,7 @@ class CalendarService {
 }
 ----
 
-<.> xref:#timestamp[timestamp]
+<.> xref:#timestamp__[timestamp()]
 +
 --
 [WARNING]
@@ -29,8 +29,8 @@ class CalendarService {
 
 == Members
 
-[#timestamp]
-=== timestamp
+[#timestamp__]
+=== timestamp()
 
 [WARNING]
 ====
diff --git a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/utils/TitleBuilder.adoc b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/utils/TitleBuilder.adoc
index ca02c0a..ad49f19 100644
--- a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/utils/TitleBuilder.adoc
+++ b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/utils/TitleBuilder.adoc
@@ -18,7 +18,7 @@ class TitleBuilder {
 }
 ----
 
-<.> xref:#withTupleElement[withTupleElement]
+<.> xref:#withTupleElement__Object[withTupleElement(Object)]
 +
 --
 [WARNING]
@@ -31,8 +31,8 @@ class TitleBuilder {
 
 == Members
 
-[#withTupleElement]
-=== withTupleElement
+[#withTupleElement__Object]
+=== withTupleElement(Object)
 
 [WARNING]
 ====
diff --git a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/AbstractInterval.adoc b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/AbstractInterval.adoc
index 27bec0c..80019be 100644
--- a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/AbstractInterval.adoc
+++ b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/AbstractInterval.adoc
@@ -28,32 +28,32 @@ class AbstractInterval<T> {
 }
 ----
 
-<.> xref:#contains[contains]
+<.> xref:#contains__LocalDate[contains(LocalDate)]
 +
 --
 Does this date contain the specified time interval.
 --
-<.> xref:#contains[contains]
+<.> xref:#contains__T[contains(T)]
 +
 --
 Does this time interval contain the specified time interval.
 --
-<.> xref:#days[days]
+<.> xref:#days__[days()]
 +
 --
 The duration in days
 --
-<.> xref:#overlap[overlap]
+<.> xref:#overlap__T[overlap(T)]
 +
 --
 Gets the overlap between this interval and another interval.
 --
-<.> xref:#overlaps[overlaps]
+<.> xref:#overlaps__T[overlaps(T)]
 +
 --
 Does this time interval contain the specified time interval.
 --
-<.> xref:#within[within]
+<.> xref:#within__T[within(T)]
 +
 --
 Does this interval is within the specified interval
@@ -61,33 +61,33 @@ Does this interval is within the specified interval
 
 == Members
 
-[#contains]
-=== contains
+[#contains__LocalDate]
+=== contains(LocalDate)
 
 Does this date contain the specified time interval.
 
-[#contains]
-=== contains
+[#contains__T]
+=== contains(T)
 
 Does this time interval contain the specified time interval.
 
-[#days]
-=== days
+[#days__]
+=== days()
 
 The duration in days
 
-[#overlap]
-=== overlap
+[#overlap__T]
+=== overlap(T)
 
 Gets the overlap between this interval and another interval.
 
-[#overlaps]
-=== overlaps
+[#overlaps__T]
+=== overlaps(T)
 
 Does this time interval contain the specified time interval.
 
-[#within]
-=== within
+[#within__T]
+=== within(T)
 
 Does this interval is within the specified interval
 
diff --git a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/LocalDateInterval.adoc b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/LocalDateInterval.adoc
index 17fc2ff..020554d 100644
--- a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/LocalDateInterval.adoc
+++ b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/LocalDateInterval.adoc
@@ -21,12 +21,12 @@ class LocalDateInterval {
 }
 ----
 
-<.> xref:#parseString[parseString]
+<.> xref:#parseString__String[parseString(String)]
 +
 --
 Parse a string representation of a LocalDateInterval Since this method is only used for testing it's not heavily guarded against illegal arguments
 --
-<.> xref:#endDateFromStartDate[endDateFromStartDate]
+<.> xref:#endDateFromStartDate__LocalDate[endDateFromStartDate(LocalDate)]
 +
 --
 Returns an end date given the start date of the next adjoining interval
@@ -34,13 +34,13 @@ Returns an end date given the start date of the next adjoining interval
 
 == Members
 
-[#parseString]
-=== parseString
+[#parseString__String]
+=== parseString(String)
 
 Parse a string representation of a LocalDateInterval Since this method is only used for testing it's not heavily guarded against illegal arguments
 
-[#endDateFromStartDate]
-=== endDateFromStartDate
+[#endDateFromStartDate__LocalDate]
+=== endDateFromStartDate(LocalDate)
 
 Returns an end date given the start date of the next adjoining interval
 
diff --git a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/VT.adoc b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/VT.adoc
index 566d6ba..ddbbe5a 100644
--- a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/VT.adoc
+++ b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/valuetypes/VT.adoc
@@ -41,10 +41,10 @@ class VT {
 }
 ----
 
-<.> xref:#ld[ld]
+<.> xref:#ld__String[ld(String)]
 
 == Members
 
-[#ld]
-=== ld
+[#ld__String]
+=== ld(String)
 
diff --git a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/with/WithInterval.adoc b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/with/WithInterval.adoc
index a3ed3bf..a3c3edc 100644
--- a/antora/components/system/modules/generated/pages/index/subdomains/base/applib/with/WithInterval.adoc
+++ b/antora/components/system/modules/generated/pages/index/subdomains/base/applib/with/WithInterval.adoc
@@ -16,12 +16,12 @@ interface WithInterval<T> {
 }
 ----
 
-<.> xref:#getStartDate[getStartDate]
+<.> xref:#getStartDate__[getStartDate()]
 +
 --
 The start date of the interval.
 --
-<.> xref:#getEndDate[getEndDate]
+<.> xref:#getEndDate__[getEndDate()]
 +
 --
 The end date of the interval.
... 6799 lines suppressed ...