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 2019/10/22 21:04:29 UTC

[isis] 01/02: ISIS-2062: converts rg to use distributed component pattern

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

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

commit a6d222ddf69f5b5e3cb76aa1b84930877265087e
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Tue Oct 22 21:49:34 2019 +0100

    ISIS-2062: converts rg to use distributed component pattern
---
 antora/components/refguide/modules/ROOT/nav.adoc   |   2 +-
 .../refguide/modules/ROOT/pages/about.adoc         |  10 +-
 .../modules/ROOT/partials/component-nav.adoc       |   6 ++
 .../refguide/modules/ROOT/partials/module-nav.adoc |   1 +
 .../refguide/modules/ROOT/partials/nav.adoc        |   6 --
 .../security/modules/ROOT/pages/about.adoc         |   6 +-
 .../modules/ROOT/pages/api-for-applications.adoc   |   2 +-
 .../testing/modules/ROOT/pages/overview.adoc       |   4 +-
 antora/components/toc/modules/ROOT/nav.adoc        |  10 +-
 .../components/toc/modules/ROOT/pages/about.adoc   |  10 +-
 .../components/toc/modules/ROOT/pages/guides.adoc  |  10 +-
 .../pages/what-is-apache-isis/screencasts.adoc     |  52 ++++-----
 .../how-run-fixtures-on-app-startup.adoc           |   2 +-
 .../toc/modules/devguide/pages/project-lombok.adoc |   4 +-
 .../modules/btb/pages/deployment/cmd-line.adoc     |   4 +-
 .../modules/btb/pages/deployment/docker.adoc       |   2 +-
 .../deployment/externalized-configuration.adoc     |   4 +-
 .../modules/btb/pages/headless-access.adoc         |   2 +-
 .../BackgroundCommandExecution.adoc                |   4 +-
 .../btb/pages/hints-and-tips/are-you-sure.adoc     |   4 +-
 .../how-to-handle-void-and-null-results.adoc       |   4 +-
 .../how-to-implement-a-spellchecker.adoc           |   8 +-
 .../btb/pages/hints-and-tips/persisted-title.adoc  |   2 +-
 .../btb/pages/hints-and-tips/pushing-changes.adoc  |   4 +-
 .../replacing-default-service-implementations.adoc |   6 +-
 .../simulating-collections-of-values.adoc          |   2 +-
 .../hints-and-tips/transactions-and-errors.adoc    |   8 +-
 .../pages/hints-and-tips/vetoing-visibility.adoc   |   2 +-
 .../hints-and-tips/view-model-instantiation.adoc   |   4 +-
 .../userguide/modules/btb/pages/i18n.adoc          |  14 +--
 .../pages/programming-model/custom-validator.adoc  |   2 +-
 .../userguide/modules/btb/pages/web-xml.adoc       |   4 +-
 .../framework-provided.adoc                        | 108 +++++++++----------
 .../modules/fun/pages/building-blocks/events.adoc  |   6 +-
 .../building-blocks/events/domain-events.adoc      |   6 +-
 .../building-blocks/events/lifecycle-events.adoc   |   4 +-
 .../pages/building-blocks/events/ui-events.adoc    |   4 +-
 .../fun/pages/building-blocks/identifiers/oid.adoc |  12 +--
 .../types-of-domain-objects/view-models.adoc       |   2 +-
 .../fun/pages/business-rules/side-effects.adoc     |   2 +-
 .../fun/pages/business-rules/usability.adoc        |   4 +-
 .../modules/fun/pages/business-rules/validity.adoc |   4 +-
 .../fun/pages/business-rules/visibility.adoc       |   2 +-
 .../pages/core-concepts/apache-isis-vs/cqrs.adoc   |   4 +-
 .../apache-isis-vs/event-sourcing.adoc             |   4 +-
 .../pages/core-concepts/deployment-options.adoc    |   2 +-
 .../principles/for-the-long-term.adoc              |   4 +-
 .../userguide/modules/fun/pages/crud.adoc          |   2 +-
 .../userguide/modules/fun/pages/crud/deleting.adoc |   4 +-
 .../userguide/modules/fun/pages/crud/finding.adoc  |   6 +-
 .../modules/fun/pages/crud/instantiating.adoc      |   4 +-
 .../modules/fun/pages/crud/persisting.adoc         |   4 +-
 .../userguide/modules/fun/pages/crud/updating.adoc |   4 +-
 .../modules/fun/pages/drop-downs-and-defaults.adoc |  10 +-
 .../fun/pages/programming-model/actions.adoc       |  30 +++---
 .../domain-services/event-subscribers.adoc         |   2 +-
 .../domain-services/initialization.adoc            |   4 +-
 .../programming-model/domain-services/menu.adoc    |   8 +-
 .../domain-services/registering.adoc               |   6 +-
 .../domain-services/repository-and-factory.adoc    |   2 +-
 .../domain-services/scoped-services.adoc           |   4 +-
 .../pages/programming-model/inject-services.adoc   |   2 +-
 .../fun/pages/programming-model/mixins.adoc        |   2 +-
 .../mixins/programmatic-usage.adoc                 |   2 +-
 .../fun/pages/programming-model/properties.adoc    |   2 +-
 .../pages/programming-model/view-models/dto.adoc   |   2 +-
 .../view-models/dto/dto-consumers.adoc             |   6 +-
 .../pages/programming-model/view-models/jaxb.adoc  |   4 +-
 .../jaxb/referencing-domain-entities.adoc          |   8 +-
 .../programming-model/view-models/non-jaxb.adoc    |   6 +-
 .../fun/pages/ui-hints/action-icons-and-css.adoc   |  14 +--
 .../fun/pages/ui-hints/eager-rendering.adoc        |   2 +-
 .../fun/pages/ui-hints/names-and-descriptions.adoc |  20 ++--
 .../pages/ui-hints/object-titles-and-icons.adoc    |  20 ++--
 core/applib/_adoc/antora.yml                       |   6 +-
 core/applib/_adoc/modules/ROOT/_attributes.adoc    |   6 --
 core/applib/_adoc/modules/ROOT/nav.adoc            |   1 -
 .../_adoc/modules/ROOT/pages/_attributes.adoc      |   4 -
 core/applib/_adoc/modules/ROOT/pages/about.adoc    |   7 --
 .../_adoc/modules/ROOT/partials/_attributes.adoc   |   4 -
 core/applib/_adoc/modules/ant/nav.adoc             |   2 +-
 core/applib/_adoc/modules/ant/pages/Action.adoc    |  30 +++---
 .../_adoc/modules/ant/pages/Action/command.adoc    |  12 +--
 .../modules/ant/pages/Action/domainEvent.adoc      |  10 +-
 .../_adoc/modules/ant/pages/Action/hidden.adoc     |   8 +-
 .../_adoc/modules/ant/pages/Action/publishing.adoc |   8 +-
 .../_adoc/modules/ant/pages/Action/restrictTo.adoc |   2 +-
 .../_adoc/modules/ant/pages/Action/semantics.adoc  |   2 +-
 .../_adoc/modules/ant/pages/Action/typeOf.adoc     |   2 +-
 .../_adoc/modules/ant/pages/ActionLayout.adoc      |  24 ++---
 .../ant/pages/ActionLayout/bookmarking.adoc        |   6 +-
 .../ant/pages/ActionLayout/contributedAs.adoc      |   4 +-
 .../modules/ant/pages/ActionLayout/cssClass.adoc   |  14 +--
 .../modules/ant/pages/ActionLayout/cssClassFa.adoc |   4 +-
 .../ant/pages/ActionLayout/describedAs.adoc        |  10 +-
 .../modules/ant/pages/ActionLayout/hidden.adoc     |   8 +-
 .../modules/ant/pages/ActionLayout/named.adoc      |  12 +--
 .../modules/ant/pages/ActionLayout/position.adoc   |   2 +-
 .../modules/ant/pages/ActionLayout/redirect.adoc   |   4 +-
 .../applib/_adoc/modules/ant/pages/Collection.adoc |  14 +--
 .../modules/ant/pages/Collection/domainEvent.adoc  |  12 +--
 .../modules/ant/pages/Collection/editing.adoc      |  12 +--
 .../_adoc/modules/ant/pages/Collection/hidden.adoc |   6 +-
 .../modules/ant/pages/Collection/notPersisted.adoc |   4 +-
 .../_adoc/modules/ant/pages/Collection/typeOf.adoc |   2 +-
 .../_adoc/modules/ant/pages/CollectionLayout.adoc  |  18 ++--
 .../ant/pages/CollectionLayout/cssClass.adoc       |  12 +--
 .../ant/pages/CollectionLayout/defaultView.adoc    |   2 +-
 .../ant/pages/CollectionLayout/describedAs.adoc    |   2 +-
 .../modules/ant/pages/CollectionLayout/hidden.adoc |   6 +-
 .../modules/ant/pages/CollectionLayout/named.adoc  |  12 +--
 .../modules/ant/pages/CollectionLayout/paged.adoc  |   6 +-
 core/applib/_adoc/modules/ant/pages/Column.adoc    |  10 +-
 core/applib/_adoc/modules/ant/pages/Digits.adoc    |   2 +-
 .../_adoc/modules/ant/pages/Discriminator.adoc     |  10 +-
 .../_adoc/modules/ant/pages/DomainObject.adoc      |  44 ++++----
 .../ant/pages/DomainObject/actionDomainEvent.adoc  |   2 +-
 .../modules/ant/pages/DomainObject/auditing.adoc   |   4 +-
 .../pages/DomainObject/autoCompleteRepository.adoc |  10 +-
 .../modules/ant/pages/DomainObject/bounding.adoc   |   2 +-
 .../pages/DomainObject/collectionDomainEvent.adoc  |   2 +-
 .../pages/DomainObject/createdLifecycleEvent.adoc  |   8 +-
 .../modules/ant/pages/DomainObject/editing.adoc    |   2 +-
 .../pages/DomainObject/loadedLifecycleEvent.adoc   |   4 +-
 .../modules/ant/pages/DomainObject/nature.adoc     |   6 +-
 .../modules/ant/pages/DomainObject/objectType.adoc |  10 +-
 .../DomainObject/persistedLifecycleEvent.adoc      |   4 +-
 .../DomainObject/persistingLifecycleEvent.adoc     |   6 +-
 .../pages/DomainObject/propertyDomainEvent.adoc    |   2 +-
 .../modules/ant/pages/DomainObject/publishing.adoc |   8 +-
 .../pages/DomainObject/removingLifecycleEvent.adoc |   6 +-
 .../pages/DomainObject/updatedLifecycleEvent.adoc  |   4 +-
 .../pages/DomainObject/updatingLifecycleEvent.adoc |   6 +-
 .../modules/ant/pages/DomainObjectLayout.adoc      |  34 +++---
 .../ant/pages/DomainObjectLayout/bookmarking.adoc  |   4 +-
 .../ant/pages/DomainObjectLayout/cssClass.adoc     |  14 +--
 .../ant/pages/DomainObjectLayout/cssClassFa.adoc   |   8 +-
 .../pages/DomainObjectLayout/cssClassUiEvent.adoc  |  12 +--
 .../ant/pages/DomainObjectLayout/describedAs.adoc  |  10 +-
 .../ant/pages/DomainObjectLayout/iconUiEvent.adoc  |  12 +--
 .../pages/DomainObjectLayout/layoutUiEvent.adoc    |  10 +-
 .../ant/pages/DomainObjectLayout/named.adoc        |  14 +--
 .../ant/pages/DomainObjectLayout/paged.adoc        |   6 +-
 .../ant/pages/DomainObjectLayout/plural.adoc       |   2 +-
 .../ant/pages/DomainObjectLayout/titleUiEvent.adoc |  12 +--
 .../_adoc/modules/ant/pages/DomainService.adoc     |  10 +-
 .../modules/ant/pages/DomainService/nature.adoc    |   4 +-
 .../ant/pages/DomainService/objectType.adoc        |   6 +-
 .../ant/pages/DomainService/repositoryFor.adoc     |   2 +-
 .../modules/ant/pages/DomainServiceLayout.adoc     |   6 +-
 .../ant/pages/DomainServiceLayout/menuBar.adoc     |   2 +-
 .../ant/pages/DomainServiceLayout/menuOrder.adoc   |   4 +-
 .../ant/pages/DomainServiceLayout/named.adoc       |  14 +--
 core/applib/_adoc/modules/ant/pages/Inject.adoc    |   8 +-
 .../_adoc/modules/ant/pages/MemberGroupLayout.adoc |   2 +-
 .../_adoc/modules/ant/pages/MemberOrder.adoc       |   8 +-
 core/applib/_adoc/modules/ant/pages/MinLength.adoc |   2 +-
 core/applib/_adoc/modules/ant/pages/Mixin.adoc     |   4 +-
 core/applib/_adoc/modules/ant/pages/Nullable.adoc  |  10 +-
 core/applib/_adoc/modules/ant/pages/Parameter.adoc |  14 +--
 .../modules/ant/pages/Parameter/fileAccept.adoc    |   6 +-
 .../modules/ant/pages/Parameter/maxLength.adoc     |   2 +-
 .../modules/ant/pages/Parameter/mustSatisfy.adoc   |   4 +-
 .../modules/ant/pages/Parameter/optionality.adoc   |   4 +-
 .../modules/ant/pages/Parameter/regexPattern.adoc  |   2 +-
 .../_adoc/modules/ant/pages/ParameterLayout.adoc   |  20 ++--
 .../ant/pages/ParameterLayout/cssClass.adoc        |  14 +--
 .../ant/pages/ParameterLayout/describedAs.adoc     |   2 +-
 .../ant/pages/ParameterLayout/labelPosition.adoc   |   6 +-
 .../ant/pages/ParameterLayout/multiLine.adoc       |   4 +-
 .../modules/ant/pages/ParameterLayout/named.adoc   |  12 +--
 .../pages/ParameterLayout/renderedAsDayBefore.adoc |   2 +-
 .../ant/pages/ParameterLayout/typicalLength.adoc   |   2 +-
 .../modules/ant/pages/PersistenceCapable.adoc      |  10 +-
 .../_adoc/modules/ant/pages/PostConstruct.adoc     |  12 +--
 .../applib/_adoc/modules/ant/pages/PreDestroy.adoc |  10 +-
 .../applib/_adoc/modules/ant/pages/PrimaryKey.adoc |   2 +-
 .../_adoc/modules/ant/pages/Programmatic.adoc      |   2 +-
 core/applib/_adoc/modules/ant/pages/Property.adoc  |  42 ++++----
 .../_adoc/modules/ant/pages/Property/command.adoc  |  14 +--
 .../modules/ant/pages/Property/domainEvent.adoc    |  10 +-
 .../_adoc/modules/ant/pages/Property/editing.adoc  |   8 +-
 .../modules/ant/pages/Property/fileAccept.adoc     |   4 +-
 .../_adoc/modules/ant/pages/Property/hidden.adoc   |   8 +-
 .../modules/ant/pages/Property/maxLength.adoc      |   4 +-
 .../modules/ant/pages/Property/mustSatisfy.adoc    |   4 +-
 .../modules/ant/pages/Property/notPersisted.adoc   |   4 +-
 .../modules/ant/pages/Property/optionality.adoc    |   8 +-
 .../modules/ant/pages/Property/publishing.adoc     |   8 +-
 .../modules/ant/pages/Property/regexPattern.adoc   |   2 +-
 .../_adoc/modules/ant/pages/PropertyLayout.adoc    |  32 +++---
 .../modules/ant/pages/PropertyLayout/cssClass.adoc |  12 +--
 .../ant/pages/PropertyLayout/describedAs.adoc      |   2 +-
 .../modules/ant/pages/PropertyLayout/hidden.adoc   |   8 +-
 .../ant/pages/PropertyLayout/labelPosition.adoc    |   6 +-
 .../ant/pages/PropertyLayout/multiLine.adoc        |   4 +-
 .../modules/ant/pages/PropertyLayout/named.adoc    |  12 +--
 .../pages/PropertyLayout/renderedAsDayBefore.adoc  |   2 +-
 .../ant/pages/PropertyLayout/typicalLength.adoc    |   2 +-
 .../ant/pages/PropertyLayout/unchanging.adoc       |   2 +-
 .../_adoc/modules/ant/pages/RequestScoped.adoc     |   4 +-
 core/applib/_adoc/modules/ant/pages/ViewModel.adoc |  12 +--
 .../modules/ant/pages/ViewModel/objectType.adoc    |  12 +--
 .../_adoc/modules/ant/pages/ViewModelLayout.adoc   |  36 +++----
 .../ant/pages/ViewModelLayout/bookmarking.adoc     |   2 +-
 .../ant/pages/ViewModelLayout/cssClass.adoc        |   4 +-
 .../ant/pages/ViewModelLayout/cssClassFa.adoc      |   2 +-
 .../ant/pages/ViewModelLayout/cssClassUiEvent.adoc |   2 +-
 .../ant/pages/ViewModelLayout/describedAs.adoc     |   2 +-
 .../ant/pages/ViewModelLayout/iconUiEvent.adoc     |   4 +-
 .../ant/pages/ViewModelLayout/layoutUiEvent.adoc   |   2 +-
 .../modules/ant/pages/ViewModelLayout/named.adoc   |   2 +-
 .../modules/ant/pages/ViewModelLayout/paged.adoc   |   2 +-
 .../modules/ant/pages/ViewModelLayout/plural.adoc  |   2 +-
 .../ant/pages/ViewModelLayout/titleUiEvent.adoc    |   2 +-
 .../modules/ant/pages/XmlJavaTypeAdapter.adoc      |   2 +-
 .../_adoc/modules/ant/pages/XmlRootElement.adoc    |  12 +--
 core/applib/_adoc/modules/ant/pages/aaa/jdo.adoc   |  14 +--
 core/applib/_adoc/modules/ant/pages/aaa/jee.adoc   |  24 ++---
 core/applib/_adoc/modules/ant/pages/aaa/main.adoc  |  28 ++---
 core/applib/_adoc/modules/ant/pages/aaa/other.adoc |  12 +--
 .../_adoc/modules/ant/partials/module-nav.adoc     |  40 +++++++
 core/applib/_adoc/modules/ant/partials/nav.adoc    |  40 -------
 core/applib/_adoc/modules/cms/nav.adoc             |   2 +-
 core/applib/_adoc/modules/cms/pages/about.adoc     |   4 +-
 core/applib/_adoc/modules/cms/pages/classes.adoc   |   2 +-
 .../pages/classes/AppManifest-bootstrapping.adoc   |  10 +-
 .../pages/classes/AppManifest2-bootstrapping.adoc  |  16 +--
 .../classes/contributee/HasTransactionId.adoc      |   8 +-
 .../modules/cms/pages/classes/domainevent.adoc     |  12 +--
 .../classes/domainevent/AbstractDomainEvent.adoc   |   6 +-
 .../classes/domainevent/ActionDomainEvent.adoc     |   8 +-
 .../classes/domainevent/CollectionDomainEvent.adoc |   4 +-
 .../classes/domainevent/PropertyDomainEvent.adoc   |   4 +-
 .../_adoc/modules/cms/pages/classes/layout.adoc    |  12 +--
 .../modules/cms/pages/classes/lifecycleevent.adoc  |  28 ++---
 .../lifecycleevent/AbstractLifecycleEvent.adoc     |  14 +--
 .../classes/lifecycleevent/ObjectCreatedEvent.adoc |   4 +-
 .../classes/lifecycleevent/ObjectLoadedEvent.adoc  |   2 +-
 .../lifecycleevent/ObjectPersistedEvent.adoc       |   4 +-
 .../lifecycleevent/ObjectPersistingEvent.adoc      |   4 +-
 .../lifecycleevent/ObjectRemovingEvent.adoc        |   4 +-
 .../classes/lifecycleevent/ObjectUpdatedEvent.adoc |   6 +-
 .../lifecycleevent/ObjectUpdatingEvent.adoc        |   6 +-
 .../_adoc/modules/cms/pages/classes/menubars.adoc  |  10 +-
 .../modules/cms/pages/classes/mixins/Dto.adoc      |  12 +--
 .../modules/cms/pages/classes/mixins/Object.adoc   |  16 +--
 .../cms/pages/classes/mixins/Persistable.adoc      |   6 +-
 .../cms/pages/classes/roles/HoldsUpdatedAt.adoc    |   4 +-
 .../cms/pages/classes/roles/HoldsUpdatedBy.adoc    |   2 +-
 .../cms/pages/classes/roles/Timestampable.adoc     |   4 +-
 .../_adoc/modules/cms/pages/classes/spec.adoc      |   4 +-
 .../_adoc/modules/cms/pages/classes/super.adoc     |  12 +--
 .../cms/pages/classes/super/AbstractService.adoc   |   2 +-
 .../pages/classes/super/AbstractSubscriber.adoc    |  10 +-
 .../cms/pages/classes/super/AbstractViewModel.adoc |   2 +-
 .../cms/pages/classes/super/FixtureScripts.adoc    |   4 +-
 .../_adoc/modules/cms/pages/classes/uievent.adoc   |  16 +--
 .../cms/pages/classes/uievent/CssClassUiEvent.adoc |   2 +-
 .../cms/pages/classes/uievent/IconUiEvent.adoc     |   4 +-
 .../cms/pages/classes/uievent/TitleUiEvent.adoc    |   4 +-
 .../cms/pages/classes/utility/TitleBuffer.adoc     |   2 +-
 .../cms/pages/classes/value-types/Blob.adoc        |   2 +-
 .../cms/pages/classes/value-types/Clob.adoc        |   2 +-
 core/applib/_adoc/modules/cms/pages/methods.adoc   |   2 +-
 .../_adoc/modules/cms/pages/methods/lifecycle.adoc |  20 ++--
 .../cms/pages/methods/lifecycle/created.adoc       |   4 +-
 .../cms/pages/methods/lifecycle/jdo-api.adoc       |   4 +-
 .../cms/pages/methods/lifecycle/loaded.adoc        |   2 +-
 .../cms/pages/methods/lifecycle/persisted.adoc     |   4 +-
 .../cms/pages/methods/lifecycle/persisting.adoc    |   4 +-
 .../cms/pages/methods/lifecycle/removed.adoc       |   4 +-
 .../cms/pages/methods/lifecycle/removing.adoc      |   4 +-
 .../cms/pages/methods/lifecycle/updated.adoc       |   4 +-
 .../cms/pages/methods/lifecycle/updating.adoc      |   4 +-
 .../_adoc/modules/cms/pages/methods/prefixes.adoc  |  50 ++++-----
 .../modules/cms/pages/methods/prefixes/addTo.adoc  |   2 +-
 .../cms/pages/methods/prefixes/autoComplete.adoc   |   6 +-
 .../cms/pages/methods/prefixes/choices.adoc        |   2 +-
 .../modules/cms/pages/methods/prefixes/clear.adoc  |   2 +-
 .../cms/pages/methods/prefixes/default.adoc        |   4 +-
 .../modules/cms/pages/methods/prefixes/get.adoc    |   2 +-
 .../modules/cms/pages/methods/prefixes/hide.adoc   |   2 +-
 .../modules/cms/pages/methods/prefixes/modify.adoc |   2 +-
 .../cms/pages/methods/prefixes/removeFrom.adoc     |   2 +-
 .../modules/cms/pages/methods/prefixes/set.adoc    |   2 +-
 .../cms/pages/methods/prefixes/validateAddTo.adoc  |   2 +-
 .../pages/methods/prefixes/validateRemoveFrom.adoc |   2 +-
 .../_adoc/modules/cms/pages/methods/reserved.adoc  |  16 +--
 .../cms/pages/methods/reserved/cssClass.adoc       |  10 +-
 .../cms/pages/methods/reserved/disable.adoc        |   4 +-
 .../modules/cms/pages/methods/reserved/getId.adoc  |   8 +-
 .../modules/cms/pages/methods/reserved/hide.adoc   |   6 +-
 .../cms/pages/methods/reserved/iconName.adoc       |   8 +-
 .../modules/cms/pages/methods/reserved/layout.adoc |   8 +-
 .../modules/cms/pages/methods/reserved/title.adoc  |  12 +--
 .../_adoc/modules/cms/partials/module-nav.adoc     |   6 ++
 core/applib/_adoc/modules/cms/partials/nav.adoc    |   6 --
 core/applib/_adoc/modules/svc/nav.adoc             |   2 +-
 .../modules/svc/pages/application-layer-api.adoc   |  28 ++---
 .../ActionInvocationContext.adoc                   |   8 +-
 .../application-layer-api/BackgroundService.adoc   |  26 ++---
 .../application-layer-api/CommandContext.adoc      |  40 +++----
 .../CommandExecutorService.adoc                    |   6 +-
 .../application-layer-api/DtoMappingHelper.adoc    |   4 +-
 .../application-layer-api/InteractionContext.adoc  |  36 +++----
 .../application-layer-api/MessageService.adoc      |   2 +-
 .../SessionManagementService.adoc                  |   2 +-
 .../application-layer-api/TransactionService.adoc  |   4 +-
 .../application-layer-api/WrapperFactory.adoc      |   8 +-
 .../modules/svc/pages/application-layer-spi.adoc   |  10 +-
 .../BackgroundCommandService.adoc                  |  20 ++--
 .../application-layer-spi/CommandService.adoc      |  26 ++---
 .../HomePageProviderService.adoc                   |   4 +-
 .../_adoc/modules/svc/pages/bootstrapping-spi.adoc |   6 +-
 .../bootstrapping-spi/ClassDiscoveryService.adoc   |   8 +-
 .../_adoc/modules/svc/pages/core-domain-api.adoc   |  18 ++--
 .../svc/pages/core-domain-api/ClockService.adoc    |   4 +-
 .../core-domain-api/ConfigurationService.adoc      |   4 +-
 .../svc/pages/core-domain-api/EventBusService.adoc |  38 +++----
 .../svc/pages/core-domain-api/FactoryService.adoc  |  10 +-
 .../svc/pages/core-domain-api/Scratchpad.adoc      |   6 +-
 .../svc/pages/core-domain-api/UserService.adoc     |   2 +-
 .../_adoc/modules/svc/pages/integration-api.adoc   |  12 +--
 .../svc/pages/integration-api/BookmarkService.adoc |  10 +-
 .../svc/pages/integration-api/EmailService.adoc    |  14 +--
 .../svc/pages/integration-api/JaxbService.adoc     |   8 +-
 .../svc/pages/integration-api/MementoService.adoc  |   6 +-
 .../pages/integration-api/XmlSnapshotService.adoc  |   8 +-
 core/applib/_adoc/modules/svc/pages/intro.adoc     |  52 ++++-----
 .../_adoc/modules/svc/pages/metadata-api.adoc      |  10 +-
 .../svc/pages/metadata-api/LayoutService.adoc      |  14 +--
 .../svc/pages/metadata-api/MetamodelService.adoc   |   4 +-
 .../svc/pages/metadata-api/ServiceRegistry.adoc    |   4 +-
 .../svc/pages/metadata-api/SwaggerService.adoc     |   4 +-
 .../modules/svc/pages/persistence-layer-api.adoc   |   8 +-
 .../persistence-layer-api/IsisJdoSupport.adoc      |  10 +-
 .../persistence-layer-api/MetricsService.adoc      |   6 +-
 .../persistence-layer-api/QueryResultsCache.adoc   |   4 +-
 .../persistence-layer-api/RepositoryService.adoc   |  10 +-
 .../modules/svc/pages/persistence-layer-spi.adoc   |   8 +-
 .../persistence-layer-spi/AuditerService.adoc      |   8 +-
 .../persistence-layer-spi/PublisherService.adoc    |  28 ++---
 .../UserRegistrationService.adoc                   |   8 +-
 .../modules/svc/pages/presentation-layer-api.adoc  |   8 +-
 .../AcceptHeaderService.adoc                       |  12 +--
 .../presentation-layer-api/DeepLinkService.adoc    |   4 +-
 .../presentation-layer-api/GuiceBeanProvider.adoc  |   4 +-
 .../modules/svc/pages/presentation-layer-spi.adoc  |  44 ++++----
 .../ContentMappingService.adoc                     |  10 +-
 .../EmailNotificationService.adoc                  |   8 +-
 .../ErrorReportingService.adoc                     |   4 +-
 .../presentation-layer-spi/GridLoaderService.adoc  |   6 +-
 .../pages/presentation-layer-spi/GridService.adoc  |  24 ++---
 .../presentation-layer-spi/GridSystemService.adoc  |  12 +--
 .../pages/presentation-layer-spi/HintStore.adoc    |   6 +-
 .../presentation-layer-spi/LocaleProvider.adoc     |   6 +-
 .../MenuBarsLoaderService.adoc                     |   4 +-
 .../presentation-layer-spi/MenuBarsService.adoc    |   4 +-
 .../presentation-layer-spi/RoutingService.adoc     |  10 +-
 .../TableColumnOrderService.adoc                   |   4 +-
 .../presentation-layer-spi/TranslationService.adoc |   2 +-
 .../TranslationsResolver.adoc                      |   4 +-
 .../presentation-layer-spi/UrlEncodingService.adoc |   4 +-
 core/applib/_adoc/modules/svc/pages/testing.adoc   |  16 +--
 .../pages/testing/ExecutionParametersService.adoc  |   2 +-
 .../modules/svc/pages/testing/FixtureScripts.adoc  |   6 +-
 .../FixtureScriptsSpecificationProvider.adoc       |   2 +-
 .../modules/svc/pages/testing/SudoService.adoc     |  10 +-
 .../svc/pages/testing/SwitchUserService.adoc       |   2 +-
 .../_adoc/modules/svc/partials/module-nav.adoc     | 120 +++++++++++++++++++++
 core/applib/_adoc/modules/svc/partials/nav.adoc    | 120 ---------------------
 core/config/_adoc/antora.yml                       |   6 +-
 core/config/_adoc/modules/ROOT/nav.adoc            |   1 -
 core/config/_adoc/modules/ROOT/partials/nav.adoc   |   7 --
 .../_adoc/modules/cfg}/_attributes.adoc            |   0
 .../_adoc/modules/cfg/attachments}/.gitkeep        |   0
 .../_adoc/modules/cfg/examples}/.gitkeep           |   0
 .../_adoc/modules/{ROOT => cfg}/images/.gitkeep    |   0
 core/config/_adoc/modules/cfg/nav.adoc             |   1 +
 .../_adoc/modules/cfg/pages}/_attributes.adoc      |   0
 .../_adoc/modules/{ROOT => cfg}/pages/about.adoc   |   0
 .../{ROOT => cfg}/pages/configuration-files.adoc   |   0
 .../{ROOT => cfg}/pages/configuring-core.adoc      |  60 +++++------
 .../{ROOT => cfg}/pages/deployment-types.adoc      |   2 +-
 .../{ROOT => cfg}/pages/specifying-components.adoc |   2 +-
 .../_adoc/modules/cfg/partials}/_attributes.adoc   |   0
 .../_adoc/modules/cfg/partials/module-nav.adoc     |   7 ++
 .../disabling-persistence-by-reachability.adoc     |   2 +-
 .../modules/ROOT/pages/configuring/properties.adoc |   2 +-
 .../modules/ROOT/pages/application-layer.adoc      |   6 +-
 .../AuthenticationSessionProvider.adoc             |   2 +-
 .../CommandDtoServiceInternal.adoc                 |  14 +--
 .../InteractionDtoServiceInternal.adoc             |   6 +-
 .../modules/ROOT/pages/persistence-layer.adoc      |   4 +-
 .../persistence-layer/AuditingServiceInternal.adoc |  10 +-
 .../ChangedObjectsServiceInternal.adoc             |   2 +-
 .../PublishingServiceInternal.adoc                 |  18 ++--
 .../modules/ROOT/pages/presentation-layer.adoc     |   2 +-
 .../ContentNegotiationService.adoc                 |   8 +-
 .../presentation-layer/RepresentationService.adoc  |   6 +-
 core/schema/_adoc/antora.yml                       |   6 +-
 core/schema/_adoc/modules/ROOT/nav.adoc            |   1 -
 core/schema/_adoc/modules/ROOT/partials/nav.adoc   |   7 --
 .../_adoc/modules/schema}/_attributes.adoc         |   0
 .../_adoc/modules/schema/attachments}/.gitkeep     |   0
 .../_adoc/modules/schema/examples}/.gitkeep        |   0
 .../reference-classes/issue-in-more-detail.png     | Bin
 .../prefixes/choices/dependent.png                 | Bin
 .../reserved/cssClass/strikethrough.png            | Bin
 .../reserved/iconName/differing.pdn                | Bin
 .../reserved/iconName/differing.png                | Bin
 .../reserved/iconName/png-files.png                | Bin
 .../{ROOT => schema}/images/value-types/markup.png | Bin
 core/schema/_adoc/modules/schema/nav.adoc          |   1 +
 .../_adoc/modules/schema/pages}/_attributes.adoc   |   0
 .../modules/{ROOT => schema}/pages/about.adoc      |  10 +-
 .../_adoc/modules/{ROOT => schema}/pages/aim.adoc  |   4 +-
 .../_adoc/modules/{ROOT => schema}/pages/chg.adoc  |  10 +-
 .../_adoc/modules/{ROOT => schema}/pages/cmd.adoc  |  10 +-
 .../modules/{ROOT => schema}/pages/common.adoc     |  18 ++--
 .../_adoc/modules/{ROOT => schema}/pages/ixn.adoc  |  26 ++---
 .../_adoc/modules/{ROOT => schema}/pages/mml.adoc  |   0
 .../modules/schema/partials}/_attributes.adoc      |   0
 .../_adoc/modules/schema/partials/module-nav.adoc  |   7 ++
 .../pages/integ-test-support/abstract-class.adoc   |   2 +-
 .../pages/integ-test-support/bootstrapping.adoc    |   2 +-
 .../configuration-properties.adoc                  |   2 +-
 .../pages/integ-test-support/typical-usage.adoc    |   2 +-
 .../pages/integ-test-support/wrapper-factory.adoc  |   4 +-
 .../mavenplugin/_adoc/modules/mvn/pages/intro.adoc |  10 +-
 .../_adoc/modules/mvn/pages/swagger.adoc           |   2 +-
 .../mavenplugin/_adoc/modules/mvn/pages/xsd.adoc   |  14 +--
 .../pages/unit-test-support/contract-tests.adoc    |   2 +-
 .../_adoc/modules/ROOT/pages/architecture.adoc     |   2 +-
 .../_adoc/modules/ROOT/pages/health-check.adoc     |   2 +-
 .../hints-and-tips/restful-image-property.adoc     |   2 +-
 .../_adoc/modules/ROOT/pages/layout-resources.adoc |  10 +-
 .../_adoc/modules/ROOT/pages/ro-spec.adoc          |   2 +-
 .../ROOT/pages/configuration-properties.adoc       |  12 +--
 .../modules/ROOT/pages/extending/custom-pages.adoc |   4 +-
 .../ROOT/pages/features/blob-attachments.adoc      |   2 +-
 .../ROOT/pages/features/bookmarked-pages.adoc      |   6 +-
 .../ROOT/pages/features/user-registration.adoc     |  12 +--
 .../i18n-label-in-wicket-viewer.adoc               |   2 +-
 .../ROOT/pages/layout/annotation-based.adoc        |  26 ++---
 .../modules/ROOT/pages/layout/file-based.adoc      |  24 ++---
 .../modules/ROOT/pages/layout/table-columns.adoc   |   2 +-
 .../pages/menubars-layout/annotation-based.adoc    |   2 +-
 .../ROOT/pages/menubars-layout/file-based.adoc     |   4 +-
 .../security/partials/user-registration.adoc       |   2 +-
 .../simpleapp/_adoc/modules/ROOT/pages/about.adoc  |   2 +-
 .../pages/fixture-scripts/api-and-usage.adoc       |   4 +-
 .../fixture-scripts/ticking-clock-fixture.adoc     |   2 +-
 .../pages/bdd-spec-support/writing-a-bdd-spec.adoc |   2 +-
 extensions/viewer-wicket-excel/pom.xml             |  19 ++++
 456 files changed, 1885 insertions(+), 1899 deletions(-)

diff --git a/antora/components/refguide/modules/ROOT/nav.adoc b/antora/components/refguide/modules/ROOT/nav.adoc
index de2a49c..053a7ac 100644
--- a/antora/components/refguide/modules/ROOT/nav.adoc
+++ b/antora/components/refguide/modules/ROOT/nav.adoc
@@ -1 +1 @@
-include::rg:ROOT:partial$nav.adoc[]
+include::rg:ROOT:partial$component-nav.adoc[]
diff --git a/antora/components/refguide/modules/ROOT/pages/about.adoc b/antora/components/refguide/modules/ROOT/pages/about.adoc
index 9c5c6e7..9e980c1 100644
--- a/antora/components/refguide/modules/ROOT/pages/about.adoc
+++ b/antora/components/refguide/modules/ROOT/pages/about.adoc
@@ -3,10 +3,10 @@ include::_attributes.adoc[]
 
 The reference guides are:
 
-* xref:applib:ant:about.adoc[Annotations]
-* xref:applib:svc:about.adoc[Domain Services]
-* xref:applib:cms:about.adoc[Classes & Methods]
-* xref:cfg:ROOT:about.adoc[Configuration]
-* xref:schema:ROOT:about.adoc[Schemas]
+* xref:rg:ant:about.adoc[Annotations]
+* xref:rg:svc:about.adoc[Domain Services]
+* xref:rg:cms:about.adoc[Classes & Methods]
+* xref:rg:cfg:about.adoc[Configuration]
+* xref:rg:schema:about.adoc[Schemas]
 
 
diff --git a/antora/components/refguide/modules/ROOT/partials/component-nav.adoc b/antora/components/refguide/modules/ROOT/partials/component-nav.adoc
new file mode 100644
index 0000000..9c1a327
--- /dev/null
+++ b/antora/components/refguide/modules/ROOT/partials/component-nav.adoc
@@ -0,0 +1,6 @@
+include::rg:ROOT:partial$module-nav.adoc[]
+include::rg:ant:partial$module-nav.adoc[]
+include::rg:svc:partial$module-nav.adoc[]
+include::rg:cms:partial$module-nav.adoc[]
+include::rg:cfg:partial$module-nav.adoc[]
+include::rg:schema:partial$module-nav.adoc[]
\ No newline at end of file
diff --git a/antora/components/refguide/modules/ROOT/partials/module-nav.adoc b/antora/components/refguide/modules/ROOT/partials/module-nav.adoc
new file mode 100644
index 0000000..f35043d
--- /dev/null
+++ b/antora/components/refguide/modules/ROOT/partials/module-nav.adoc
@@ -0,0 +1 @@
+* xref:rg:ROOT:about.adoc[Table of Contents]
diff --git a/antora/components/refguide/modules/ROOT/partials/nav.adoc b/antora/components/refguide/modules/ROOT/partials/nav.adoc
deleted file mode 100644
index ac9353d..0000000
--- a/antora/components/refguide/modules/ROOT/partials/nav.adoc
+++ /dev/null
@@ -1,6 +0,0 @@
-* xref:rg:ROOT:about.adoc[Table of Contents]
-include::applib:ant:partial$nav.adoc[]
-include::applib:svc:partial$nav.adoc[]
-include::applib:cms:partial$nav.adoc[]
-include::cfg:ROOT:partial$nav.adoc[]
-include::schema:ROOT:partial$nav.adoc[]
\ No newline at end of file
diff --git a/antora/components/security/modules/ROOT/pages/about.adoc b/antora/components/security/modules/ROOT/pages/about.adoc
index 05bb5de..0e12f11 100644
--- a/antora/components/security/modules/ROOT/pages/about.adoc
+++ b/antora/components/security/modules/ROOT/pages/about.adoc
@@ -43,13 +43,13 @@ In addition to Apache Isis' Shiro-based implementation of its authentication and
 ====
 A further aspect of security is auditing: recording what data was modified by which user.
 
-Apache Isis provides the xref:applib:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`]
-can be used to track the actions being invoked, and the xref:applib:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`]
+Apache Isis provides the xref:rg:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`]
+can be used to track the actions being invoked, and the xref:rg:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`]
 captures what data was modified as a result (auditing).
 When ``Interaction``s are persisted (eg by way of (non-ASF) link:https://platform.incode.org[Incode Platform^]'s publishmq module) this provides excellent
 traceability.
 The (non-ASF) link:https://platform.incode.org[Incode Platform^]'s audit module provides an implementation of the `AuditerService`.
 
-For xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] can be also be used to capture actions.
+For xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] can be also be used to capture actions.
 ====
 
diff --git a/antora/components/security/modules/ROOT/pages/api-for-applications.adoc b/antora/components/security/modules/ROOT/pages/api-for-applications.adoc
index 4240136..dcf93ce 100644
--- a/antora/components/security/modules/ROOT/pages/api-for-applications.adoc
+++ b/antora/components/security/modules/ROOT/pages/api-for-applications.adoc
@@ -13,7 +13,7 @@ Still, on very rare occasion you may have a need, in which case you can either u
 
 == `UserService` API
 
-The xref:applib:svc:core-domain-api/UserService.adoc[`UserService`] service exposes the following API:
+The xref:rg:svc:core-domain-api/UserService.adoc[`UserService`] service exposes the following API:
 
 [source,java]
 ----
diff --git a/antora/components/testing/modules/ROOT/pages/overview.adoc b/antora/components/testing/modules/ROOT/pages/overview.adoc
index cacd314..1140928 100644
--- a/antora/components/testing/modules/ROOT/pages/overview.adoc
+++ b/antora/components/testing/modules/ROOT/pages/overview.adoc
@@ -50,7 +50,7 @@ When we talk about integration tests/specs here, we mean tests that exercise the
 
 For most other frameworks that would require having to test the application in a very heavy weight/fragile fashion using a tool such as link:http://docs.seleniumhq.org/[Selenium], driving a web browser to navigate .  In this regard though, Apache Isis has a significant trick up its sleeve.  Because Apache Isis implements the naked objects pattern, it means that the UI is generated automatically from declared domain-objects, -views and -services. This therefore allows for other implementa [...]
 
-The xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] domain service allows a test to wrap domain objects and thus to interact with said objects "as if" through the UI:
+The xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] domain service allows a test to wrap domain objects and thus to interact with said objects "as if" through the UI:
 
 image::integ-tests.png[width="700px",link="{imagesdir}/integ-tests.png"]
 
@@ -123,7 +123,7 @@ In the previous section we discussed using given/when/then as a form of organizi
 
 For integration tests though it can be difficult to keep the "given" short; there could be a lot of prerequisite data that needs to exist before you can actually exercise your system.  Moreover, however we do set up that data, but we also want to do so in a way that is resilient to the system changing over time.
 
-The solution that Apache Isis provides is a domain service called xref:applib:cms:classes/super.adoc#FixtureScripts[Fixture Scripts], that defines a pattern and supporting classes to help ensure that the "data setup" for your tests are reusable and maintainable over time.
+The solution that Apache Isis provides is a domain service called xref:rg:cms:classes/super.adoc#FixtureScripts[Fixture Scripts], that defines a pattern and supporting classes to help ensure that the "data setup" for your tests are reusable and maintainable over time.
 
 
 
diff --git a/antora/components/toc/modules/ROOT/nav.adoc b/antora/components/toc/modules/ROOT/nav.adoc
index d1311cd..6bb4b12 100644
--- a/antora/components/toc/modules/ROOT/nav.adoc
+++ b/antora/components/toc/modules/ROOT/nav.adoc
@@ -21,11 +21,11 @@
 
 * xref:rg:ROOT:about.adoc[Reference Guide]
 
-** *xref:applib:ant:about.adoc[Annotations]*
-** *xref:applib:svc:about.adoc[Domain Services]*
-** xref:applib:cms:about.adoc[Classes & Methods]
-** xref:schema:ROOT:about.adoc[Schemas]
-** xref:cfg:ROOT:about.adoc[Configuration]
+** *xref:rg:ant:about.adoc[Annotations]*
+** *xref:rg:svc:about.adoc[Domain Services]*
+** xref:rg:cms:about.adoc[Classes & Methods]
+** xref:rg:schema:about.adoc[Schemas]
+** xref:rg:cfg:about.adoc[Configuration]
 
 * Testing & Prototyping
 
diff --git a/antora/components/toc/modules/ROOT/pages/about.adoc b/antora/components/toc/modules/ROOT/pages/about.adoc
index 97c7f98..3bd36d4 100644
--- a/antora/components/toc/modules/ROOT/pages/about.adoc
+++ b/antora/components/toc/modules/ROOT/pages/about.adoc
@@ -33,11 +33,11 @@ _Tutorials:_
 
 | *xref:rg:ROOT:about.adoc[Reference Guide]*
 
-* xref:applib:ant:about.adoc[Annotations]
-* xref:applib:svc:about.adoc[Domain Services]
-* xref:applib:cms:about.adoc[Classes & Methods]
-* xref:schema:ROOT:about.adoc[Schemas]
-* xref:cfg:ROOT:about.adoc[Configuration]
+* xref:rg:ant:about.adoc[Annotations]
+* xref:rg:svc:about.adoc[Domain Services]
+* xref:rg:cms:about.adoc[Classes & Methods]
+* xref:rg:schema:about.adoc[Schemas]
+* xref:rg:cfg:about.adoc[Configuration]
 
 
 | *xref:toc:ROOT:guides.adoc#testing-prototyping[Testing & Prototyping]*
diff --git a/antora/components/toc/modules/ROOT/pages/guides.adoc b/antora/components/toc/modules/ROOT/pages/guides.adoc
index 9e4a511..7272530 100644
--- a/antora/components/toc/modules/ROOT/pages/guides.adoc
+++ b/antora/components/toc/modules/ROOT/pages/guides.adoc
@@ -12,11 +12,11 @@ This page lists the user and reference guides available for developers to create
 
 == xref:rg:ROOT:about.adoc[Reference Guide]
 
-* xref:applib:ant:about.adoc[Annotations]
-* xref:applib:svc:about.adoc[Domain Services]
-* xref:applib:cms:about.adoc[Classes & Methods]
-* xref:schema:ROOT:about.adoc[Schemas]
-* xref:cfg:ROOT:about.adoc[Configuration]
+* xref:rg:ant:about.adoc[Annotations]
+* xref:rg:svc:about.adoc[Domain Services]
+* xref:rg:cms:about.adoc[Classes & Methods]
+* xref:rg:schema:about.adoc[Schemas]
+* xref:rg:cfg:about.adoc[Configuration]
 
 == Testing & Prototyping
 
diff --git a/antora/components/toc/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc b/antora/components/toc/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
index cdef222..614ad78 100644
--- a/antora/components/toc/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
+++ b/antora/components/toc/modules/ROOT/pages/what-is-apache-isis/screencasts.adoc
@@ -126,7 +126,7 @@ Using the Swagger UI to access the xref:vro:ROOT:about.adoc[REST API] automatica
 
 
 |link:https://www.youtube.com/watch?v=1sNiR3Y84c0[011^] +
-How the framework uses the xref:applib:cms:classes/AppManifest-bootstrapping.adoc[`AppManifest`] is used to bootstrap the application
+How the framework uses the xref:rg:cms:classes/AppManifest-bootstrapping.adoc[`AppManifest`] is used to bootstrap the application
 ||||||||||x|
 
 
@@ -139,13 +139,13 @@ include::partial$_screencasts-playlists.adoc[]
 
 
 |link:https://www.youtube.com/watch?v=dfRZeYqzMtI[012^] +
-Implementing business logic using a (no-arg) action, and associating with a property using either the xref:applib:ant:MemberOrder.adoc[`@MemberOrder`] annotations or using xref:vw:ROOT:layout/file-based.adoc[dynamic (XML) layouts].
+Implementing business logic using a (no-arg) action, and associating with a property using either the xref:rg:ant:MemberOrder.adoc[`@MemberOrder`] annotations or using xref:vw:ROOT:layout/file-based.adoc[dynamic (XML) layouts].
 |x||||||||x||
 
 
 
 |link:https://www.youtube.com/watch?v=0naoVsWppuQ[013^] +
-Invoking (no-arg) action on multiple objects at once (using xref:applib:ant:Action.adoc#invokeOn[`@Action#invokeOn()`], and using the xref:applib:svc:application-layer-api/ActionInvocationContext.adoc[`ActionInvocationContext`] domain service for a smoother end-user experience.
+Invoking (no-arg) action on multiple objects at once (using xref:rg:ant:Action.adoc#invokeOn[`@Action#invokeOn()`], and using the xref:rg:svc:application-layer-api/ActionInvocationContext.adoc[`ActionInvocationContext`] domain service for a smoother end-user experience.
 |||x||||||x||
 
 
@@ -159,13 +159,13 @@ include::partial$_screencasts-playlists.adoc[]
 
 
 |link:https://www.youtube.com/watch?v=CwM430UH5WE[014^] +
-Using the xref:applib:cms:methods.adoc#title[`title()`], xref:applib:cms:methods.adoc#iconName[`iconName()`] and xref:applib:cms:methods.adoc#cssClass[`cssClass()`] so that end-users can distinguish domain objects within the UI.
+Using the xref:rg:cms:methods.adoc#title[`title()`], xref:rg:cms:methods.adoc#iconName[`iconName()`] and xref:rg:cms:methods.adoc#cssClass[`cssClass()`] so that end-users can distinguish domain objects within the UI.
 |x||x||||||x||
 
 
 
 |link:https://www.youtube.com/watch?v=7ToRKBOeemM[015^] +
-Moving the responsibility to specify the icon for a domain object out and into a subscriber, using the xref:applib:cms:classes/uievent.adoc#IconUiEvent[`IconUiEvent`] as per the xref:applib:ant:DomainObjectLayout.adoc#iconUiEvent[`@DomainObjectLayout#iconUiEvent()`] annotation
+Moving the responsibility to specify the icon for a domain object out and into a subscriber, using the xref:rg:cms:classes/uievent.adoc#IconUiEvent[`IconUiEvent`] as per the xref:rg:ant:DomainObjectLayout.adoc#iconUiEvent[`@DomainObjectLayout#iconUiEvent()`] annotation
 ||||||x|||||
 
 
@@ -225,7 +225,7 @@ Demonstrates how the end-user can copy and share URLs for domain objects - inclu
 
 
 |link:https://www.youtube.com/watch?v=a0QQLT_16To[021^] +
-Demonstrates how the end-user can use bookmarks and breadcrumbs within Apache Isis' xref:vw:ROOT:about.adoc[Wicket viewer], and how the developer can ensure that xref:applib:ant:DomainObjectLayout.adoc#bookmarking[domain objects] and (xref:applib:ant:Action.adoc#semantics[query-only]) xref:applib:ant:ActionLayout.adoc#bookmarking[actions] can be bookmarked.
+Demonstrates how the end-user can use bookmarks and breadcrumbs within Apache Isis' xref:vw:ROOT:about.adoc[Wicket viewer], and how the developer can ensure that xref:rg:ant:DomainObjectLayout.adoc#bookmarking[domain objects] and (xref:rg:ant:Action.adoc#semantics[query-only]) xref:rg:ant:ActionLayout.adoc#bookmarking[actions] can be bookmarked.
 |||x||||||||
 
 
@@ -252,13 +252,13 @@ Shows how to refactor a domain object to move (derived) collections out of the d
 
 
 |link:https://www.youtube.com/watch?v=-AQJb9GtIqI[024^] +
-Using a domain event xref:applib:cms:classes/super.adoc#AbstractSubscriber[subscriber] to xref:ug:fun:building-blocks.adoc#domain-events[decouple] and abstract business rules (xref:applib:cms:methods.adoc#validate[validation]).
+Using a domain event xref:rg:cms:classes/super.adoc#AbstractSubscriber[subscriber] to xref:ug:fun:building-blocks.adoc#domain-events[decouple] and abstract business rules (xref:rg:cms:methods.adoc#validate[validation]).
 ||||||x|||||
 
 
 
 |link:https://www.youtube.com/watch?v=6GjLW0hlrm4[025^] +
-Using a domain event xref:applib:cms:classes/super.adoc#AbstractSubscriber[subscriber] to hide functionality, in this
+Using a domain event xref:rg:cms:classes/super.adoc#AbstractSubscriber[subscriber] to hide functionality, in this
   case the xref:rg:cms:rgcms.adoc#__rgcms_classes_mixins_Object_clearHints["clear hints"] action automatically provided by the framework.
 ||||||||||x|
 
@@ -271,7 +271,7 @@ Using a domain event xref:applib:cms:classes/super.adoc#AbstractSubscriber[subsc
 
 
 |link:https://www.youtube.com/watch?v=qj4bMkQRBUY[026^] +
-Using the xref:applib:ant:Title.adoc[`@Title`] annotation (instead of the xref:applib:cms:methods.adoc#title[`title()`] reserved method) to obtain the title of a domain object, so that the end-user can distinguish one object from another.
+Using the xref:rg:ant:Title.adoc[`@Title`] annotation (instead of the xref:rg:cms:methods.adoc#title[`title()`] reserved method) to obtain the title of a domain object, so that the end-user can distinguish one object from another.
 |x||||||||x||
 
 
@@ -284,7 +284,7 @@ Using the xref:applib:ant:Title.adoc[`@Title`] annotation (instead of the xref:a
 
 
 |link:https://www.youtube.com/watch?v=yi52Gbd3lmY[027^] +
-How to write an xref:testing:integ-test-support:about.adoc[integration test] for an xref:applib:ant:Mixin.adoc[mixin].
+How to write an xref:testing:integ-test-support:about.adoc[integration test] for an xref:rg:ant:Mixin.adoc[mixin].
 ||x|||||||||
 
 
@@ -307,7 +307,7 @@ Using link:https://projectlombok.org/[Project Lombok] to remove boilerplate from
 
 
 |link:https://www.youtube.com/watch?v=AXuxULuRtm0[029^] +
-Using the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s paraname8 metamodel extension to remove boilerplate from your domain object (xref:applib:ant:ParameterLayout.adoc#named[`@ParameterLayout#named()`] annotation attribute on action parameters).
+Using the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s paraname8 metamodel extension to remove boilerplate from your domain object (xref:rg:ant:ParameterLayout.adoc#named[`@ParameterLayout#named()`] annotation attribute on action parameters).
 |||||x|||x|||
 
 
@@ -322,13 +322,13 @@ include::partial$_screencasts-playlists.adoc[]
 
 
 |link:https://www.youtube.com/watch?v=ORoEYlg6XFM[030^] +
-How to validate action parameters using a supporting xref:applib:cms:methods.adoc#validate[`validateNXxx()`] method.
+How to validate action parameters using a supporting xref:rg:cms:methods.adoc#validate[`validateNXxx()`] method.
 |x||||||||x||
 
 
 
 |link:https://www.youtube.com/watch?v=1Vlzob89pYI[031^] +
-How to validate action parameters using the xref:applib:ant:Parameter.adoc#mustSatisfy[`@Parameter#mustSatisfy()`]  and the Specification interface.
+How to validate action parameters using the xref:rg:ant:Parameter.adoc#mustSatisfy[`@Parameter#mustSatisfy()`]  and the Specification interface.
 |||||||||x||
 
 
@@ -341,7 +341,7 @@ How to validate action parameters using the xref:applib:ant:Parameter.adoc#mustS
 
 
 |link:https://www.youtube.com/watch?v=fYJjXAepWAs[032^] +
-How to instantiate/initialize objects using xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`], xref:applib:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] and/or xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService`].
+How to instantiate/initialize objects using xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`], xref:rg:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] and/or xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService`].
 |x||||||||x||
 
 
@@ -355,19 +355,19 @@ include::partial$_screencasts-playlists.adoc[]
 
 
 |link:https://www.youtube.com/watch?v=cQ06PoMNDPw[033^] +
-How to provide a set of xref:applib:cms:methods.adoc#choices[choices] (a drop-down list) when editing a property.
+How to provide a set of xref:rg:cms:methods.adoc#choices[choices] (a drop-down list) when editing a property.
 |x||||||||x||
 
 
 
 |link:https://www.youtube.com/watch?v=afEnYKljBQs[034^] +
-How to provide a set of xref:applib:cms:methods.adoc#choices[choices] (a drop-down list) when invoking an action.
+How to provide a set of xref:rg:cms:methods.adoc#choices[choices] (a drop-down list) when invoking an action.
 |||||||||x||
 
 
 
 |link:https://www.youtube.com/watch?v=fKo6aTPK-gk[035^] +
-How to use the xref:applib:cms:methods.adoc#choices[choices] supporting methods as a source for default values within a xref:ext-fixtures:ROOT:about.adoc[fixture script].
+How to use the xref:rg:cms:methods.adoc#choices[choices] supporting methods as a source for default values within a xref:ext-fixtures:ROOT:about.adoc[fixture script].
 ||x|||||||x||
 
 
@@ -387,7 +387,7 @@ include::partial$_screencasts-playlists.adoc[]
 
 
 |link:https://www.youtube.com/watch?v=1SCyBlMM2Bo[037^] +
-How to hide properties as columns in tables (parented collections or standalone collections), using the dynamic XML layout (equivalent to xref:applib:ant:PropertyLayout.adoc#hidden[`@PropertyLayout#hidden()`]).
+How to hide properties as columns in tables (parented collections or standalone collections), using the dynamic XML layout (equivalent to xref:rg:ant:PropertyLayout.adoc#hidden[`@PropertyLayout#hidden()`]).
 ||||x|||||||
 
 
@@ -406,7 +406,7 @@ include::partial$_screencasts-playlists.adoc[]
 
 
 |link:https://www.youtube.com/watch?v=NKaR7ZedI8E[039^] +
-Using the xref:applib:cms:classes/super.adoc#FixtureScript[`FixtureScript`] `defaultParam(...)` method to reflectively default parameters to fixture scripts that have not been set by the caller.
+Using the xref:rg:cms:classes/super.adoc#FixtureScript[`FixtureScript`] `defaultParam(...)` method to reflectively default parameters to fixture scripts that have not been set by the caller.
 ||x|||||||||
 
 
@@ -432,7 +432,7 @@ Using BigDecimal as a property within a domain object, also demonstrating the "s
 
 
 |link:https://www.youtube.com/watch?v=n9Oy0m2bplw[042^] +
-How to use the xref:applib:ant:Digits.adoc[`@Digits`] annotation for action parameters of type ``java.math.BigDecimal``.
+How to use the xref:rg:ant:Digits.adoc[`@Digits`] annotation for action parameters of type ``java.math.BigDecimal``.
 |||||||||x||
 
 
@@ -446,22 +446,22 @@ include::partial$_screencasts-playlists.adoc[]
 
 
 |link:https://www.youtube.com/watch?v=Rt4JoV4ssVY[043^] +
-How to use the supporting xref:applib:cms:methods.adoc#default[`defaultXxx(...)`] supporting method to provide a default argument value for action parameters.
+How to use the supporting xref:rg:cms:methods.adoc#default[`defaultXxx(...)`] supporting method to provide a default argument value for action parameters.
 |x||||||||x||
 
 
 |link:https://www.youtube.com/watch?v=qAJDGxztWIQ[044^] +
-How to use xref:applib:ant:DomainObject.adoc#bounding[`@DomainObject#bounding()`] so that a drop-down list is automatically provided for any parameters to actions that are for (domain entity) reference types.
+How to use xref:rg:ant:DomainObject.adoc#bounding[`@DomainObject#bounding()`] so that a drop-down list is automatically provided for any parameters to actions that are for (domain entity) reference types.
 |||||||||x||
 
 
 |link:https://www.youtube.com/watch?v=0ro_YhXOpJU[045^] +
-How to use the xref:applib:cms:methods.adoc#choices[`choicesXxx(...)`] supporting method to provide a drop-down list for parameters to actions that are for reference types (domain entities or view models).
+How to use the xref:rg:cms:methods.adoc#choices[`choicesXxx(...)`] supporting method to provide a drop-down list for parameters to actions that are for reference types (domain entities or view models).
 |||||||||x||
 
 
 |link:https://www.youtube.com/watch?v=K36IJQ_hDfs[046^] +
-How to use the xref:applib:cms:methods.adoc#autoComplete[`autoCompleteXxx(...)`] supporting method to provide a drop-down list for parameters to actions that are for reference types (domain entities or view models).
+How to use the xref:rg:cms:methods.adoc#autoComplete[`autoCompleteXxx(...)`] supporting method to provide a drop-down list for parameters to actions that are for reference types (domain entities or view models).
 |||||||||x||
 
 
@@ -487,7 +487,7 @@ component.
 
 
 |link:https://www.youtube.com/watch?v=0YoFa44Xr6M[049^] +
-Using the xref:applib:ant:Programmatic.adoc[`@Programmatic`] annotation to exclude methods from a domain object
+Using the xref:rg:ant:Programmatic.adoc[`@Programmatic`] annotation to exclude methods from a domain object
 (eg implementing methods of an interface as defined by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s fullcalendar2 wicket component) that would
 otherwise be part of the Apache Isis metamodel (and thus show up in the UI).
 ||||||||||x|
@@ -554,7 +554,7 @@ How to rename a menu (on the top-level menubar) as rendered in the  xref:vw:ROOT
 
 
 |link:https://www.youtube.com/watch?v=mgHqRxQrp28[058^] +
-How to rename various elements (collections, title) of the xref:applib:ant:HomePage.adoc[home page] view model,
+How to rename various elements (collections, title) of the xref:rg:ant:HomePage.adoc[home page] view model,
 for an improved initial page.
 ||||||||||x|
 
diff --git a/antora/components/toc/modules/devguide/pages/hints-and-tips/how-run-fixtures-on-app-startup.adoc b/antora/components/toc/modules/devguide/pages/hints-and-tips/how-run-fixtures-on-app-startup.adoc
index 061e08c..ad378e1 100644
--- a/antora/components/toc/modules/devguide/pages/hints-and-tips/how-run-fixtures-on-app-startup.adoc
+++ b/antora/components/toc/modules/devguide/pages/hints-and-tips/how-run-fixtures-on-app-startup.adoc
@@ -14,7 +14,7 @@ Use events?_
 
 
 The standard approach is to use xref:ext-fixtures:ROOT:about.adoc[fixture scripts].
-These can be run in on start-up typically by being specified in the xref:applib:cms:classes/AppManifest-bootstrapping.adoc[`AppManifest`], see for example the xref:simpleapp:ROOT:about.adoc[SimpleApp archetype].
+These can be run in on start-up typically by being specified in the xref:rg:cms:classes/AppManifest-bootstrapping.adoc[`AppManifest`], see for example the xref:simpleapp:ROOT:about.adoc[SimpleApp archetype].
 
 Alternatively just set `isis.fixtures` and `isis.persistor.datanucleus.install-fixtures` properties.
 
diff --git a/antora/components/toc/modules/devguide/pages/project-lombok.adoc b/antora/components/toc/modules/devguide/pages/project-lombok.adoc
index f62c808..d9c11b1 100644
--- a/antora/components/toc/modules/devguide/pages/project-lombok.adoc
+++ b/antora/components/toc/modules/devguide/pages/project-lombok.adoc
@@ -33,7 +33,7 @@ private String name;
 Under the covers it is implemented as an annotation processor; it basically hooks into the Java compiler
 so that it can emit additional bytecode (eg for the getter and setter).  See xref:toc:devguide:about.adoc#other-settings-compiler[here] for details of setting up in IntelliJ (Eclipse has very similar support).
 
-Apache Isis supports link:https://projectlombok.org/[Project Lombok], in that the annotations that would normally be placed on the getter (namely xref:applib:ant:Property.adoc[`Property`], xref:applib:ant:PropertyLayout.adoc[`@PropertyLayout`], xref:applib:ant:Collection.adoc[`@Collection`], xref:applib:ant:CollectionLayout.adoc[`@CollectionLayout`] and xref:applib:ant:MemberOrder.adoc[`@MemberOrder`]) can be placed on the field instead.
+Apache Isis supports link:https://projectlombok.org/[Project Lombok], in that the annotations that would normally be placed on the getter (namely xref:rg:ant:Property.adoc[`Property`], xref:rg:ant:PropertyLayout.adoc[`@PropertyLayout`], xref:rg:ant:Collection.adoc[`@Collection`], xref:rg:ant:CollectionLayout.adoc[`@CollectionLayout`] and xref:rg:ant:MemberOrder.adoc[`@MemberOrder`]) can be placed on the field instead.
 
 
 There are plugins for Lombok for maven; it's just a matter of adding the required dependency.  To compile the code
@@ -44,7 +44,7 @@ Lombok plugin appropriate to that IDE.  See the link:https://projectlombok.org/d
 
 == Future thoughts
 
-In the future we might extend/fork Lombok so that it understands Isis' own annotations (ie xref:applib:ant:Property.adoc[`@Property`] and xref:applib:ant:Collection.adoc[`@Collection`])
+In the future we might extend/fork Lombok so that it understands Isis' own annotations (ie xref:rg:ant:Property.adoc[`@Property`] and xref:rg:ant:Collection.adoc[`@Collection`])
 rather than Lombok's own `@Getter` and `@Setter.
 
 It might also be possible to use Lombok to generate the domain event classes for each member.
\ No newline at end of file
diff --git a/antora/components/userguide/modules/btb/pages/deployment/cmd-line.adoc b/antora/components/userguide/modules/btb/pages/deployment/cmd-line.adoc
index 4f06875..a13b1a3 100644
--- a/antora/components/userguide/modules/btb/pages/deployment/cmd-line.adoc
+++ b/antora/components/userguide/modules/btb/pages/deployment/cmd-line.adoc
@@ -33,7 +33,7 @@ The class also supports a number of command line arguments:
 |`-m`
 |`--manifest`
 |FQCN
-|Fully qualified class name of the xref:applib:cms:classes/super.adoc#AppManifest[`AppManifest`] to use to bootstrap the system. +
+|Fully qualified class name of the xref:rg:cms:classes/super.adoc#AppManifest[`AppManifest`] to use to bootstrap the system. +
 
 This flag sets/overrides the `isis.appManifest` configuration property to the specified class name.
 
@@ -41,7 +41,7 @@ This flag sets/overrides the `isis.appManifest` configuration property to the sp
 |`-f`
 |`--fixture`
 |FQCN
-|Fully qualified class name of the fixture (extending xref:applib:cms:classes/super.adoc#FixtureScript[`FixtureScript`]) to be run to setup data. +
+|Fully qualified class name of the fixture (extending xref:rg:cms:classes/super.adoc#FixtureScript[`FixtureScript`]) to be run to setup data. +
 
 This flag sets/overrides the `isis.fixtures` configuration property to the specified class name, and also sets the `isis.persistor.datanucleus.install-fixtures` configuration property to `true` to instruct the JDO/DataNucleus objectstore to actually load in the fixtures. +
 
diff --git a/antora/components/userguide/modules/btb/pages/deployment/docker.adoc b/antora/components/userguide/modules/btb/pages/deployment/docker.adoc
index e0e120a..e931f8d 100644
--- a/antora/components/userguide/modules/btb/pages/deployment/docker.adoc
+++ b/antora/components/userguide/modules/btb/pages/deployment/docker.adoc
@@ -21,7 +21,7 @@ Docker host can be assured.
 == Using an `overrides.properties`
 
 In addition to loading the regular configuration properties from `WEB-INF` directory (described
-xref:cfg:ROOT:configuration-files.adoc[here]), Apache Isis will also load the `overrides.properties` file.
+xref:rg:cfg:configuration-files.adoc[here]), Apache Isis will also load the `overrides.properties` file.
 
 This file is treated slightly differently than the other configuration files; it is loaded last, and any configuration
 properties defined in it will _override_ any configuration properties already read from other files (this includes
diff --git a/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc b/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
index 0b80287..66160fa 100644
--- a/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
+++ b/antora/components/userguide/modules/btb/pages/deployment/externalized-configuration.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 
-As described xref:cfg:ROOT:configuration-files.adoc[here], by default Apache Isis itself bootstraps from the
+As described xref:rg:cfg:configuration-files.adoc[here], by default Apache Isis itself bootstraps from the
 `isis.properties` configuration file.
 It will also read configuration from the (optional) component/implementation-specific configuration files (such as `persistor_datanucleus.properties` or `viewer_wicket.properties`), and also (optional) component-specific configuration files (such as `persistor.properties` or `viewer.properties`).
 
@@ -244,7 +244,7 @@ take a look at link:http://stackoverflow.com/a/10041835/56880[this SO answer] on
 
 == JVM Args
 
-The xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] uses link:http://www.javassist.org[Javassist] to create on-the-fly classes acting as a proxy.
+The xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] uses link:http://www.javassist.org[Javassist] to create on-the-fly classes acting as a proxy.
 The cost of these proxies can be mitigated using:
 
 [source,ini]
diff --git a/antora/components/userguide/modules/btb/pages/headless-access.adoc b/antora/components/userguide/modules/btb/pages/headless-access.adoc
index 953d0a3..a203aea 100644
--- a/antora/components/userguide/modules/btb/pages/headless-access.adoc
+++ b/antora/components/userguide/modules/btb/pages/headless-access.adoc
@@ -16,7 +16,7 @@ There are several main use-cases:
 
 Note that the calling thread runs in the same process space as the Apache Isis domain object model (must be physically linked to the JAR files containing the domain classes).  For use cases where the calling thread runs in some other process space (eg migrating data from a legacy system), then the xref:vro:ROOT:about.adoc[Restful Objects viewer] is usually the way to go.
 
-The API described in this chapter is reasonably low-level, allowing code to interact very directly with the Apache Isis metamodel and runtime.  Such callers should be considered trusted: they do not (by default) honour any business rules eg implicit in the Isis annotations or hide/disable/validate methods.  However the xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] service could be used to enforce such business rules if required.
+The API described in this chapter is reasonably low-level, allowing code to interact very directly with the Apache Isis metamodel and runtime.  Such callers should be considered trusted: they do not (by default) honour any business rules eg implicit in the Isis annotations or hide/disable/validate methods.  However the xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] service could be used to enforce such business rules if required.
 
 
 
diff --git a/antora/components/userguide/modules/btb/pages/headless-access/BackgroundCommandExecution.adoc b/antora/components/userguide/modules/btb/pages/headless-access/BackgroundCommandExecution.adoc
index 65a67f5..1548a34 100644
--- a/antora/components/userguide/modules/btb/pages/headless-access/BackgroundCommandExecution.adoc
+++ b/antora/components/userguide/modules/btb/pages/headless-access/BackgroundCommandExecution.adoc
@@ -34,9 +34,9 @@ image::headless-access/BackgroundCommandExecution.png[width="400px",link="{image
 
 == Background Execution
 
-The `BackgroundCommandExecutionFromBackgroundCommandServiceJdo` is a concrete subclass of `BackgroundCommandExecution` (see the xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundCommandService`]), the intended use being for the class to be instantiated regularly (eg every 10 seconds) by a scheduler such as http://quartz-scheduler.org[Quartz]) to poll for ``Command``s to be executed, and then execute them.
+The `BackgroundCommandExecutionFromBackgroundCommandServiceJdo` is a concrete subclass of `BackgroundCommandExecution` (see the xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundCommandService`]), the intended use being for the class to be instantiated regularly (eg every 10 seconds) by a scheduler such as http://quartz-scheduler.org[Quartz]) to poll for ``Command``s to be executed, and then execute them.
 
-This implementation queries for ``Command``s persisted by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module's  implementations of xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] and xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`] using the `BackgroundCommandServiceJdoRepository`.
+This implementation queries for ``Command``s persisted by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module's  implementations of xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] and xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`] using the `BackgroundCommandServiceJdoRepository`.
 
 The diagram below (link:http://yuml.me/edit/25343da1[yuml.me/25343da1]) shows the inheritance hierarchy for this class:
 
diff --git a/antora/components/userguide/modules/btb/pages/hints-and-tips/are-you-sure.adoc b/antora/components/userguide/modules/btb/pages/hints-and-tips/are-you-sure.adoc
index cda37a8..9b4ebd8 100644
--- a/antora/components/userguide/modules/btb/pages/hints-and-tips/are-you-sure.adoc
+++ b/antora/components/userguide/modules/btb/pages/hints-and-tips/are-you-sure.adoc
@@ -10,7 +10,7 @@ In such a case it's probably a good idea for the UI to require that the end-user
 
 == Using action semantics
 
-One way to meet this requirement is using the framework's built-in xref:applib:ant:Action.adoc#semantics[`@Action#semantics()`] attribute:
+One way to meet this requirement is using the framework's built-in xref:rg:ant:Action.adoc#semantics[`@Action#semantics()`] attribute:
 
 [source,java]
 ----
@@ -72,4 +72,4 @@ public String validateDelete(boolean areYouSure) {
 ----
 <1> invalid to return `this` (cannot render a deleted object)
 
-Note that the action itself does not use the boolean parameter, it is only used by the supporting xref:applib:cms:methods.adoc#validate[`validate...()`] method.
\ No newline at end of file
+Note that the action itself does not use the boolean parameter, it is only used by the supporting xref:rg:cms:methods.adoc#validate[`validate...()`] method.
\ No newline at end of file
diff --git a/antora/components/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc b/antora/components/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc
index 59f06b8..77f7697 100644
--- a/antora/components/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc
+++ b/antora/components/userguide/modules/btb/pages/hints-and-tips/how-to-handle-void-and-null-results.adoc
@@ -21,8 +21,8 @@ When clicking the back button in the browser the user sees "Object not found" (s
 And refresh the current page when receiving a null response or invoking a void action.
 But how to implement this?_
 
-One way to implement this idea is to provide a custom implementation of the xref:applib:svc:presentation-layer-spi/RoutingService.adoc[`RoutingService`] SPI domain service.
-The default implementation will either return the current object (if not null), else the home page (as defined by xref:applib:ant:HomePage.adoc[`@HomePage`]) if one exists.
+One way to implement this idea is to provide a custom implementation of the xref:rg:svc:presentation-layer-spi/RoutingService.adoc[`RoutingService`] SPI domain service.
+The default implementation will either return the current object (if not null), else the home page (as defined by xref:rg:ant:HomePage.adoc[`@HomePage`]) if one exists.
 
 The following custom implementation refines this to use the breadcrumbs (available in the Wicket viewer) to return the first non-deleted domain object found in the list of breadcrumbs:
 
diff --git a/antora/components/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc b/antora/components/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc
index e7a80fd..6bedd9c 100644
--- a/antora/components/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc
+++ b/antora/components/userguide/modules/btb/pages/hints-and-tips/how-to-implement-a-spellchecker.adoc
@@ -11,13 +11,13 @@ From this link:http://isis.markmail.org/thread/dduarjscrbnodfsi[thread] on the A
 * _What is the easiest way to add a spell checker to the text written in a field in
    a domain object, for instance to check English syntax?_
 
-One way to implement is to use the xref:applib:svc:core-domain-api/EventBusService.adoc[event bus]:
+One way to implement is to use the xref:rg:svc:core-domain-api/EventBusService.adoc[event bus]:
 
-* Set up a xref:applib:cms:classes/domainevent.adoc[domain event] xref:applib:cms:classes/super.adoc#AbstractSubscriber[subscriber] that can veto the changes.
+* Set up a xref:rg:cms:classes/domainevent.adoc[domain event] xref:rg:cms:classes/super.adoc#AbstractSubscriber[subscriber] that can veto the changes.
 
-* if the change is made through an action, you can use xref:applib:ant:Action.adoc#domainEvent[`@Action#domainEvent()`].
+* if the change is made through an action, you can use xref:rg:ant:Action.adoc#domainEvent[`@Action#domainEvent()`].
 
-if if the change is made through an edit, you can use xref:applib:ant:Property.adoc#domainEvent[`@Property#domainEvent()`].
+if if the change is made through an edit, you can use xref:rg:ant:Property.adoc#domainEvent[`@Property#domainEvent()`].
 
 You'll need some way to know which fields should be spell checked.  Two ways spring to mind:
 
diff --git a/antora/components/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc b/antora/components/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc
index edc4ab3..b00b703 100644
--- a/antora/components/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc
+++ b/antora/components/userguide/modules/btb/pages/hints-and-tips/persisted-title.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 
 Normally the title of an object is not persisted to the database, rather it is recomputed automatically from underlying properties.  On occasion though you might want the title to also be persisted; either to make things easier for the DBA, or for an integration scenario, or some other purpose.
 
-We can implement this feature by leveraging the xref:applib:cms:methods.adoc#jdo-api[JDO lifecycle].  In the design we discuss here we make it a responsibility of the entities to persist the title as a property, by implementing a `ObjectWithPersistedTitle` interface:
+We can implement this feature by leveraging the xref:rg:cms:methods.adoc#jdo-api[JDO lifecycle].  In the design we discuss here we make it a responsibility of the entities to persist the title as a property, by implementing a `ObjectWithPersistedTitle` interface:
 
 [source,java]
 ----
diff --git a/antora/components/userguide/modules/btb/pages/hints-and-tips/pushing-changes.adoc b/antora/components/userguide/modules/btb/pages/hints-and-tips/pushing-changes.adoc
index 0ea7b26..cb84cc0 100644
--- a/antora/components/userguide/modules/btb/pages/hints-and-tips/pushing-changes.adoc
+++ b/antora/components/userguide/modules/btb/pages/hints-and-tips/pushing-changes.adoc
@@ -134,7 +134,7 @@ public class Department {
 --
 <1> maintain a count of the number of male ...
 <2> ... and female employees (getters and setters omitted)
-<3> the xref:applib:cms:methods.adoc#addTo[`addTo...()`] method increments the derived properties
-<4> the xref:applib:cms:methods.adoc#removeFrom[`removeFrom...()`] method similarly decrements the derived properties
+<3> the xref:rg:cms:methods.adoc#addTo[`addTo...()`] method increments the derived properties
+<4> the xref:rg:cms:methods.adoc#removeFrom[`removeFrom...()`] method similarly decrements the derived properties
 
 
diff --git a/antora/components/userguide/modules/btb/pages/hints-and-tips/replacing-default-service-implementations.adoc b/antora/components/userguide/modules/btb/pages/hints-and-tips/replacing-default-service-implementations.adoc
index 346efc2..0a5cab3 100644
--- a/antora/components/userguide/modules/btb/pages/hints-and-tips/replacing-default-service-implementations.adoc
+++ b/antora/components/userguide/modules/btb/pages/hints-and-tips/replacing-default-service-implementations.adoc
@@ -6,11 +6,11 @@ include::_attributes.adoc[]
 
 
 
-The framework provides default implementations for many of the xref:applib:svc:about.adoc[domain services].
+The framework provides default implementations for many of the xref:rg:svc:about.adoc[domain services].
 This is convenient, but sometimes you will want to replace the default implementation with your own service implementation.
 
-For example, suppose you wanted to provide your own implementation of xref:applib:svc:presentation-layer-spi/LocaleProvider.adoc[`LocaleProvider`].
-The trick is to use the xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] attribute, specifying a low number (typically `"1"`).
+For example, suppose you wanted to provide your own implementation of xref:rg:svc:presentation-layer-spi/LocaleProvider.adoc[`LocaleProvider`].
+The trick is to use the xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] attribute, specifying a low number (typically `"1"`).
 
 Here's how:
 
diff --git a/antora/components/userguide/modules/btb/pages/hints-and-tips/simulating-collections-of-values.adoc b/antora/components/userguide/modules/btb/pages/hints-and-tips/simulating-collections-of-values.adoc
index 01341cf..19ee440 100644
--- a/antora/components/userguide/modules/btb/pages/hints-and-tips/simulating-collections-of-values.adoc
+++ b/antora/components/userguide/modules/btb/pages/hints-and-tips/simulating-collections-of-values.adoc
@@ -19,5 +19,5 @@ NOTE: FIXME
 
 == Persistence Concerns
 
-NOTE: FIXME -  easiest to simply store using DataNucleus' support for collections, marked as xref:applib:ant:Programmatic.adoc[`@Programmatic`] so that it is ignored by Apache Isis.  Alternatively can store as json/xml in a varchar(4000) or clob and manually unpack.
+NOTE: FIXME -  easiest to simply store using DataNucleus' support for collections, marked as xref:rg:ant:Programmatic.adoc[`@Programmatic`] so that it is ignored by Apache Isis.  Alternatively can store as json/xml in a varchar(4000) or clob and manually unpack.
 
diff --git a/antora/components/userguide/modules/btb/pages/hints-and-tips/transactions-and-errors.adoc b/antora/components/userguide/modules/btb/pages/hints-and-tips/transactions-and-errors.adoc
index b5f5a8e..b13a54b 100644
--- a/antora/components/userguide/modules/btb/pages/hints-and-tips/transactions-and-errors.adoc
+++ b/antora/components/userguide/modules/btb/pages/hints-and-tips/transactions-and-errors.adoc
@@ -9,12 +9,12 @@ and any repository query automatically does a flush before hand.
 
 What that means is that there's no need to explicitly start or commit transactions in Apache Isis; this will be done
 for you. Indeed, if you do try to manage transactions (eg by reaching into the JDO `PersistenceManager` exposed by the
-xref:applib:svc:persistence-layer-api/IsisJdoSupport.adoc[IsisJdoSupport] domain service, then you are likely to confuse the
+xref:rg:svc:persistence-layer-api/IsisJdoSupport.adoc[IsisJdoSupport] domain service, then you are likely to confuse the
 framework and get a stack trace for your trouble.
 
 However, you can complete a given transaction and start a new one.  This is sometimes useful if writing a fixture
 script which is going to perform some sort of bulk migration of data from an old system.  For this use case, use the
-xref:applib:svc:application-layer-api/TransactionService.adoc[`TransactionService`].
+xref:rg:svc:application-layer-api/TransactionService.adoc[`TransactionService`].
 
 For example:
 
@@ -40,7 +40,7 @@ You get the idea.
 
 == Raise message in the UI
 
-The framework provides the xref:applib:svc:application-layer-api/MessageService.adoc[`MessageService`] as a means to return an out-of-band
+The framework provides the xref:rg:svc:application-layer-api/MessageService.adoc[`MessageService`] as a means to return an out-of-band
 message to the end-user.  In the xref:vw:ROOT:about.adoc[Wicket viewer] these are shown as "toast" pop-ups; the
 xref:vro:ROOT:about.adoc[Restful Objects viewer] returns an HTTP header.
 
@@ -70,7 +70,7 @@ Another way in which exceptions might be considered "expected" could be as the r
 object which then violates some type of database constraint.  Even if the domain application checks beforehand, it
 could be that another user operating on the object at the same moment of time might result in the conflict.
 
-To handle this the xref:applib:svc:presentation-layer-spi/ExceptionRecognizer.adoc[`ExceptionRecognizer`] SPI can be used.  The
+To handle this the xref:rg:svc:presentation-layer-spi/ExceptionRecognizer.adoc[`ExceptionRecognizer`] SPI can be used.  The
 framework provides a number of implementations out-of-the-box; whenever an exception is thrown it is passed to each
 known recognizer implementation to see if it recognizes the exception and can return a user-meaningful error message.
 For example, `ExceptionRecognizerForSQLIntegrityConstraintViolationUniqueOrIndexException` checks if the
diff --git a/antora/components/userguide/modules/btb/pages/hints-and-tips/vetoing-visibility.adoc b/antora/components/userguide/modules/btb/pages/hints-and-tips/vetoing-visibility.adoc
index 05c4d44..1ffc822 100644
--- a/antora/components/userguide/modules/btb/pages/hints-and-tips/vetoing-visibility.adoc
+++ b/antora/components/userguide/modules/btb/pages/hints-and-tips/vetoing-visibility.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-NOTE: FIXME - a write-up of the "vetoing subscriber" design pattern, eg as described in the  xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`]
+NOTE: FIXME - a write-up of the "vetoing subscriber" design pattern, eg as described in the  xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`]
 
 
 eg if included an addon such as auditing or security.
diff --git a/antora/components/userguide/modules/btb/pages/hints-and-tips/view-model-instantiation.adoc b/antora/components/userguide/modules/btb/pages/hints-and-tips/view-model-instantiation.adoc
index d545c80..5566b3b 100644
--- a/antora/components/userguide/modules/btb/pages/hints-and-tips/view-model-instantiation.adoc
+++ b/antora/components/userguide/modules/btb/pages/hints-and-tips/view-model-instantiation.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 Vith view models, some care must be taken in how they are instantiated.
 Specifically, it's important that the framework doesn't "know" about the view model until its state is "sufficiently" populated to distinguish from other view models.
 
-In practical terms, this means that view models should be instantiated using a constructor, and then injecting services (if required) using the xref:applib:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] service:
+In practical terms, this means that view models should be instantiated using a constructor, and then injecting services (if required) using the xref:rg:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] service:
 
 [source,java]
 ----
@@ -16,7 +16,7 @@ CustomerViewModel viewModel = new CustomerViewModel("Joe", "Bloggs");
 serviceRegistry.injectServicesInto(viewModel);
 ----
 
-What will most likely *fail* is to use the xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService`]:
+What will most likely *fail* is to use the xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService`]:
 
 
 [source,java]
diff --git a/antora/components/userguide/modules/btb/pages/i18n.adoc b/antora/components/userguide/modules/btb/pages/i18n.adoc
index 20c6103..4bf6c1d 100644
--- a/antora/components/userguide/modules/btb/pages/i18n.adoc
+++ b/antora/components/userguide/modules/btb/pages/i18n.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 Apache Isis' support for internationlization (i18n) allows every element of the domain model (the class names, property names, action names, parameter names and so forth) to be translated.
 
-It also supports translations of messages raised imperatively, by which we mean as the result of a call to `title()` to obtain an object's title, or messages resulting from any business rule violations (eg xref:applib:cms:methods.adoc#disable[`disable...()`] or xref:applib:cms:methods.adoc#validate[`validate...()`], and so on.
+It also supports translations of messages raised imperatively, by which we mean as the result of a call to `title()` to obtain an object's title, or messages resulting from any business rule violations (eg xref:rg:cms:methods.adoc#disable[`disable...()`] or xref:rg:cms:methods.adoc#validate[`validate...()`], and so on.
 
 The xref:vw:ROOT:about.adoc[Wicket viewer] (that is, its labels and messages) is also internationalized using the same mechanism.
 If no translations are available, then the Wicket viewer falls back to using Wicket resource bundles.
@@ -105,9 +105,9 @@ All requested translations are written into the `.pot` file.
 
 To make the service as convenient as possible to use, the service configures itself as follows:
 
-* if running in prototype mode xref:cfg:ROOT:deployment-types.adoc[deployment type] or during integration tests, then the service runs in *write* mode, in which case it records all translations into the `.pot` file.
+* if running in prototype mode xref:rg:cfg:deployment-types.adoc[deployment type] or during integration tests, then the service runs in *write* mode, in which case it records all translations into the `.pot` file.
 The `.pot` file is written out when the system is shutdown.
-* if running in server (production) mode xref:cfg:ROOT:deployment-types.adoc[deployment type], then the service runs in *read* mode.
+* if running in server (production) mode xref:rg:cfg:deployment-types.adoc[deployment type], then the service runs in *read* mode.
 It is also possible to set a configuration setting in `isis.properties` to force read mode even if running in prototype mode (useful to manually test/demo the translations).
 
 When running in write mode the original text is returned to the caller untranslated.
@@ -194,7 +194,7 @@ msgstr "Ich heisse {firstName} {lastName}."
 then the translation would be: "Ich heisse James Bond".
 
 
-The same class is used in xref:applib:svc:core-domain-api/MessageService.adoc[`MessageService`] so that you can raise translatable info, warning and error messages; each of the relevant methods are overloaded.
+The same class is used in xref:rg:svc:core-domain-api/MessageService.adoc[`MessageService`] so that you can raise translatable info, warning and error messages; each of the relevant methods are overloaded.
 
 For example:
 
@@ -214,7 +214,7 @@ public interface MessageService {
 
 === `TranslatableException`
 
-Another mechanism by which messages can be rendered to the user are as the result of exception messages thrown and recognized by an xref:applib:svc:presentation-layer-spi/ExceptionRecognizer.adoc[`ExceptionRecognizer`].
+Another mechanism by which messages can be rendered to the user are as the result of exception messages thrown and recognized by an xref:rg:svc:presentation-layer-spi/ExceptionRecognizer.adoc[`ExceptionRecognizer`].
 
 In this case, if the exception implements `TranslatableException`, then the message will automatically be translated before being rendered.
 The `TranslatableException` itself takes the form:
@@ -535,7 +535,7 @@ To ensure your app is fully internationalized app, you must therefore:
 We make no apologies for this requirement: one of the reasons that we decided to implement Apache Isis' i18n support in this way is because it encourages/requires the app to be properly tested.
 
 Behind the scenes Apache Isis uses a JUnit rule (`ExceptionRecognizerTranslate`) to intercept any exceptions that are thrown.
-These are simply passed through to the registered xref:applib:svc:presentation-layer-spi/ExceptionRecognizer.adoc[`ExceptionRecognizer`]s so that any messages are recorded as requiring translation.
+These are simply passed through to the registered xref:rg:svc:presentation-layer-spi/ExceptionRecognizer.adoc[`ExceptionRecognizer`]s so that any messages are recorded as requiring translation.
 ====
 
 
@@ -552,7 +552,7 @@ msgid "<i>Quantity</i>"
 msgstr "<i>Quantité</i>"
 ----
 
-For this to work, the `namedEscaped()` attribute must be specified using either the xref:vw:ROOT:layout/file-based.adoc[layout file], or using an annotation such as xref:applib:ant:PropertyLayout.adoc[`@PropertyLayout`] or xref:applib:ant:ParameterLayout.adoc[`@ParameterLayout`].
+For this to work, the `namedEscaped()` attribute must be specified using either the xref:vw:ROOT:layout/file-based.adoc[layout file], or using an annotation such as xref:rg:ant:PropertyLayout.adoc[`@PropertyLayout`] or xref:rg:ant:ParameterLayout.adoc[`@ParameterLayout`].
 
 For example:
 
diff --git a/antora/components/userguide/modules/btb/pages/programming-model/custom-validator.adoc b/antora/components/userguide/modules/btb/pages/programming-model/custom-validator.adoc
index 1e84156..74d767d 100644
--- a/antora/components/userguide/modules/btb/pages/programming-model/custom-validator.adoc
+++ b/antora/components/userguide/modules/btb/pages/programming-model/custom-validator.adoc
@@ -10,7 +10,7 @@ For example, the validator will detect any orphaned supporting methods (eg `hide
 
 [NOTE]
 ====
-The support for xref:applib:ant:aaa.adoc#deprecated[disallowing deprecated annotations] is also implemented using the metamodel validator.
+The support for xref:rg:ant:aaa.adoc#deprecated[disallowing deprecated annotations] is also implemented using the metamodel validator.
 ====
 
 You can also impose your own application-specific rules by installing your own metamodel validator.  To give just one example, you could impose naming standards such as ensuring that a domain-specific abbreviation such as "ISBN" is always consistently capitalized wherever it appears in a class member.
diff --git a/antora/components/userguide/modules/btb/pages/web-xml.adoc b/antora/components/userguide/modules/btb/pages/web-xml.adoc
index 87051f9..f717b6c 100644
--- a/antora/components/userguide/modules/btb/pages/web-xml.adoc
+++ b/antora/components/userguide/modules/btb/pages/web-xml.adoc
@@ -388,7 +388,7 @@ This filter reads one context parameter:
     <param-value>deployment</param-value>   <!--1-->
 </context-param>
 ----
-<1> alternatively set to "development"; see xref:cfg:ROOT:deployment-types.adoc[deployment types] for further discussion.
+<1> alternatively set to "development"; see xref:rg:cfg:deployment-types.adoc[deployment types] for further discussion.
 
 
 === `IsisSessionFilter`
@@ -435,7 +435,7 @@ Discussed in more detail below.
 Originally introduced to allow the `SwaggerSpec` resource (which does not require a session) to be invoked.
 <4> A comma separated list of paths that are allowed through even if not authenticated.
 The servlets mapped to these paths are expected to be able to deal with there being no session.
-Typically they will be logon pages, or for health checks (as per xref:applib:svc:application-layer-spi/HealthCheckService.adoc[`HealthCheckService`] SPI.
+Typically they will be logon pages, or for health checks (as per xref:rg:svc:application-layer-spi/HealthCheckService.adoc[`HealthCheckService`] SPI.
 See below for further details.
 <5> where to redirect to if an exception occurs.
 
diff --git a/antora/components/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc b/antora/components/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc
index c772929..bedd064 100644
--- a/antora/components/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc
+++ b/antora/components/userguide/modules/fun/pages/available-domain-services/framework-provided.adoc
@@ -14,96 +14,96 @@ In these cases there is (usually) no default implementation; it is up to the app
 
 General purpose:
 
-* xref:applib:svc:core-domain-api/ClockService.adoc[`ClockService`]
-* xref:applib:svc:presentation-layer-api/ConfigurationViewService.adoc[`ConfigurationViewService`]
-* xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`]
-* xref:applib:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`]
-* xref:applib:svc:core-domain-api/UserService.adoc[`UserService`]
-* xref:applib:svc:persistence-layer-api/IsisJdoSupport.adoc[`IsisJdoSupport`]
-* xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`]
-* xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`]
-* xref:applib:svc:integration-api/EmailService.adoc[`EmailService`]
+* xref:rg:svc:core-domain-api/ClockService.adoc[`ClockService`]
+* xref:rg:svc:presentation-layer-api/ConfigurationViewService.adoc[`ConfigurationViewService`]
+* xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`]
+* xref:rg:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`]
+* xref:rg:svc:core-domain-api/UserService.adoc[`UserService`]
+* xref:rg:svc:persistence-layer-api/IsisJdoSupport.adoc[`IsisJdoSupport`]
+* xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`]
+* xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`]
+* xref:rg:svc:integration-api/EmailService.adoc[`EmailService`]
 
 Commands/Interactions/Background/Auditing/Publishing/Profiling:
 
-* xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] (SPI)
-* xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] (SPI)
-* xref:applib:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`] (SPI)
-* xref:applib:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`] (SPI)
-* xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`]
-* xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`] (SPI)
-* xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] (SPI)
-* xref:applib:svc:persistence-layer-api/MetricsService.adoc[`MetricsService`]
+* xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] (SPI)
+* xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] (SPI)
+* xref:rg:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`] (SPI)
+* xref:rg:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`] (SPI)
+* xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`]
+* xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`] (SPI)
+* xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] (SPI)
+* xref:rg:svc:persistence-layer-api/MetricsService.adoc[`MetricsService`]
 
 
 Information Sharing:
 
-* xref:applib:svc:core-domain-api/Scratchpad.adoc[`Scratchpad`]
-* xref:applib:svc:application-layer-api/ActionInvocationContext.adoc[`ActionInvocationContext`]
-* xref:applib:svc:persistence-layer-api/QueryResultsCache.adoc[`QueryResultsCache`]
+* xref:rg:svc:core-domain-api/Scratchpad.adoc[`Scratchpad`]
+* xref:rg:svc:application-layer-api/ActionInvocationContext.adoc[`ActionInvocationContext`]
+* xref:rg:svc:persistence-layer-api/QueryResultsCache.adoc[`QueryResultsCache`]
 
 UserManagement:
 
-* xref:applib:svc:presentation-layer-spi/UserProfileService.adoc[`UserProfileService`] (SPI)
-* xref:applib:svc:persistence-layer-spi/UserRegistrationService.adoc[`UserRegistrationService`] (SPI)
-* xref:applib:svc:presentation-layer-spi/EmailNotificationService.adoc[`EmailNotificationService`] (SPI)
+* xref:rg:svc:presentation-layer-spi/UserProfileService.adoc[`UserProfileService`] (SPI)
+* xref:rg:svc:persistence-layer-spi/UserRegistrationService.adoc[`UserRegistrationService`] (SPI)
+* xref:rg:svc:presentation-layer-spi/EmailNotificationService.adoc[`EmailNotificationService`] (SPI)
 
 Bookmarks and Mementos:
 
-* xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`]
-* xref:applib:svc:integration-api/MementoService.adoc[`MementoService`]
-* xref:applib:svc:presentation-layer-api/DeepLinkService.adoc[`DeepLinkService`]
-* xref:applib:svc:integration-api/JaxbService.adoc[`JaxbService`]
-* xref:applib:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`]
+* xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`]
+* xref:rg:svc:integration-api/MementoService.adoc[`MementoService`]
+* xref:rg:svc:presentation-layer-api/DeepLinkService.adoc[`DeepLinkService`]
+* xref:rg:svc:integration-api/JaxbService.adoc[`JaxbService`]
+* xref:rg:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`]
 
 Layout and UI Management:
 
-* xref:applib:svc:presentation-layer-spi/GridLoaderService.adoc[`GridLoaderService`] (SPI)
-* xref:applib:svc:presentation-layer-spi/GridService.adoc[`GridService`] (SPI)
-* xref:applib:svc:presentation-layer-spi/GridSystemService.adoc[`GridSystemService`] (SPI)
-* xref:applib:svc:application-layer-spi/HomePageProviderService.adoc[`HomePageProviderService`]
-* xref:applib:svc:presentation-layer-spi/HintStore.adoc[`HintStore`] (SPI)
-* xref:applib:svc:metadata-api/LayoutService.adoc[`LayoutService`]
-* xref:applib:svc:presentation-layer-spi/RoutingService.adoc[`RoutingService`] (SPI)
-* xref:applib:svc:application-layer-api/TitleService.adoc[`TitleService`]
-* xref:applib:svc:presentation-layer-spi/UrlEncodingService.adoc[`UrlEncodingService`] (SPI)
+* xref:rg:svc:presentation-layer-spi/GridLoaderService.adoc[`GridLoaderService`] (SPI)
+* xref:rg:svc:presentation-layer-spi/GridService.adoc[`GridService`] (SPI)
+* xref:rg:svc:presentation-layer-spi/GridSystemService.adoc[`GridSystemService`] (SPI)
+* xref:rg:svc:application-layer-spi/HomePageProviderService.adoc[`HomePageProviderService`]
+* xref:rg:svc:presentation-layer-spi/HintStore.adoc[`HintStore`] (SPI)
+* xref:rg:svc:metadata-api/LayoutService.adoc[`LayoutService`]
+* xref:rg:svc:presentation-layer-spi/RoutingService.adoc[`RoutingService`] (SPI)
+* xref:rg:svc:application-layer-api/TitleService.adoc[`TitleService`]
+* xref:rg:svc:presentation-layer-spi/UrlEncodingService.adoc[`UrlEncodingService`] (SPI)
 
 REST Support:
 
-* xref:applib:svc:presentation-layer-api/AcceptHeaderService.adoc[`AcceptHeaderService`]
-* xref:applib:svc:metadata-api/SwaggerService.adoc[`SwaggerService`]
-* xref:applib:svc:presentation-layer-spi/ContentMappingService.adoc[`ContentMappingService`] (SPI)
+* xref:rg:svc:presentation-layer-api/AcceptHeaderService.adoc[`AcceptHeaderService`]
+* xref:rg:svc:metadata-api/SwaggerService.adoc[`SwaggerService`]
+* xref:rg:svc:presentation-layer-spi/ContentMappingService.adoc[`ContentMappingService`] (SPI)
 
 Metamodel:
 
-* xref:applib:svc:metadata-api/ApplicationFeatureRepository.adoc[`ApplicationFeatureRepository`]
-* xref:applib:svc:metadata-api/MetamodelService.adoc[`MetamodelService`]
+* xref:rg:svc:metadata-api/ApplicationFeatureRepository.adoc[`ApplicationFeatureRepository`]
+* xref:rg:svc:metadata-api/MetamodelService.adoc[`MetamodelService`]
 
 Error handling:
 
-* xref:applib:svc:presentation-layer-spi/ErrorReportingService.adoc[`ErrorReportingService`] (SPI)
-* xref:applib:svc:presentation-layer-spi/ExceptionRecognizer.adoc[`ExceptionRecognizer`] (SPI)
-* xref:applib:svc:application-layer-api/MessageService.adoc[`MessageService`]
+* xref:rg:svc:presentation-layer-spi/ErrorReportingService.adoc[`ErrorReportingService`] (SPI)
+* xref:rg:svc:presentation-layer-spi/ExceptionRecognizer.adoc[`ExceptionRecognizer`] (SPI)
+* xref:rg:svc:application-layer-api/MessageService.adoc[`MessageService`]
 
 i18n:
 
-* xref:applib:svc:presentation-layer-spi/LocaleProvider.adoc[`LocaleProvider`] (SPI)
-* xref:applib:svc:presentation-layer-spi/TranslationService.adoc[`TranslationService`] (SPI)
-* xref:applib:svc:presentation-layer-spi/TranslationsResolver.adoc[`TranslationsResolver`] (SPI)
+* xref:rg:svc:presentation-layer-spi/LocaleProvider.adoc[`LocaleProvider`] (SPI)
+* xref:rg:svc:presentation-layer-spi/TranslationService.adoc[`TranslationService`] (SPI)
+* xref:rg:svc:presentation-layer-spi/TranslationsResolver.adoc[`TranslationsResolver`] (SPI)
 
 Other API:
 
-* xref:applib:svc:testing/SudoService.adoc[`SudoService`]
-* xref:applib:svc:application-layer-api/TransactionService.adoc[`TransactionService`]
+* xref:rg:svc:testing/SudoService.adoc[`SudoService`]
+* xref:rg:svc:application-layer-api/TransactionService.adoc[`TransactionService`]
 
 Other SPI:
 
-* xref:applib:svc:bootstrapping-spi/ClassDiscoveryService.adoc[`ClassDiscoveryService`] (SPI)
+* xref:rg:svc:bootstrapping-spi/ClassDiscoveryService.adoc[`ClassDiscoveryService`] (SPI)
 
 Extensions:
 
-* xref:applib:svc:testing/FixtureScripts.adoc[`FixtureScripts`]
-* xref:applib:svc:testing/FixtureScriptsSpecificationProvider.adoc[`FixtureScriptsSpecificationProvider`] (SPI)
+* xref:rg:svc:testing/FixtureScripts.adoc[`FixtureScripts`]
+* xref:rg:svc:testing/FixtureScriptsSpecificationProvider.adoc[`FixtureScriptsSpecificationProvider`] (SPI)
 
-A full list of services can be found in the xref:applib:svc:about.adoc[Domain Services] reference guide.
+A full list of services can be found in the xref:rg:svc:about.adoc[Domain Services] reference guide.
 
diff --git a/antora/components/userguide/modules/fun/pages/building-blocks/events.adoc b/antora/components/userguide/modules/fun/pages/building-blocks/events.adoc
index f332f29..80f9fac 100644
--- a/antora/components/userguide/modules/fun/pages/building-blocks/events.adoc
+++ b/antora/components/userguide/modules/fun/pages/building-blocks/events.adoc
@@ -4,16 +4,16 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-When the framework renders a domain object, and as the end-user interacts with the domain object, the framework it emits multiple events using the intra-process xref:applib:svc:core-domain-api/EventBusService.adoc[event bus].
+When the framework renders a domain object, and as the end-user interacts with the domain object, the framework it emits multiple events using the intra-process xref:rg:svc:core-domain-api/EventBusService.adoc[event bus].
 These events enable other domain services (possibly in other modules) to influence how the domain object is rendered, or to perform side-effects or even veto an action invocation.
 
 [TIP]
 ====
-It is also possible to simulate the rendering of a domain object by way of the xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`].
+It is also possible to simulate the rendering of a domain object by way of the xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`].
 This allows business rules to be enforced for programmatic interactions between objects.
 ====
 
-To receive the events, the domain service should subscribe to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`], and implement an appropriately annotated method to receive the events.
+To receive the events, the domain service should subscribe to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`], and implement an appropriately annotated method to receive the events.
 
 The framework has several categories of events: domain events, UI events and lifecycle events.
 These are explored in the sections below.
diff --git a/antora/components/userguide/modules/fun/pages/building-blocks/events/domain-events.adoc b/antora/components/userguide/modules/fun/pages/building-blocks/events/domain-events.adoc
index 67fad24..3da2611 100644
--- a/antora/components/userguide/modules/fun/pages/building-blocks/events/domain-events.adoc
+++ b/antora/components/userguide/modules/fun/pages/building-blocks/events/domain-events.adoc
@@ -4,9 +4,9 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-Domain events are fired -- through the internal xref:applib:svc:core-domain-api/EventBusService.adoc[event bus] -- for every user interaction with each object member (property, collection or action).
+Domain events are fired -- through the internal xref:rg:svc:core-domain-api/EventBusService.adoc[event bus] -- for every user interaction with each object member (property, collection or action).
 
-By default, rendering a property causes a `PropertyDomainEvent` to be fired, though the xref:applib:ant:Property.adoc#domainEvent[`@Property#domainEvent()`] attribute allows a custom subclass to be specified if necessary.
+By default, rendering a property causes a `PropertyDomainEvent` to be fired, though the xref:rg:ant:Property.adoc#domainEvent[`@Property#domainEvent()`] attribute allows a custom subclass to be specified if necessary.
 Similarly, rendering a collection causes a `CollectionDomainEvent` to be fired, and rendering an action causes an `ActionDomainEvent` to be fired.
 
 In fact, each event can be fired up to five times, with the event's `getEventPhase()` method indicating to the subscriber the phase:
@@ -32,7 +32,7 @@ For example, a cascade delete could be implemented here.
 For example, a business audit event could be implemented here.
 
 
-For more details on the actual domain event classes, see the xref:applib:cms:classes/domainevent.adoc[domain event] section of the relevant reference guide.
+For more details on the actual domain event classes, see the xref:rg:cms:classes/domainevent.adoc[domain event] section of the relevant reference guide.
 
 
 
diff --git a/antora/components/userguide/modules/fun/pages/building-blocks/events/lifecycle-events.adoc b/antora/components/userguide/modules/fun/pages/building-blocks/events/lifecycle-events.adoc
index 789673df..fde1d87 100644
--- a/antora/components/userguide/modules/fun/pages/building-blocks/events/lifecycle-events.adoc
+++ b/antora/components/userguide/modules/fun/pages/building-blocks/events/lifecycle-events.adoc
@@ -33,7 +33,7 @@ Note that this requires that the object is instantiated using the framework, see
 There is no lifecycle event for object creating because the framework doesn't know about newly created objects until they have been created; and there is no lifecycle event for obejcts removed because it is not valid to "touch" a domain entity once deleted.
 
 
-For example, if annotated with xref:applib:ant:DomainObject.adoc#updatingLifecycleEvent[`@DomainObjectLayout#updatingLifecycleEvent()`], the appropriate (subclass of) `ObjectUpdatingEvent` will be emitted.
- Similarly for xref:applib:ant:DomainObjectLayout.adoc#iconUiEvent[`iconUiEvent()`] and xref:applib:ant:DomainObjectLayout.adoc#cssClassUiEvent[`cssClassUiEvent()`].
+For example, if annotated with xref:rg:ant:DomainObject.adoc#updatingLifecycleEvent[`@DomainObjectLayout#updatingLifecycleEvent()`], the appropriate (subclass of) `ObjectUpdatingEvent` will be emitted.
+ Similarly for xref:rg:ant:DomainObjectLayout.adoc#iconUiEvent[`iconUiEvent()`] and xref:rg:ant:DomainObjectLayout.adoc#cssClassUiEvent[`cssClassUiEvent()`].
 
 
diff --git a/antora/components/userguide/modules/fun/pages/building-blocks/events/ui-events.adoc b/antora/components/userguide/modules/fun/pages/building-blocks/events/ui-events.adoc
index 2523a95..925576d 100644
--- a/antora/components/userguide/modules/fun/pages/building-blocks/events/ui-events.adoc
+++ b/antora/components/userguide/modules/fun/pages/building-blocks/events/ui-events.adoc
@@ -10,8 +10,8 @@ xref:ug:fun:ui-hints/object-titles-and-icons.adoc[Normally] the code to return t
 However, UI events allow this title and icon to be provided instead by a subscriber.
 UI events have higher precedence than the other mechanisms of supplying a title.
 
-If annotated with xref:applib:ant:DomainObjectLayout.adoc#titleUiEvent[`@DomainObjectLayout#titleUiEvent()`], the appropriate (subclass of) `TitleUiEvent` will be emitted.
- Similarly for xref:applib:ant:DomainObjectLayout.adoc#iconUiEvent[`iconUiEvent()`] and xref:applib:ant:DomainObjectLayout.adoc#cssClassUiEvent[`cssClassUiEvent()`].
+If annotated with xref:rg:ant:DomainObjectLayout.adoc#titleUiEvent[`@DomainObjectLayout#titleUiEvent()`], the appropriate (subclass of) `TitleUiEvent` will be emitted.
+ Similarly for xref:rg:ant:DomainObjectLayout.adoc#iconUiEvent[`iconUiEvent()`] and xref:rg:ant:DomainObjectLayout.adoc#cssClassUiEvent[`cssClassUiEvent()`].
 
 This can be particularly useful for xref:ug:fun:programming-model.adoc#jaxb[JAXB-style view models] which are code generated from XSDs and so cannot have any dependencies on the rest of the Apache Isis framework.
 Here a subscriber on the default events can provide a title and icon for such an object.
diff --git a/antora/components/userguide/modules/fun/pages/building-blocks/identifiers/oid.adoc b/antora/components/userguide/modules/fun/pages/building-blocks/identifiers/oid.adoc
index 51c1e74..0e79bf7 100644
--- a/antora/components/userguide/modules/fun/pages/building-blocks/identifiers/oid.adoc
+++ b/antora/components/userguide/modules/fun/pages/building-blocks/identifiers/oid.adoc
@@ -25,19 +25,19 @@ Some examples:
 * the information within an OID could be converted into a barcode, and stamped onto a PDF form.
 When the PDF is scanned by the mail room, the barcode could be read to attach the correspondence to the relevant domain object.
 
-* as a handle to any object in an audit record, as used by xref:applib:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`];
+* as a handle to any object in an audit record, as used by xref:rg:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`];
 
-* similarly within implementations of xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] to persist `Command` objects
+* similarly within implementations of xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] to persist `Command` objects
 
-* similarly within implementations of xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] to persist published action invocations
+* similarly within implementations of xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] to persist published action invocations
 
 * and of course both the xref:vro:ROOT:about.adoc[RestfulObjects viewer] and xref:vw:ROOT:about.adoc[Wicket viewer] use the oid tuple to look up, render and allow the user to interact with domain objects.
 
 Although the exact content of an OID should be considered opaque by domain objects, it is possible for domain objects to obtain OIDs.
-These are represented as ``Bookmark``s, obtained from the xref:applib:svc:integration-api/BookmarkService.adoc[``BookmarkService``].
-Deep links meanwhile can be obtained from the xref:applib:svc:presentation-layer-api/DeepLinkService.adoc[``DeepLinkService`].
+These are represented as ``Bookmark``s, obtained from the xref:rg:svc:integration-api/BookmarkService.adoc[``BookmarkService``].
+Deep links meanwhile can be obtained from the xref:rg:svc:presentation-layer-api/DeepLinkService.adoc[``DeepLinkService`].
 
 OIDs can also be converted into XML format, useful for integration scenarios.
-The xref:schema:ROOT:common.adoc[common schema] XSD defines the `oidDto` complex type for precisely this purpose.
+The xref:rg:schema:common.adoc[common schema] XSD defines the `oidDto` complex type for precisely this purpose.
 
 
diff --git a/antora/components/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc b/antora/components/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc
index d6e842a..77c7bf7 100644
--- a/antora/components/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc
+++ b/antora/components/userguide/modules/fun/pages/building-blocks/types-of-domain-objects/view-models.adoc
@@ -115,7 +115,7 @@ In case it's not obvious, these DTOs are still usable as "regular" view models;
 In fact (as the xref:ug:fun:programming-model.adoc#jaxb[programming model] section below makes clear), these JAXB-annotated view models are in many regards the most powerful of all the alternative ways of writing view models.
 
 It's also worth noting that it is also possible to download the XML (or XSD) straight from the UI, useful during development.
-The view model simply needs to implement the xref:applib:cms:classes/mixins.adoc#Dto[`Dto`] marker interface; the framework has xref:applib:cms:classes/mixins.adoc#Dto[mixins] that contribute the download actions to the view model.
+The view model simply needs to implement the xref:rg:cms:classes/mixins.adoc#Dto[`Dto`] marker interface; the framework has xref:rg:cms:classes/mixins.adoc#Dto[mixins] that contribute the download actions to the view model.
 
 [TIP]
 ====
diff --git a/antora/components/userguide/modules/fun/pages/business-rules/side-effects.adoc b/antora/components/userguide/modules/fun/pages/business-rules/side-effects.adoc
index d6c9a5a..d52bbc0 100644
--- a/antora/components/userguide/modules/fun/pages/business-rules/side-effects.adoc
+++ b/antora/components/userguide/modules/fun/pages/business-rules/side-effects.adoc
@@ -46,6 +46,6 @@ Datanucleus does _not_ call the setter when reloading the object from the databa
 
 [NOTE]
 ====
-The framework also allows side-effect code to be placed in separate xref:applib:cms:methods.adoc#modify[`modify...()`], xref:applib:cms:methods.adoc#clear[`clear...()`] supporting methods; if present then these will be called by the framework rather than the setter.
+The framework also allows side-effect code to be placed in separate xref:rg:cms:methods.adoc#modify[`modify...()`], xref:rg:cms:methods.adoc#clear[`clear...()`] supporting methods; if present then these will be called by the framework rather than the setter.
 However, because of DataNucleus' smart handling of setters, these supporting methods are in essence redundant, and so should be considered deprecated.
 ====
diff --git a/antora/components/userguide/modules/fun/pages/business-rules/usability.adoc b/antora/components/userguide/modules/fun/pages/business-rules/usability.adoc
index f71ba87..8082aa6 100644
--- a/antora/components/userguide/modules/fun/pages/business-rules/usability.adoc
+++ b/antora/components/userguide/modules/fun/pages/business-rules/usability.adoc
@@ -29,7 +29,7 @@ To make _all_ of the properties of a domain object unmodifiable, use:
 public class Customer { /* ... */ }
 ----
 
-This can be made a global policy using a xref:cfg:ROOT:configuring-core.adoc#isis-objects-editing[configuration setting]:
+This can be made a global policy using a xref:rg:cfg:configuring-core.adoc#isis-objects-editing[configuration setting]:
 
 .isis.properties
 [source,ini]
@@ -75,7 +75,7 @@ public String disable1Categorize(Category category) {
 
 == For more information
 
-For more information, see  xref:applib:cms:methods.adoc#disable[`disable...()`] section in the appropriate reference guide.
+For more information, see  xref:rg:cms:methods.adoc#disable[`disable...()`] section in the appropriate reference guide.
 
 
 It is also possible to hide an action parameter, based on the value of some other earlier parameter:
diff --git a/antora/components/userguide/modules/fun/pages/business-rules/validity.adoc b/antora/components/userguide/modules/fun/pages/business-rules/validity.adoc
index c493f82..b75830c 100644
--- a/antora/components/userguide/modules/fun/pages/business-rules/validity.adoc
+++ b/antora/components/userguide/modules/fun/pages/business-rules/validity.adoc
@@ -43,8 +43,8 @@ It is also possible to return a localized string by returning a `TranslatableStr
 
 == For more information
 
-For more information, see the xref:applib:cms:methods.adoc#validate[`validate...()`] section in the appropriate reference guide.
-The reference guide also explains how to define validation declaratively, using the xref:applib:ant:Parameter.adoc#mustSatisfy[`@Parameter#mustSatisfy()`] or xref:applib:ant:Property.adoc#mustSatisfy[`@Property#mustSatisfy()`] attributes.
+For more information, see the xref:rg:cms:methods.adoc#validate[`validate...()`] section in the appropriate reference guide.
+The reference guide also explains how to define validation declaratively, using the xref:rg:ant:Parameter.adoc#mustSatisfy[`@Parameter#mustSatisfy()`] or xref:rg:ant:Property.adoc#mustSatisfy[`@Property#mustSatisfy()`] attributes.
 
 
 
diff --git a/antora/components/userguide/modules/fun/pages/business-rules/visibility.adoc b/antora/components/userguide/modules/fun/pages/business-rules/visibility.adoc
index 871a9bf..3bf30d6 100644
--- a/antora/components/userguide/modules/fun/pages/business-rules/visibility.adoc
+++ b/antora/components/userguide/modules/fun/pages/business-rules/visibility.adoc
@@ -62,7 +62,7 @@ However, if they check the first boolean parameter (ie, to ship the `Order` to t
 
 == For more information
 
-For more information, see the xref:applib:cms:methods.adoc#hide[`hide...()`] section in the appropriate reference guide.
+For more information, see the xref:rg:cms:methods.adoc#hide[`hide...()`] section in the appropriate reference guide.
 
 
 
diff --git a/antora/components/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc b/antora/components/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc
index 37d9ea9..bd77a2d 100644
--- a/antora/components/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc
+++ b/antora/components/userguide/modules/fun/pages/core-concepts/apache-isis-vs/cqrs.adoc
@@ -31,10 +31,10 @@ There are other reasons though why a separate read model might make sense, such
 In these cases Apache Isis can often provide a reasonable alternative, namely to map domain entities against RDBMS views, either materialized views or dynamic.
 In such cases there is still only a single physical datastore, and so transactional integrity is retained.
 
-Or, the CQRS architecture can be more fully implemented with Apache Isis by introducing a separate read model, synchronized using the xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`], or using xref:applib:cms:classes/super.adoc#AbstractSubscriber[subscribers]  on the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`].
+Or, the CQRS architecture can be more fully implemented with Apache Isis by introducing a separate read model, synchronized using the xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`], or using xref:rg:cms:classes/super.adoc#AbstractSubscriber[subscribers]  on the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`].
 One can then use xref:ug:fun:building-blocks.adoc#view-models[view models] to surface the data in the external read datastore.
 
-With respect to commands, Apache Isis does of course support the xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] which allows each business action to be reified into a `Command`.
+With respect to commands, Apache Isis does of course support the xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] which allows each business action to be reified into a `Command`.
 However, names are misleading here: Apache Isis' commands are relatively passive, merely recording the intent of the user to invoke some operation.
 In a CQRS architecture, though, commands take a more active role, locating and acting upon the domain objects.
 More significantly, in CQRS each command has its own class, such as `PlaceOrderCommand`, instantiated by the client and then executed.
diff --git a/antora/components/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc b/antora/components/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
index 0a07b14..4df39cc 100644
--- a/antora/components/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
+++ b/antora/components/userguide/modules/fun/pages/core-concepts/apache-isis-vs/event-sourcing.adoc
@@ -22,8 +22,8 @@ Note that the event might be dispatched and consumed in-process or alternatively
 If the latter, then the subscriber will operate within a separate transaction, meaning the usual eventual consistency concerns and also compensating actions if a rollback is required.
 CQRS/event sourcing advocates point out -- correctly -- that this is just how things are in the "real world" too.
 
-In Apache Isis every business action (and indeed, property and collection) emits domain events through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`], and can optionally also be published through the xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
-The former are dispatched and consumed in-process and within the same transaction, and for this reason the xref:applib:cms:classes/super.adoc#AbstractSubscriber[subscribers] can also veto the events.
+In Apache Isis every business action (and indeed, property and collection) emits domain events through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`], and can optionally also be published through the xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
+The former are dispatched and consumed in-process and within the same transaction, and for this reason the xref:rg:cms:classes/super.adoc#AbstractSubscriber[subscribers] can also veto the events.
 The latter are intended for out-of-process consumption; the (obsolete) http://github.com/isisaddons-legacy/isis-module-publishing[Isis addons' publishing] and the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s publishmq modules provide implementations for dispatching either through a RDBMS database table, or directly through to an link:http://camel.apache.org[ActiveMQ] message queue (eg wired up to link:http://camel.apache.org[Apache Camel] event bus).
 
 
diff --git a/antora/components/userguide/modules/fun/pages/core-concepts/deployment-options.adoc b/antora/components/userguide/modules/fun/pages/core-concepts/deployment-options.adoc
index abd212c..f9c2de5 100644
--- a/antora/components/userguide/modules/fun/pages/core-concepts/deployment-options.adoc
+++ b/antora/components/userguide/modules/fun/pages/core-concepts/deployment-options.adoc
@@ -49,7 +49,7 @@ In fact, the only hard dependency that the domain model classes have on Apache I
 So, if you have used Apache Isis for prototyping (discussed above), then note that it's quite feasible to take your domain model a the basis of your actual development effort; Apache Isis' annotations and programming conventions will help ensure that any subtle semantics you might have captured in your prototyping are not lost.
 
 If you go this route, your deployment platform will of course need to provide similar capabilities to Apache Isis.
-In particular, you'll need to figure out a way to inject domain services into domain entities (eg using a JPA listener), and you'll also need to reimplement any domain services you have used that Apache Isis provides "out-of-the-box" (eg xref:applib:svc:persistence-layer-api/QueryResultsCache.adoc[`QueryResultsCache`] domain service).
+In particular, you'll need to figure out a way to inject domain services into domain entities (eg using a JPA listener), and you'll also need to reimplement any domain services you have used that Apache Isis provides "out-of-the-box" (eg xref:rg:svc:persistence-layer-api/QueryResultsCache.adoc[`QueryResultsCache`] domain service).
 
 
 
diff --git a/antora/components/userguide/modules/fun/pages/core-concepts/principles/for-the-long-term.adoc b/antora/components/userguide/modules/fun/pages/core-concepts/principles/for-the-long-term.adoc
index 5c14aa0..8bd2250 100644
--- a/antora/components/userguide/modules/fun/pages/core-concepts/principles/for-the-long-term.adoc
+++ b/antora/components/userguide/modules/fun/pages/core-concepts/principles/for-the-long-term.adoc
@@ -32,7 +32,7 @@ To support the business domain being split into separate modules, the framework
 
 * dependency injection of services +
 +
-Both xref:applib:svc:about.adoc[framework-defined domain services] and application-defined services (eg repositories and factories) are injected everywhere, using the regular xref:applib:ant:Inject.adoc[`@javax.inject.Inject`] annotation.
+Both xref:rg:svc:about.adoc[framework-defined domain services] and application-defined services (eg repositories and factories) are injected everywhere, using the regular xref:rg:ant:Inject.adoc[`@javax.inject.Inject`] annotation.
 
 * mixins allow functionality defined in one module to appear (in the UI) to be provided by some other module. +
 +
@@ -53,7 +53,7 @@ Or, it might conceivably perform a cascade delete of all associated communicatio
 
 For those cases where a module needs to interact with other modules but does not know about their implementations, the module can either define its own link:https://en.wikipedia.org/wiki/Service_provider_interface[SPI] domain services or it can define custom domain events and fire them.
 This technique is also used extensively by the framework itself.
- For example, the xref:applib:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`] SPI enables custom auditing, and the xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] SPI enables custom publishing
+ For example, the xref:rg:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`] SPI enables custom auditing, and the xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] SPI enables custom publishing
 
 When building a modular application, it's important to consider the logical layering of the modules: we don't need every module to be completely decoupled from every other.
 The most important requirement is that there are no cyclic dependencies, because otherwise we run the risk of the application degrading into a link:https://en.wikipedia.org/wiki/Big_ball_of_mud["big ball of mud"].
diff --git a/antora/components/userguide/modules/fun/pages/crud.adoc b/antora/components/userguide/modules/fun/pages/crud.adoc
index e62a065..2c2ccd7 100644
--- a/antora/components/userguide/modules/fun/pages/crud.adoc
+++ b/antora/components/userguide/modules/fun/pages/crud.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 
 
 This chapter shows the idioms for creating, reading, updating and deleting xref:ug:fun:building-blocks.adoc#domain-entities[domain entities].
-The main domain services used for this are xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`] and xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService`].
+The main domain services used for this are xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`] and xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService`].
 
 It also shows how to instantiate xref:ug:fun:building-blocks.adoc#view-models[view models] and how to programmatically instantiate xref:ug:fun:building-blocks.adoc#mixins[mixins] (useful primarily for xref:testing:integ-test-support:about.adoc[integration testing]).
 
diff --git a/antora/components/userguide/modules/fun/pages/crud/deleting.adoc b/antora/components/userguide/modules/fun/pages/crud/deleting.adoc
index 3492bef..f227e09 100644
--- a/antora/components/userguide/modules/fun/pages/crud/deleting.adoc
+++ b/antora/components/userguide/modules/fun/pages/crud/deleting.adoc
@@ -4,7 +4,7 @@
 include::_attributes.adoc[]
 :page-partial:
 
-Domain entities can be deleted using xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`].
+Domain entities can be deleted using xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`].
 For example:
 
 [source,java]
@@ -15,7 +15,7 @@ repositoryService.remove(customer);
 
 It's worth being aware that (as for persisting new entities) the framework does _not_ eagerly delete the object.
 Rather, it queues up an internal command structure representing the object deletion request.
-This is then executed either at the end of the transaction, or if a  xref:ug:fun:crud/finding.adoc[query is run], or if the internal queue is manually flushed using xref:applib:svc:application-layer-api/TransactionService.adoc[`TransactionService`]'s `flush()` method.
+This is then executed either at the end of the transaction, or if a  xref:ug:fun:crud/finding.adoc[query is run], or if the internal queue is manually flushed using xref:rg:svc:application-layer-api/TransactionService.adoc[`TransactionService`]'s `flush()` method.
 
 Alternatively, you can use:
 
diff --git a/antora/components/userguide/modules/fun/pages/crud/finding.adoc b/antora/components/userguide/modules/fun/pages/crud/finding.adoc
index 6046a65..a2181f5 100644
--- a/antora/components/userguide/modules/fun/pages/crud/finding.adoc
+++ b/antora/components/userguide/modules/fun/pages/crud/finding.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 Retrieving domain entities typically requires a JDOQL query defined on the domain entity, and a corresponding repository service for that domain entity type.
-This repository calls the framework-provided xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`] to actually submit the query.
+This repository calls the framework-provided xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`] to actually submit the query.
 
 For example:
 
@@ -48,7 +48,7 @@ public class CustomerRepository {
     RepositoryService repositoryService;
 }
 ----
-<1>	The xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`] is a generic facade over the JDO/DataNucleus API.
+<1>	The xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`] is a generic facade over the JDO/DataNucleus API.
 <2> Specifies the class that is annotated with @Query
 <3> Corresponds to the `@Query#name()` attribute
 <4> Corresponds to the `:name` parameter in the query JDOQL string
@@ -62,5 +62,5 @@ When an object is loaded from the database the framework will emit `ObjectLoaded
 
 == Type-safe queries
 
-DataNucleus also supports type-safe queries; see xref:applib:svc:persistence-layer-api/IsisJdoSupport.adoc#type-safe-jdoql-queries[here] for further details.
+DataNucleus also supports type-safe queries; see xref:rg:svc:persistence-layer-api/IsisJdoSupport.adoc#type-safe-jdoql-queries[here] for further details.
 
diff --git a/antora/components/userguide/modules/fun/pages/crud/instantiating.adoc b/antora/components/userguide/modules/fun/pages/crud/instantiating.adoc
index 53fc54b..39b7ccd 100644
--- a/antora/components/userguide/modules/fun/pages/crud/instantiating.adoc
+++ b/antora/components/userguide/modules/fun/pages/crud/instantiating.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 
-Both domain entities and view models can be instantiated using the xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService`] provided by the framework.
+Both domain entities and view models can be instantiated using the xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService`] provided by the framework.
 For example:
 
 [source,java]
@@ -41,7 +41,7 @@ public class Customer {
 ----
 
 In such cases, the domain object cannot be instantiated using `FactoryService`.
-Instead the xref:applib:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] service can be used to inject services:
+Instead the xref:rg:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] service can be used to inject services:
 
 [source,java]
 ----
diff --git a/antora/components/userguide/modules/fun/pages/crud/persisting.adoc b/antora/components/userguide/modules/fun/pages/crud/persisting.adoc
index efd6c9f..b08b986 100644
--- a/antora/components/userguide/modules/fun/pages/crud/persisting.adoc
+++ b/antora/components/userguide/modules/fun/pages/crud/persisting.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 
-Once a domain entity has been instantiated and initialized, it can be persisted using the xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`].
+Once a domain entity has been instantiated and initialized, it can be persisted using the xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`].
 
 For example:
 
@@ -45,7 +45,7 @@ Note that the `persist()` returns the object passed to it.
 
 It's worth being aware that the framework does _not_ eagerly persist the object.
 Rather, it queues up an internal command structure representing the object persistence request.
-This is then executed either at the end of the transaction, or if a xref:ug:fun:crud/finding.adoc[query is run], or if the internal queue is manually flushed using xref:applib:svc:application-layer-api/TransactionService.adoc[`TransactionService`]'s `flush()` method.
+This is then executed either at the end of the transaction, or if a xref:ug:fun:crud/finding.adoc[query is run], or if the internal queue is manually flushed using xref:rg:svc:application-layer-api/TransactionService.adoc[`TransactionService`]'s `flush()` method.
 Flushing also happens when a repository query is executed, so that the pending persist operation is performed first.
 Generally therefore the lazy persistence approach works well enough.
 
diff --git a/antora/components/userguide/modules/fun/pages/crud/updating.adoc b/antora/components/userguide/modules/fun/pages/crud/updating.adoc
index d77de53..2f47816 100644
--- a/antora/components/userguide/modules/fun/pages/crud/updating.adoc
+++ b/antora/components/userguide/modules/fun/pages/crud/updating.adoc
@@ -11,9 +11,9 @@ Rather, the ORM (DataNucleus) automatically keeps track of the state of each obj
 
 That said, it is possible to "flush" pending changes:
 
-* xref:applib:svc:application-layer-api/TransactionService.adoc[`TransactionService`] acts at the Apache Isis layer, and flushes any pending object persistence or object deletions
+* xref:rg:svc:application-layer-api/TransactionService.adoc[`TransactionService`] acts at the Apache Isis layer, and flushes any pending object persistence or object deletions
 
-* using xref:applib:svc:persistence-layer-api/IsisJdoSupport.adoc[`IsisJdoSupport`] it is possible to reach down to the underlying JDO API, and perform a flush of pending object updates also.
+* using xref:rg:svc:persistence-layer-api/IsisJdoSupport.adoc[`IsisJdoSupport`] it is possible to reach down to the underlying JDO API, and perform a flush of pending object updates also.
 
 
 When an object is updated the framework will emit `ObjectUpdatingEvent` and `ObjectUpdatedEvent` xref:ug:fun:building-blocks.adoc#lifecycle-events[lifecycle events].
diff --git a/antora/components/userguide/modules/fun/pages/drop-downs-and-defaults.adoc b/antora/components/userguide/modules/fun/pages/drop-downs-and-defaults.adoc
index 9c3cbfe..398643a 100644
--- a/antora/components/userguide/modules/fun/pages/drop-downs-and-defaults.adoc
+++ b/antora/components/userguide/modules/fun/pages/drop-downs-and-defaults.adoc
@@ -7,16 +7,16 @@ include::_attributes.adoc[]
 Invoking an action whose parameters are primitives or values (int, date, string etc) is simple: the user can just type in or use a date picker.
 Invoking an action with a parameter of reference type (such as `Customer` or `Order`) requires the viewer to provide some mechanism by which the end-user can select the relevant instance.
 
-If the list of available options is fixed then the developer can provided a list a xref:applib:cms:methods.adoc#choices[`choices...()`] supporting method (for either and action parameter or when editing a property).
+If the list of available options is fixed then the developer can provided a list a xref:rg:cms:methods.adoc#choices[`choices...()`] supporting method (for either and action parameter or when editing a property).
 These are rendered in a drop-down.
 
-If the list of available options is much larger, then the developer can use an xref:applib:cms:methods.adoc#autoComplete[`autoComplete...()`] supporting method.
+If the list of available options is much larger, then the developer can use an xref:rg:cms:methods.adoc#autoComplete[`autoComplete...()`] supporting method.
 The user user enters a few characters and this is used to search for matching reference(s), again rendered in a drop-down.
 
 Similarly, when invoking an action, there may well be suitable defaults for the action arguments.
 For example, if placing an `Order` then -- even if the `Product` argument might not have a sensible default -- the quantity argument could reasonably be defaulted to 1.
 Or, the `Product` might indeed have a default, say the product previously placed by this user.
-The developer indicates this using a xref:applib:cms:methods.adoc#default[`default...()`] supporting method.
+The developer indicates this using a xref:rg:cms:methods.adoc#default[`default...()`] supporting method.
 
 
 == Choices and Default
@@ -110,7 +110,7 @@ For example:
 public class Product { /* ... */ }
 ----
 
-For more on this, see xref:applib:ant:DomainObject.adoc#bounding[`@DomainObject#bounding()`].
+For more on this, see xref:rg:ant:DomainObject.adoc#bounding[`@DomainObject#bounding()`].
 
 Or, if the data type is an enum, then a drop-down will be provided automatically.
 A payment method is a good example of this:
@@ -149,7 +149,7 @@ public class Customers {
 }
 ----
 
-For more on this, see xref:applib:ant:DomainObject.adoc#autoCompleteRepository[`@DomainObject#autoCompleteRepository()`].
+For more on this, see xref:rg:ant:DomainObject.adoc#autoCompleteRepository[`@DomainObject#autoCompleteRepository()`].
 
 [TIP]
 ====
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/actions.adoc b/antora/components/userguide/modules/fun/pages/programming-model/actions.adoc
index 1f1fc55..c8020e0 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/actions.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/actions.adoc
@@ -23,7 +23,7 @@ But if the state change is more complex, then most likely an action should be us
 
 == Defining actions
 
-If the xref:cfg:ROOT:configuring-core.adoc#policy[`isis.reflector.explicitAnnotations.action`] configuration property is set (recommended), then actions are `public` methods with the xref:applib:ant:Action.adoc[`@Action`] annotation.
+If the xref:rg:cfg:configuring-core.adoc#policy[`isis.reflector.explicitAnnotations.action`] configuration property is set (recommended), then actions are `public` methods with the xref:rg:ant:Action.adoc[`@Action`] annotation.
 This annotation can also specify additional domain semantics, for example regarding idempotency.
 
 For example:
@@ -46,7 +46,7 @@ public ShoppingBasket addToBasket(
 For the `product` parameter this is reasonable, but not so for the `quantity` parameter (which would by default show up with a name of "int".
 The `@ParameterLayout` annotation provides a UI hint to the framework.
 
-If the xref:cfg:ROOT:configuring-core.adoc#policy[`isis.reflector.explicitAnnotations.action`] configuration property is _not_ set, then the rules are a little more involved: an action is a public method that is not getters or setters which represent properties or collections, and does not have one of the various method prefixes (such as `hide` or `validate`) used for represent xref:ug:fun:business-rules.adoc[business rules]), and is not annotated with xref:applib:ant:Programmatic.adoc[` [...]
+If the xref:rg:cfg:configuring-core.adoc#policy[`isis.reflector.explicitAnnotations.action`] configuration property is _not_ set, then the rules are a little more involved: an action is a public method that is not getters or setters which represent properties or collections, and does not have one of the various method prefixes (such as `hide` or `validate`) used for represent xref:ug:fun:business-rules.adoc[business rules]), and is not annotated with xref:rg:ant:Programmatic.adoc[`@Progr [...]
 
 
 
@@ -56,7 +56,7 @@ If the xref:cfg:ROOT:configuring-core.adoc#policy[`isis.reflector.explicitAnnota
 Parameter types can be value types or reference types.
 In the case of primitive types, the end-user can just enter the value directly through the parameter field.
 In the case of reference types however (such as `Product`), a drop-down must be provided from which the end-user to select.
-This is done using either a supporting xref:applib:cms:methods.adoc#choices[`choices`] or xref:applib:cms:methods.adoc#autoComplete[`autoComplete`] method.
+This is done using either a supporting xref:rg:cms:methods.adoc#choices[`choices`] or xref:rg:cms:methods.adoc#autoComplete[`autoComplete`] method.
 The "choices" is used when there is a limited set of options, while "autoComplete" is used when there are large set of options such that the end-user must provide some characters to use for a search.
 
 For example, the `addToBasket(...)` action shown above might well have an autocomplete supporting method :
@@ -83,7 +83,7 @@ ProductRepository productRepository;
 <1> Supporting `autoComplete` method.
 The "0" in the name means that this corresponds to parameter 0 of the "addToBasket" action (ie `Product`).
 It is also required to return a Collection of that type.
-<2> The xref:applib:ant:MinLength.adoc[`@MinLength`] annotation defines how many characters the end-user must enter before performing a search.
+<2> The xref:rg:ant:MinLength.adoc[`@MinLength`] annotation defines how many characters the end-user must enter before performing a search.
 <3> The implementation delegates to an injected repository service.  This is typical.
 
 Note that it is also valid to define "choices" and "autoComplete" for value types (such as `quantity`, above); it just isn't as common to do so.
@@ -154,13 +154,13 @@ public List<Product> autoComplete0AddToBasket(@MinLength(3) String searchTerm) {
 }
 ----
 
-As the example suggests, any collection parameter type must provide a way to select items, either by way of a "choices" or "autoComplete" supporting method or alternatively defined globally using xref:applib:ant:DomainObject.adoc[`@DomainObject`] on the referenced type (described xref:ug:fun:programming-model.adoc#actions#reference-parameter-types[above]).
+As the example suggests, any collection parameter type must provide a way to select items, either by way of a "choices" or "autoComplete" supporting method or alternatively defined globally using xref:rg:ant:DomainObject.adoc[`@DomainObject`] on the referenced type (described xref:ug:fun:programming-model.adoc#actions#reference-parameter-types[above]).
 
 
 == Optional Parameters
 
-Whereas the xref:ug:fun:programming-model.adoc#properties.adoc#optional-properties[optionality of properties] is defined using xref:applib:ant:Column#allowsNull[`@javax.jdo.annotations.Column#allowsNull()`], that JDO annotation cannot be applied to parameter types.
-Instead, either the xref:applib:ant:Nullable.adoc[`@Nullable`] annotation or the xref:applib:ant:Parameter.adoc#optionality[`@Parameter#optionality()`]  annotation/attribute is used.
+Whereas the xref:ug:fun:programming-model.adoc#properties.adoc#optional-properties[optionality of properties] is defined using xref:rg:ant:Column#allowsNull[`@javax.jdo.annotations.Column#allowsNull()`], that JDO annotation cannot be applied to parameter types.
+Instead, either the xref:rg:ant:Nullable.adoc[`@Nullable`] annotation or the xref:rg:ant:Parameter.adoc#optionality[`@Parameter#optionality()`]  annotation/attribute is used.
 
 For example:
 
@@ -188,8 +188,8 @@ See also xref:ug:fun:programming-model.adoc#properties-vs-parameters[properties
 
 == ``String`` Parameters (Length)
 
-Whereas the length of string properties is defined using xref:applib:ant:Column#length-for-strings.adoc[`@javax.jdo.annotations.Column#length()`], that JDO annotation cannot be applied to parameter types.
-Instead, the xref:applib:ant:Parameter.adoc#maxLength[`@Parameter#maxLength()`] annotation/attribute is used.
+Whereas the length of string properties is defined using xref:rg:ant:Column#length-for-strings.adoc[`@javax.jdo.annotations.Column#length()`], that JDO annotation cannot be applied to parameter types.
+Instead, the xref:rg:ant:Parameter.adoc#maxLength[`@Parameter#maxLength()`] annotation/attribute is used.
 
 For example:
 
@@ -215,8 +215,8 @@ public Customer updateName(
     return this;
 }
 ----
-<1> Specifies the property length using the JDO xref:applib:ant:Column#length.adoc[`@Column#length()`] annotation
-<2> Specifies the parameter length using the (Apache Isis) xref:applib:ant:Parameter.adoc#maxLength[`@Parameter#maxLength()`] annotation
+<1> Specifies the property length using the JDO xref:rg:ant:Column#length.adoc[`@Column#length()`] annotation
+<2> Specifies the parameter length using the (Apache Isis) xref:rg:ant:Parameter.adoc#maxLength[`@Parameter#maxLength()`] annotation
 
 [IMPORTANT]
 ====
@@ -228,8 +228,8 @@ See also xref:ug:fun:programming-model.adoc#properties-vs-parameters[properties
 
 == ``BigDecimal``s (Precision)
 
-Whereas the precision of `BigDecimal` properties is defined using xref:applib:ant:Column#scale.adoc[`@javax.jdo.annotations.Column#scale()`], that JDO annotation cannot be applied to parameter types.
-Instead, the xref:applib:ant:Digits.adoc[`@javax.validation.constraints.Digits#fraction()`] annotation/attribute is used.
+Whereas the precision of `BigDecimal` properties is defined using xref:rg:ant:Column#scale.adoc[`@javax.jdo.annotations.Column#scale()`], that JDO annotation cannot be applied to parameter types.
+Instead, the xref:rg:ant:Digits.adoc[`@javax.validation.constraints.Digits#fraction()`] annotation/attribute is used.
 
 For example:
 
@@ -247,8 +247,8 @@ public Order updateDiscount(
     return this;
 }
 ----
-<1> Specifies the property precision using xref:applib:ant:Column#scale.adoc[`@Column#scale()`]
-<2> Specifies the corresponding parameter precision using xref:applib:ant:Digits.adoc[`@Digits#fraction()`].
+<1> Specifies the property precision using xref:rg:ant:Column#scale.adoc[`@Column#scale()`]
+<2> Specifies the corresponding parameter precision using xref:rg:ant:Digits.adoc[`@Digits#fraction()`].
 
 See also xref:ug:fun:programming-model.adoc#properties-vs-parameters[properties vs parameters].
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc
index a2826ec..a185d01 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/event-subscribers.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 
 Domain services acting as event subscribers can subscribe to xref:ug:fun:building-blocks.adoc#lifecycle-events[lifecycle] events, influencing the rendering and behaviour of other objects.
 
-All subscribers must subscribe to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`]; as this amounts to a few lines of boilerplate it's easiest to inherit from the convenience `AbstractSubscriber` class.
+All subscribers must subscribe to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`]; as this amounts to a few lines of boilerplate it's easiest to inherit from the convenience `AbstractSubscriber` class.
 
 We suggest naming such classes `XxxSubscriptions`, for example:
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/initialization.adoc b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/initialization.adoc
index 7584a7b..a224f04 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/initialization.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/initialization.adoc
@@ -10,10 +10,10 @@ Services can optionally declare lifecycle callbacks to initialize them (when the
 
 An Apache Isis session _is_ available when initialization occurs (so services can interact with the object store, for example).
 
-The framework will call any `public` method annotated with xref:applib:ant:PostConstruct.adoc[`@PostConstruct`] with either no arguments of an argument of type `Map<String,String>`.
+The framework will call any `public` method annotated with xref:rg:ant:PostConstruct.adoc[`@PostConstruct`] with either no arguments of an argument of type `Map<String,String>`.
 In the latter case, the framework passes in the configuration.
 
-Shutdown is similar; the framework will call any method annotated with xref:applib:ant:PreDestroy.adoc[`@PreDestroy`].
+Shutdown is similar; the framework will call any method annotated with xref:rg:ant:PreDestroy.adoc[`@PreDestroy`].
 
 
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/menu.adoc b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/menu.adoc
index 3bb667e..a228b7f 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/menu.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/menu.adoc
@@ -49,11 +49,11 @@ public class CustomerMenu {
     protected CustomerRepository customerRepository;            // <6>
 }
 ----
-<1> The (Apache Isis) xref:applib:ant:DomainService.adoc[`@DomainService`] annotation is used to identify the class as a domain service.
+<1> The (Apache Isis) xref:rg:ant:DomainService.adoc[`@DomainService`] annotation is used to identify the class as a domain service.
 Apache Isis scans the classpath looking for classes with this annotation, so there very little configuration other than to tell the framework which packages to scan underneath.
 The `VIEW` nature indicates that this service's actions should be exposed as menu items.
-<2> The `findByName` method is annotated with various Apache Isis annotations (xref:applib:ant:Action.adoc[`@Action`], xref:applib:ant:ActionLayout.adoc[`@ActionLayout`] and xref:applib:ant:MemberOrder.adoc[`@MemberOrder`] and is itself rendered in the UI as a "Find By Name" menu item underneath the "Simple Objects" menu.
-<3> The xref:applib:ant:ParameterLayout.adoc[`@ParameterLayout`] provides metadata for the parameter itself, in this case its name.
+<2> The `findByName` method is annotated with various Apache Isis annotations (xref:rg:ant:Action.adoc[`@Action`], xref:rg:ant:ActionLayout.adoc[`@ActionLayout`] and xref:rg:ant:MemberOrder.adoc[`@MemberOrder`] and is itself rendered in the UI as a "Find By Name" menu item underneath the "Simple Objects" menu.
+<3> The xref:rg:ant:ParameterLayout.adoc[`@ParameterLayout`] provides metadata for the parameter itself, in this case its name.
 +
 [TIP]
 ====
@@ -63,7 +63,7 @@ There's no need to name the action parameters if the code is compiled using the
 <4> the action implementation delegates to an injected repository.
 The framework can inject into not just other domain services but will also automatically into domain entities and view models.
 There is further discussion of service injection xref:ug:fun:programming-model.adoc#inject-services[below].
-<5> xref:applib:ant:Action.adoc#restrictTo[Prototype] actions are rendered only in prototyping mode.
+<5> xref:rg:ant:Action.adoc#restrictTo[Prototype] actions are rendered only in prototyping mode.
 A "list all" action such as this can be useful when exploring the domain with a small dataset.
 <6> Menu services typically delegate to an underlying repository/ies specific to the domain (rather than use `RepositoryService` directly, for example).
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc
index ce36e18..2b2921f 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/registering.adoc
@@ -7,8 +7,8 @@ include::_attributes.adoc[]
 // TODO: v2: this is out of date, need to xref Spring Boot mechanism instead.
 
 
-The easiest way to register domain services with the framework is to use an xref:applib:cms:classes/AppManifest-bootstrapping.adoc[`AppManifest`].
-This specifies the modules which contain xref:applib:ant:DomainService.adoc[`@DomainService`]-annotated classes.
+The easiest way to register domain services with the framework is to use an xref:rg:cms:classes/AppManifest-bootstrapping.adoc[`AppManifest`].
+This specifies the modules which contain xref:rg:ant:DomainService.adoc[`@DomainService`]-annotated classes.
 
 For example:
 
@@ -29,7 +29,7 @@ public class MyAppManifest implements AppManifest {
 will load all services in the packages underneath the four modules listed.
 
 
-Examples of framework-provided services (as defined in the applib) include clock, auditing, publishing, exception handling, view model support, snapshots/mementos, and user/application settings management; see the xref:applib:svc:about.adoc[domain services] reference guide for further details.
+Examples of framework-provided services (as defined in the applib) include clock, auditing, publishing, exception handling, view model support, snapshots/mementos, and user/application settings management; see the xref:rg:svc:about.adoc[domain services] reference guide for further details.
 
 
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/repository-and-factory.adoc b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/repository-and-factory.adoc
index 193d27d..58aa60c 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/repository-and-factory.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/repository-and-factory.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 
 
 
-The repository/factory uses an injected xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`] to both instantiate new objects and to query the database for existing objects of a given entity type.
+The repository/factory uses an injected xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`] to both instantiate new objects and to query the database for existing objects of a given entity type.
 It is not visible in UI, rather other services delegate to it.
 
 We suggest naming such classes `XxxRepository`, eg:
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/scoped-services.adoc b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/scoped-services.adoc
index 7de763c..9bd8479 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/domain-services/scoped-services.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/domain-services/scoped-services.adoc
@@ -9,7 +9,7 @@ By default all domain services are considered to be singletons, and thread-safe.
 
 Sometimes though a service's lifetime is applicable only to a single request; in other words it is request-scoped.
 
-The CDI annotation xref:applib:ant:RequestScoped.adoc[`@javax.enterprise.context.RequestScoped`] is used to indicate this fact:
+The CDI annotation xref:rg:ant:RequestScoped.adoc[`@javax.enterprise.context.RequestScoped`] is used to indicate this fact:
 
 [source,java]
 ----
@@ -19,5 +19,5 @@ public class MyService extends AbstractService {
 }
 ----
 
-The framework provides a number of request-scoped services, include a xref:applib:svc:core-domain-api/Scratchpad.adoc[`Scratchpad`] service query results caching through the xref:applib:svc:persistence-layer-api/QueryResultsCache.adoc[`QueryResultsCache`], and support for co-ordinating bulk actions through the xref:applib:svc:application-layer-api/ActionInvocationContext.adoc[`ActionInvocationContext`] service.  See the xref:applib:svc:about.adoc[domain services] reference guide for furt [...]
+The framework provides a number of request-scoped services, include a xref:rg:svc:core-domain-api/Scratchpad.adoc[`Scratchpad`] service query results caching through the xref:rg:svc:persistence-layer-api/QueryResultsCache.adoc[`QueryResultsCache`], and support for co-ordinating bulk actions through the xref:rg:svc:application-layer-api/ActionInvocationContext.adoc[`ActionInvocationContext`] service.  See the xref:rg:svc:about.adoc[domain services] reference guide for further details.
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/inject-services.adoc b/antora/components/userguide/modules/fun/pages/programming-model/inject-services.adoc
index 9a93d88..74f3d7e 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/inject-services.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/inject-services.adoc
@@ -4,7 +4,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-Apache Isis runs on top of SpringBoot, and uses SpringBoot for dependency injection, both of the applications own domain services and als of the very many additional services defined by the framework (such as xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`]).
+Apache Isis runs on top of SpringBoot, and uses SpringBoot for dependency injection, both of the applications own domain services and als of the very many additional services defined by the framework (such as xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`]).
 
 However, not only does it autowire domain services into other services, it also ensures that services are injected into any domain object (eg entity, view model, fixture script, specification etc).
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/mixins.adoc b/antora/components/userguide/modules/fun/pages/programming-model/mixins.adoc
index 0fff2ff..cbf163a 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/mixins.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/mixins.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 A xref:ug:fun:building-blocks.adoc#mixins[mixin] acts like a trait or extension method, allowing one module to contribute behaviour or derived state to another object.
 
-Syntactically, a mixin is defined using either the xref:applib:ant:Mixin.adoc[`@Mixin`] annotation or using xref:applib:ant:DomainObject.adoc#nature[`@DomainObject#nature()`] attribute (specifying a nature of `Nature.MIXIN`).
+Syntactically, a mixin is defined using either the xref:rg:ant:Mixin.adoc[`@Mixin`] annotation or using xref:rg:ant:DomainObject.adoc#nature[`@DomainObject#nature()`] attribute (specifying a nature of `Nature.MIXIN`).
 
 // TODO: v2: perhaps we should get rid of @DomainObject#nature=MIXIN ?
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/mixins/programmatic-usage.adoc b/antora/components/userguide/modules/fun/pages/programming-model/mixins/programmatic-usage.adoc
index bbf2856..d6e5cbf 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/mixins/programmatic-usage.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/mixins/programmatic-usage.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 When a domain object is rendered, the framework will automatically instantiate all required mixins and delegate to them dynamically.
 If writing integration tests or fixtures, or (sometimes) just regular domain logic, then you may need to instantiate mixins directly.
 
-For this you can use the xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService#mixin(...)`] method.
+For this you can use the xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService#mixin(...)`] method.
 
 For example:
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/properties.adoc b/antora/components/userguide/modules/fun/pages/programming-model/properties.adoc
index a83315c..d507140 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/properties.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/properties.adoc
@@ -119,7 +119,7 @@ For example:
 private String notes;
 ----
 
-If this is omitted then whether editing is enabled or disabled is defined globally, in the `isis.properties` configuration file; see xref:cfg:ROOT:configuring-core.adoc#isis-objects-editing[reference configuration guide] for further details.
+If this is omitted then whether editing is enabled or disabled is defined globally, in the `isis.properties` configuration file; see xref:rg:cfg:configuring-core.adoc#isis-objects-editing[reference configuration guide] for further details.
 
 
 == Ignoring Properties
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/view-models/dto.adoc b/antora/components/userguide/modules/fun/pages/programming-model/view-models/dto.adoc
index 8f20083..cb6a1ed 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/view-models/dto.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/view-models/dto.adoc
@@ -49,7 +49,7 @@ public class ToDoItemV1_1 implements Dto {                          // <5>
 <1> package name encodes major version; see discussion on xref:ug:fun:programming-model.adoc#versioning[versioning]
 <2> identifies this class as a view model and defines the root element for JAXB serialization
 <3> all properties in the class must be listed; (they can be ignored using `@XmlTransient`)
-<4> demonstrating use of UI events for a subscriber to provide the DTO's title; see xref:applib:ant:DomainObjectLayout.adoc#titleUiEvent[`@DomainObjectLayout#titleUiEvent()`].
+<4> demonstrating use of UI events for a subscriber to provide the DTO's title; see xref:rg:ant:DomainObjectLayout.adoc#titleUiEvent[`@DomainObjectLayout#titleUiEvent()`].
 <5> class name encodes (major and) minor version; see discussion on xref:ug:fun:programming-model.adoc#versioning[versioning]
 <6> again, see discussion on xref:ug:fun:programming-model.adoc#versioning[versioning]
 <7> again, see discussion on xref:ug:fun:programming-model.adoc#versioning[versioning]
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/view-models/dto/dto-consumers.adoc b/antora/components/userguide/modules/fun/pages/programming-model/view-models/dto/dto-consumers.adoc
index 85c3570..028acab 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/view-models/dto/dto-consumers.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/view-models/dto/dto-consumers.adoc
@@ -8,9 +8,9 @@ include::_attributes.adoc[]
 The actual consumers of DTOs will generally obtain the XML of the view models either by requesting the XML directly, eg using the xref:vro:ROOT:about.adoc[RestfulObjects viewer], or may have the XML sent to them asynchronously using an ESB such as Apache Camel.
 
 In the former case, the consumer requests the DTO by calling the REST API with the appropriate HTTP `Accept` header.
-An appropriate implementation of xref:applib:svc:presentation-layer-spi/ContentMappingService.adoc[`ContentMappingService`] can then be used to return the appropriate DTO (as XML).
+An appropriate implementation of xref:rg:svc:presentation-layer-spi/ContentMappingService.adoc[`ContentMappingService`] can then be used to return the appropriate DTO (as XML).
 
-For the latter case, one design is simply for the application to instantiate the view model, then call the xref:applib:svc:integration-api/JaxbService.adoc[`JaxbService`] to obtain its corresponding XML.  This can then be published onto the ESB, for example using an http://activemq.apache.org[Apache ActiveMQ (TM)] queue.
+For the latter case, one design is simply for the application to instantiate the view model, then call the xref:rg:svc:integration-api/JaxbService.adoc[`JaxbService`] to obtain its corresponding XML.  This can then be published onto the ESB, for example using an http://activemq.apache.org[Apache ActiveMQ (TM)] queue.
 
 However, rather than try to push all the data that might be needed by any of these external systems in a single XML event (which would require anticipating all the requirements, likely a hopeless task), a better design is to publish only the fact that something of note has changed - ie, that an action on a domain object has been invoked - and then let the consumers call back to obtain other information if required.
 This can once again be done by calling the REST API with an appropriate HTTP `Accept` header.
@@ -22,7 +22,7 @@ In our case we focus on the validation (to determine the nature of the inbound m
 ====
 
 The (non-ASF) link:https://platform.incode.org[Incode Platform^]'s publishmq module provides an out-of-the-box solution of this design.
-It provides an implementation of the xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`], but which simply publishes instances of xref:schema:ROOT:ixn.adoc[`InteractionDto`] to an ActiveMQ queue.
+It provides an implementation of the xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`], but which simply publishes instances of xref:rg:schema:ixn.adoc[`InteractionDto`] to an ActiveMQ queue.
 Camel (or similar) can then be hooked up to consume these events from this queue, and use a processor to parse the action memento to determine what has changed on the source system.
 Thereafter, a subsequent Camel processor can then call back to the source - via the xref:vro:ROOT:about.adoc[Restful Objects viewer] - to enrich the message with additional details using a DTO.
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/view-models/jaxb.adoc b/antora/components/userguide/modules/fun/pages/programming-model/view-models/jaxb.adoc
index 27f7634..9ddf23b 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/view-models/jaxb.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/view-models/jaxb.adoc
@@ -56,10 +56,10 @@ The derived properties could also have been implemented using xref:ug:fun:buildi
 
 [IMPORTANT]
 ====
-Be aware that all the state will become the DTO's memento, ultimately converted into a URL-safe form, by way of the xref:applib:svc:presentation-layer-spi/UrlEncodingService.adoc[`UrlEncodingService`].
+Be aware that all the state will become the DTO's memento, ultimately converted into a URL-safe form, by way of the xref:rg:svc:presentation-layer-spi/UrlEncodingService.adoc[`UrlEncodingService`].
 
 There are limits to the lengths of URLs, however.
-If the URL does exceed limits or contains invalid characters, then provide a custom implementation of xref:applib:svc:presentation-layer-spi/UrlEncodingService.adoc[`UrlEncodingService`] to handle the memento string in some other fashion (eg substituting it with a GUID, with the memento cached somehow on the server).
+If the URL does exceed limits or contains invalid characters, then provide a custom implementation of xref:rg:svc:presentation-layer-spi/UrlEncodingService.adoc[`UrlEncodingService`] to handle the memento string in some other fashion (eg substituting it with a GUID, with the memento cached somehow on the server).
 a URL.
 ====
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/view-models/jaxb/referencing-domain-entities.adoc b/antora/components/userguide/modules/fun/pages/programming-model/view-models/jaxb/referencing-domain-entities.adoc
index f574804..a28300b 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/view-models/jaxb/referencing-domain-entities.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/view-models/jaxb/referencing-domain-entities.adoc
@@ -8,11 +8,11 @@ It's quite common for view models to be "backed by" (be projections of) some und
 For example, the `CompareCustomers` view model described xref:ug:fun:programming-model.adoc#jaxb[above] actually references two underlying ``Customer`` entities.
 
 It wouldn't make sense to serialize out the state of a persistent entity.
-However, the identity of the underlying entity is well defined; Apache Isis defines the xref:schema:ROOT:common.adoc[common schema] which defines the `<oid-dto>` element (and corresponding `OidDto` class): the object's type and its identifier.
-This is basically a formal XML equivalent to the `Bookmark` object obtained from the xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`].
+However, the identity of the underlying entity is well defined; Apache Isis defines the xref:rg:schema:common.adoc[common schema] which defines the `<oid-dto>` element (and corresponding `OidDto` class): the object's type and its identifier.
+This is basically a formal XML equivalent to the `Bookmark` object obtained from the xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`].
 
-There is only one requirement to make this work: every referenced domain entity must be annotated with xref:applib:ant:XmlJavaTypeAdapter.adoc[`@XmlJavaTypeAdapter`], specifying the framework-provided `PersistentEntityAdapter`.
-And this class is similar to the xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`]: it knows how to create an `OidDto` from an object reference.
+There is only one requirement to make this work: every referenced domain entity must be annotated with xref:rg:ant:XmlJavaTypeAdapter.adoc[`@XmlJavaTypeAdapter`], specifying the framework-provided `PersistentEntityAdapter`.
+And this class is similar to the xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`]: it knows how to create an `OidDto` from an object reference.
 
 Thus, in our view model we can legitimately write:
 
diff --git a/antora/components/userguide/modules/fun/pages/programming-model/view-models/non-jaxb.adoc b/antora/components/userguide/modules/fun/pages/programming-model/view-models/non-jaxb.adoc
index c5b4f78..978f4f2 100644
--- a/antora/components/userguide/modules/fun/pages/programming-model/view-models/non-jaxb.adoc
+++ b/antora/components/userguide/modules/fun/pages/programming-model/view-models/non-jaxb.adoc
@@ -32,7 +32,7 @@ They are:
 @DomainObject(nature=Nature.EXTERNAL_ENTITY)
 public class CustomerRecordOnSAP { /* ... */ }
 ----
-|Annotated with xref:applib:ant:DomainObject.adoc#nature[`@DomainObject#nature()`] and a nature of `EXTERNAL_ENTITY`, with memento derived automatically from the properties of the domain object.  Collections are ignored, as are any properties annotated as xref:applib:ant:Property.adoc#notPersisted[not persisted].
+|Annotated with xref:rg:ant:DomainObject.adoc#nature[`@DomainObject#nature()`] and a nature of `EXTERNAL_ENTITY`, with memento derived automatically from the properties of the domain object.  Collections are ignored, as are any properties annotated as xref:rg:ant:Property.adoc#notPersisted[not persisted].
 
 | In-memory entity
 |[source,java]
@@ -58,7 +58,7 @@ public class Dashboard { /* ... */ }
 public class Dashboard { /* ... */ }
 ----
 
-|Annotated with xref:applib:ant:ViewModel.adoc[`@ViewModel`] annotation (effectively just an alias)' memento is as preceding: from "persisted" properties, collections ignored
+|Annotated with xref:rg:ant:ViewModel.adoc[`@ViewModel`] annotation (effectively just an alias)' memento is as preceding: from "persisted" properties, collections ignored
 
 |Application view model
 |
@@ -69,7 +69,7 @@ public class ExcelUploadManager implements ViewModel {
   public void viewModelInit(String memento) { /* ... */ }
 }
 ----
-|Implement xref:applib:cms:classes/super.adoc#ViewModel[`ViewModel`] interface.  The memento is as defined by the
+|Implement xref:rg:cms:classes/super.adoc#ViewModel[`ViewModel`] interface.  The memento is as defined by the
 interface's methods: the programmer has full control (but also full responsibility) for the string memento.
 
 |===
diff --git a/antora/components/userguide/modules/fun/pages/ui-hints/action-icons-and-css.adoc b/antora/components/userguide/modules/fun/pages/ui-hints/action-icons-and-css.adoc
index 974fcf8..a9f8689 100644
--- a/antora/components/userguide/modules/fun/pages/ui-hints/action-icons-and-css.adoc
+++ b/antora/components/userguide/modules/fun/pages/ui-hints/action-icons-and-css.adoc
@@ -14,7 +14,7 @@ It is also possible to specify additional CSS for an object's members (not just
 
 Action icons can be specified in several ways.
 
-One option is to use the xref:applib:ant:ActionLayout.adoc#cssClassFa[`@ActionLayout#cssClassFa()`].
+One option is to use the xref:rg:ant:ActionLayout.adoc#cssClassFa[`@ActionLayout#cssClassFa()`].
 For example:
 
 [source,java]
@@ -32,10 +32,10 @@ Alternatively, you can specify these hints dynamically in the xref:vw:ROOT:layou
 <cpt:action id="renew" cssClassFa="refresh"/>
 ----
 
-Rather than annotating every action with xref:applib:ant:ActionLayout.adoc#cssClassFa[`@ActionLayout#cssClassFa()`] and xref:applib:ant:ActionLayout.adoc#cssClass[`@ActionLayout#cssClass()`] you can instead specify the UI hint globally using regular expressions.
+Rather than annotating every action with xref:rg:ant:ActionLayout.adoc#cssClassFa[`@ActionLayout#cssClassFa()`] and xref:rg:ant:ActionLayout.adoc#cssClass[`@ActionLayout#cssClass()`] you can instead specify the UI hint globally using regular expressions.
 Not only does this save a lot of boilerplate/editing, it helps ensure consistency across all actions.
 
-To declare fa classes globally, use the xref:cfg:ROOT:configuring-core.adoc[configuration property] `isis.reflector.facet.cssClassFa.patterns` (a comma separated list of key:value pairs).
+To declare fa classes globally, use the xref:rg:cfg:configuring-core.adoc[configuration property] `isis.reflector.facet.cssClassFa.patterns` (a comma separated list of key:value pairs).
 
 For example:
 
@@ -67,18 +67,18 @@ For example, "fa-plus" is applied to all action members called "newXxx"
 
 Similarly, a CSS class can be specified for object members:
 
-* xref:applib:ant:ActionLayout.adoc#cssClass[`@ActionLayout#cssClass()`] for actions
+* xref:rg:ant:ActionLayout.adoc#cssClass[`@ActionLayout#cssClass()`] for actions
 
-* xref:applib:ant:PropertyLayout.adoc#cssClass[`@PropertyLayout#cssClass()`] for properties, and
+* xref:rg:ant:PropertyLayout.adoc#cssClass[`@PropertyLayout#cssClass()`] for properties, and
 
-* xref:applib:ant:CollectionLayout.adoc#cssClass[`@CollectionLayout#cssClass()`] for collections.
+* xref:rg:ant:CollectionLayout.adoc#cssClass[`@CollectionLayout#cssClass()`] for collections.
 
 Again, this CSS class will be attached to an appropriate containing `<div>` or `<span>` on the rendered page.
 
 Possible use cases for this is to highlight the most important properties of a domain object.
 
 
-It is also possible to specify CSS classes globally, using the xref:cfg:ROOT:configuring-core.adoc[configuration property] `isis.reflector.facet.cssClass.patterns` configuration property.
+It is also possible to specify CSS classes globally, using the xref:rg:cfg:configuring-core.adoc[configuration property] `isis.reflector.facet.cssClass.patterns` configuration property.
 
 For example:
 
diff --git a/antora/components/userguide/modules/fun/pages/ui-hints/eager-rendering.adoc b/antora/components/userguide/modules/fun/pages/ui-hints/eager-rendering.adoc
index 1cc6d65..0d0f137 100644
--- a/antora/components/userguide/modules/fun/pages/ui-hints/eager-rendering.adoc
+++ b/antora/components/userguide/modules/fun/pages/ui-hints/eager-rendering.adoc
@@ -9,7 +9,7 @@ For the more commonly used collections though, we'll probably want to show the t
 
 image::programming-model/todoapp-Dashboard.png[width="800px",link="{imagesdir}/programming-model/todoapp-Dashboard.png"]
 
-For this we annotate the collection using xref:applib:ant:CollectionLayout.adoc#defaultView[`@CollectionLayout#defaultView()`]; for example
+For this we annotate the collection using xref:rg:ant:CollectionLayout.adoc#defaultView[`@CollectionLayout#defaultView()`]; for example
 
 [source,java]
 ----
diff --git a/antora/components/userguide/modules/fun/pages/ui-hints/names-and-descriptions.adoc b/antora/components/userguide/modules/fun/pages/ui-hints/names-and-descriptions.adoc
index c00bfeb..e413c79 100644
--- a/antora/components/userguide/modules/fun/pages/ui-hints/names-and-descriptions.adoc
+++ b/antora/components/userguide/modules/fun/pages/ui-hints/names-and-descriptions.adoc
@@ -26,25 +26,25 @@ The table below summarizes the annotations available:
 
 
 | Class
-| xref:applib:ant:DomainObjectLayout.adoc#named[`@DomainObjectLayout#named()`]
-| xref:applib:ant:DomainObjectLayout.adoc#describedAs[`@DomainObjectLayout#describedAs()`]
+| xref:rg:ant:DomainObjectLayout.adoc#named[`@DomainObjectLayout#named()`]
+| xref:rg:ant:DomainObjectLayout.adoc#describedAs[`@DomainObjectLayout#describedAs()`]
 
 
 | Property
-| xref:applib:ant:PropertyLayout.adoc#named[`@PropertyLayout#named()`]
-| xref:applib:ant:PropertyLayout.adoc#describedAs[`@PropertyLayout#describedAs()`]
+| xref:rg:ant:PropertyLayout.adoc#named[`@PropertyLayout#named()`]
+| xref:rg:ant:PropertyLayout.adoc#describedAs[`@PropertyLayout#describedAs()`]
 
 | Collection
-| xref:applib:ant:CollectionLayout.adoc#named[`@CollectionLayout#named()`]
-| xref:applib:ant:CollectionLayout.adoc#describedAs[`@CollectionLayout#describedAs()`]
+| xref:rg:ant:CollectionLayout.adoc#named[`@CollectionLayout#named()`]
+| xref:rg:ant:CollectionLayout.adoc#describedAs[`@CollectionLayout#describedAs()`]
 
 | Action
-| xref:applib:ant:ActionLayout.adoc#named[`@ActionLayout#named()`]
-| xref:applib:ant:ActionLayout.adoc#describedAs[`@ActionLayout#describedAs()`]
+| xref:rg:ant:ActionLayout.adoc#named[`@ActionLayout#named()`]
+| xref:rg:ant:ActionLayout.adoc#describedAs[`@ActionLayout#describedAs()`]
 
 | Action Parameters
-| xref:applib:ant:ParameterLayout.adoc#named[`@ParameterLayout#named()`]
-| xref:applib:ant:ParameterLayout.adoc#describedAs[`@ParameterLayout#describedAs()`]
+| xref:rg:ant:ParameterLayout.adoc#named[`@ParameterLayout#named()`]
+| xref:rg:ant:ParameterLayout.adoc#describedAs[`@ParameterLayout#describedAs()`]
 
 |===
 
diff --git a/antora/components/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc b/antora/components/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc
index daee8a5..5640db2 100644
--- a/antora/components/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc
+++ b/antora/components/userguide/modules/fun/pages/ui-hints/object-titles-and-icons.adoc
@@ -26,7 +26,7 @@ For example the title of a customer object shouldn't include the literal string
 
 === Declarative style
 
-The xref:applib:ant:Title.adoc[`@Title`] annotation can be used build up the title of an object from its constituent parts.
+The xref:rg:ant:Title.adoc[`@Title`] annotation can be used build up the title of an object from its constituent parts.
 
 For example:
 
@@ -88,7 +88,7 @@ could return "Arthur C. Clarke".
 
 === Imperative style
 
-Alternatively, the title can be provided simply by implementing the xref:applib:cms:methods.adoc#title[`title()`] reserved method.
+Alternatively, the title can be provided simply by implementing the xref:rg:cms:methods.adoc#title[`title()`] reserved method.
 
 For example:
 
@@ -117,7 +117,7 @@ A variation on this approach also supports localized names; see xref:ug:btb:i18n
 
 A third alternative is to move the responsibility for deriving the title into a separate subscriber object.
 
-In the target object, we define an appropriate event type and use the xref:applib:ant:DomainObjectLayout.adoc#titleUiEvent[`@DomainObjectLayout#titleUiEvent()`] attribute to specify:
+In the target object, we define an appropriate event type and use the xref:rg:ant:DomainObjectLayout.adoc#titleUiEvent[`@DomainObjectLayout#titleUiEvent()`] attribute to specify:
 
 [source,java]
 ----
@@ -174,7 +174,7 @@ If there is no requirement to customize the icon (the normal case), then the ico
 For example, the icon for a class `org.mydomain.myapp.Customer` will be `org/mydomain/myapp/Customer.png` (if it exists).
 
 Alternatively, a font-awesome icon can be used.
-This is specified using the xref:applib:ant:DomainObjectLayout.adoc#cssClassFa[`@DomainObjectLayout#cssClassFa()`] attribute or in the xref:vw:ROOT:layout/file-based.adoc[layout.xml] file.
+This is specified using the xref:rg:ant:DomainObjectLayout.adoc#cssClassFa[`@DomainObjectLayout#cssClassFa()`] attribute or in the xref:vw:ROOT:layout/file-based.adoc[layout.xml] file.
 
 For example:
 
@@ -191,7 +191,7 @@ public class InvoiceRun {
 
 === Imperative style
 
-To customise the icon on an instance-by-instance basis, we implement the reserved xref:applib:cms:methods.adoc#iconName[`iconName()`] method.
+To customise the icon on an instance-by-instance basis, we implement the reserved xref:rg:cms:methods.adoc#iconName[`iconName()`] method.
 
 For example:
 
@@ -214,7 +214,7 @@ Otherwise it will just use "Order.png", as normal.
 
 As for title, the determination of which image file to use for the icon can be externalized into a UI event subscriber.
 
-In the target object, we define an appropriate event type and use the xref:applib:ant:DomainObjectLayout.adoc#iconUiEvent[`@DomainObjectLayout#iconUiEvent()`] attribute to specify.
+In the target object, we define an appropriate event type and use the xref:rg:ant:DomainObjectLayout.adoc#iconUiEvent[`@DomainObjectLayout#iconUiEvent()`] attribute to specify.
 
 For example:
 
@@ -257,7 +257,7 @@ public class OrderSubscriptions extends AbstractSubscriber {
 
 == Object CSS Styling
 
-It is also possible for an object to return a xref:applib:cms:methods.adoc#cssClass[CSS class].
+It is also possible for an object to return a xref:rg:cms:methods.adoc#cssClass[CSS class].
 In conjunction with xref:vw:ROOT:customisation/tweaking-css-classes.adoc[customized CSS] this can be used to apply arbitrary styling; for example each object could be rendered in a page with a different background colour.
 
 
@@ -265,7 +265,7 @@ In conjunction with xref:vw:ROOT:customisation/tweaking-css-classes.adoc[customi
 === Declarative style
 
 To render an object with a particular CSS, use
-xref:applib:ant:DomainObjectLayout.adoc#cssClass[`@DomainObjectLayout#cssClass()`] or in the xref:vw:ROOT:layout/file-based.adoc[layout.xml] file.
+xref:rg:ant:DomainObjectLayout.adoc#cssClass[`@DomainObjectLayout#cssClass()`] or in the xref:vw:ROOT:layout/file-based.adoc[layout.xml] file.
 
 When the domain object is rendered on its own page, this CSS class will appear on a top-level `<div>`.
 Or, when the domain object is rendered as a row in a collection, then the CSS class will appear in a `<div>` wrapped by the `<tr>` of the row.
@@ -277,7 +277,7 @@ One possible use case would be to render the most important object types with a
 === Imperative style
 
 
-To customise the icon on an instance-by-instance basis, we implement the reserved xref:applib:cms:methods.adoc#cssClass[`cssClass()`] method.
+To customise the icon on an instance-by-instance basis, we implement the reserved xref:rg:cms:methods.adoc#cssClass[`cssClass()`] method.
 
 For example:
 
@@ -300,7 +300,7 @@ If non-null value is returned then the CSS class will be rendered _in addition_
 
 As for title and icon, the determination of which CSS class to render can be externalized into a UI event subscriber.
 
-In the target object, we define an appropriate event type and use the xref:applib:ant:DomainObjectLayout.adoc#cssClassUiEvent[`@DomainObjectLayout#cssClassUiEvent()`] attribute to specify.
+In the target object, we define an appropriate event type and use the xref:rg:ant:DomainObjectLayout.adoc#cssClassUiEvent[`@DomainObjectLayout#cssClassUiEvent()`] attribute to specify.
 
 For example
 
diff --git a/core/applib/_adoc/antora.yml b/core/applib/_adoc/antora.yml
index f30a436..3535d1f 100644
--- a/core/applib/_adoc/antora.yml
+++ b/core/applib/_adoc/antora.yml
@@ -1,6 +1,2 @@
-name: applib
-title: "AppLib"
+name: rg
 version: master
-start_page: ROOT:about.adoc
-nav:
-- modules/ROOT/nav.adoc
diff --git a/core/applib/_adoc/modules/ROOT/_attributes.adoc b/core/applib/_adoc/modules/ROOT/_attributes.adoc
deleted file mode 100644
index 43cb529..0000000
--- a/core/applib/_adoc/modules/ROOT/_attributes.adoc
+++ /dev/null
@@ -1,6 +0,0 @@
-ifndef::env-site,env-github[]
-:attachmentsdir: {moduledir}/attachments
-:examplesdir: {moduledir}/examples
-:imagesdir: {moduledir}/images
-:partialsdir: {moduledir}/partials
-endif::[]
diff --git a/core/applib/_adoc/modules/ROOT/nav.adoc b/core/applib/_adoc/modules/ROOT/nav.adoc
deleted file mode 100644
index 562739a..0000000
--- a/core/applib/_adoc/modules/ROOT/nav.adoc
+++ /dev/null
@@ -1 +0,0 @@
-include::rg:ROOT:partial$nav.adoc[]
\ No newline at end of file
diff --git a/core/applib/_adoc/modules/ROOT/pages/_attributes.adoc b/core/applib/_adoc/modules/ROOT/pages/_attributes.adoc
deleted file mode 100644
index e8ada7c..0000000
--- a/core/applib/_adoc/modules/ROOT/pages/_attributes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-ifndef::env-site,env-github[]
-:moduledir: ..
-include::{moduledir}/_attributes.adoc[]
-endif::[]
diff --git a/core/applib/_adoc/modules/ROOT/pages/about.adoc b/core/applib/_adoc/modules/ROOT/pages/about.adoc
deleted file mode 100644
index 796f956..0000000
--- a/core/applib/_adoc/modules/ROOT/pages/about.adoc
+++ /dev/null
@@ -1,7 +0,0 @@
-= Application Library
-include::_attributes.adoc[]
-
-Documentation comprises:
-
-* xref:applib:ant:about.adoc[Annotations] - part of the reference guide.
-
diff --git a/core/applib/_adoc/modules/ROOT/partials/_attributes.adoc b/core/applib/_adoc/modules/ROOT/partials/_attributes.adoc
deleted file mode 100644
index e8ada7c..0000000
--- a/core/applib/_adoc/modules/ROOT/partials/_attributes.adoc
+++ /dev/null
@@ -1,4 +0,0 @@
-ifndef::env-site,env-github[]
-:moduledir: ..
-include::{moduledir}/_attributes.adoc[]
-endif::[]
diff --git a/core/applib/_adoc/modules/ant/nav.adoc b/core/applib/_adoc/modules/ant/nav.adoc
index de2a49c..053a7ac 100644
--- a/core/applib/_adoc/modules/ant/nav.adoc
+++ b/core/applib/_adoc/modules/ant/nav.adoc
@@ -1 +1 @@
-include::rg:ROOT:partial$nav.adoc[]
+include::rg:ROOT:partial$component-nav.adoc[]
diff --git a/core/applib/_adoc/modules/ant/pages/Action.adoc b/core/applib/_adoc/modules/ant/pages/Action.adoc
index 93a283b..40c61ee 100644
--- a/core/applib/_adoc/modules/ant/pages/Action.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Action.adoc
@@ -16,33 +16,33 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:Action.adoc#associateWith[`associateWith()`]
+|xref:rg:ant:Action.adoc#associateWith[`associateWith()`]
 |_memberId_ +
 ("")
 |associates an action with another property or collection of the action.
 
-|xref:applib:ant:Action.adoc#associateWith[`associateWith-Sequence()`]
+|xref:rg:ant:Action.adoc#associateWith[`associateWith-Sequence()`]
 |_memberId_ +
 ("")
 |associates an action with another property or collection of the action.
 
-|xref:applib:ant:Action.adoc#command[`command()`]
+|xref:rg:ant:Action.adoc#command[`command()`]
 |`AS_CONFIGURED`, `ENABLED`, `DISABLED` +
 (`AS_CONFIGURED`)
 |whether the action invocation should be reified into a `o.a.i.applib.` +
-`services.command.Command` object through the xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service.
+`services.command.Command` object through the xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service.
 
 
 |`commandExecuteIn()`
 |`FOREGROUND`,`BACKGROUND` +
 (`FOREGROUND`)
-|whether to execute the command immediately, or to persist it (assuming that an appropriate implementation of xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] has been configured) such that a background scheduler can execute the command asynchronously
+|whether to execute the command immediately, or to persist it (assuming that an appropriate implementation of xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] has been configured) such that a background scheduler can execute the command asynchronously
 
 
 |`commandPersistence()`
 |`PERSISTED`, `NOT_PERSISTED`, `IF_HINTED` +
 (`PERSISTED`)
-|whether the reified `Command` (as provided by the `CommandContext` domain service) should actually be persisted (assuming an appropriate implementation of xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] has been configured).
+|whether the reified `Command` (as provided by the `CommandContext` domain service) should actually be persisted (assuming an appropriate implementation of xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] has been configured).
 
 
 |`commandDtoProcessor()`
@@ -51,21 +51,21 @@ The table below summarizes the annotation's attributes.
 |If the `Command` also implements `CommandWithDto` (meaning that it can return a `CommandDto`, in other words be converted into an XML memento), then optionally specifies a processor that can refine this XML.
 
 
-|xref:applib:ant:Action.adoc#domainEvent[`domainEvent()`]
+|xref:rg:ant:Action.adoc#domainEvent[`domainEvent()`]
 |subtype of `ActionDomainEvent` +
 (`ActionDomainEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to
 broadcast the action's business rule checking (hide, disable, validate) and its invocation (pre-execute and
 post-execute).
 
 
-|xref:applib:ant:Action.adoc#hidden[`hidden()`]
+|xref:rg:ant:Action.adoc#hidden[`hidden()`]
 |`EVERYWHERE`, `NOWHERE` +
 (`NOWHERE`)
 |indicates where (in the UI) the action should be hidden from the user.
 
 
-|xref:applib:ant:Action.adoc#invokeOn[`invokeOn()`]
+|xref:rg:ant:Action.adoc#invokeOn[`invokeOn()`]
 |`OBJECT_ONLY`, `COLLECTION_ONLY`, `OBJECT_AND_COLLECTION` +
 (`OBJECT_ONLY`)
 |(deprecated - use view models and associated actions instead).
@@ -75,17 +75,17 @@ whether an action can be invoked on a single object and/or on many objects in a
 Currently this is only supported for no-arg actions.
 
 
-|xref:applib:ant:Action.adoc#publishing[`publishing()`]
+|xref:rg:ant:Action.adoc#publishing[`publishing()`]
 |`AS_CONFIGURED`, `ENABLED`, `DISABLED` +
 (`AS_CONFIGURED`)
-|whether the action invocation should be published to the registered xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
+|whether the action invocation should be published to the registered xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
 
-|xref:applib:ant:Action.adoc#restrictTo[`restrictTo()`]
+|xref:rg:ant:Action.adoc#restrictTo[`restrictTo()`]
 |`NO_RESTRICTIONS`,`PROTOTYPING` +
 (`NO_RESTRICTIONS`)
 |whether the action is only available in prototyping mode, or whether it is available also in production mode.
 
-|xref:applib:ant:Action.adoc#semantics[`semantics()`]
+|xref:rg:ant:Action.adoc#semantics[`semantics()`]
 |`SAFE_AND_REQUEST_CACHEABLE`, `SAFE`, +
 `IDEMPOTENT`, `IDEMPOTENT_ARE_YOU_SURE` +
 `NON_IDEMPOTENT`, `NON_IDEMPOTENT_ARE_YOU_SURE` + +
@@ -94,7 +94,7 @@ Currently this is only supported for no-arg actions.
 
 The `...ARE_YOU_SURE` variants cause a confirmation dialog to be displayed in the xref:vw:ROOT:about.adoc[Wicket viewer].
 
-|xref:applib:ant:Action.adoc#typeOf[`typeOf()`]
+|xref:rg:ant:Action.adoc#typeOf[`typeOf()`]
 |(none)
 |if the action returns a collection, hints as to the run-time type of the objects within that collection (as a fallback)
 
diff --git a/core/applib/_adoc/modules/ant/pages/Action/command.adoc b/core/applib/_adoc/modules/ant/pages/Action/command.adoc
index 3d67b09..4cbe3c6 100644
--- a/core/applib/_adoc/modules/ant/pages/Action/command.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Action/command.adoc
@@ -18,13 +18,13 @@ However, the (non-ASF) Incode Platform's link:https://platform.incode.org/module
 
 The annotation works with (and is influenced by the behaviour of) a number of domain services:
 
-* xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`]
-* xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`]
-* xref:applib:svc:spi/BackgroundService.adoc[`BackgroundService`] and
-* xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]
+* xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`]
+* xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`]
+* xref:rg:svc:spi/BackgroundService.adoc[`BackgroundService`] and
+* xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]
 
 
-Each action invocation is automatically reified by the xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service into a `Command` object, capturing details of the target object, the action, the parameter arguments, the user, a timestamp and so on.
+Each action invocation is automatically reified by the xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service into a `Command` object, capturing details of the target object, the action, the parameter arguments, the user, a timestamp and so on.
 
 If an appropriate `CommandService` is configured (for example using (non-ASF) link:https://platform.incode.org/modules/spi/command/spi-command.html[Incode Platform's command] module), then the `Command` itself is persisted.
 
@@ -279,7 +279,7 @@ If `command` is `DISABLED` or does not otherwise apply due to the action's decla
 
 For persisted commands, the `commandExecuteIn()` attribute determines whether the `Command` should be executed in the foreground (the default) or executed in the background.
 
-Background execution means that the command is not executed immediately, but is available for a configured xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`] to execute, eg by way of an in-memory scheduler such as Quartz.
+Background execution means that the command is not executed immediately, but is available for a configured xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`] to execute, eg by way of an in-memory scheduler such as Quartz.
 See xref:ug:btb:about.adoc#BackgroundCommandExecution[here] for further information on this topic.
 
 For example:
diff --git a/core/applib/_adoc/modules/ant/pages/Action/domainEvent.adoc b/core/applib/_adoc/modules/ant/pages/Action/domainEvent.adoc
index 4b9068e..403fe85 100644
--- a/core/applib/_adoc/modules/ant/pages/Action/domainEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Action/domainEvent.adoc
@@ -14,7 +14,7 @@ In the cases of the domain object's actions, the events that are fired are:
 * pre-execute phase: before the invocation of the action
 * post-execute: after the invocation of the action
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] using either link:https://github.com/google/guava[Guava] or link:http://www.axonframework.org/[Axon Framework] annotations and can influence each of these phases.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] using either link:https://github.com/google/guava[Guava] or link:http://www.axonframework.org/[Axon Framework] annotations and can influence each of these phases.
 
 By default the event raised is `ActionDomainEvent.Default`.
 For example:
@@ -57,7 +57,7 @@ This substantially reduces the boilerplate required in subclasses because no exp
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.  The examples below use the Guava API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.  The examples below use the Guava API.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
 
@@ -177,15 +177,15 @@ public class ToDoItem {
 == Raising events programmatically
 
 Normally events are only raised for interactions through the UI.
-However, events can be raised programmatically either by calling the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly, or by emulating the UI by wrapping the target object using the xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] domain service.
+However, events can be raised programmatically either by calling the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly, or by emulating the UI by wrapping the target object using the xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] domain service.
 
 
 == See also
 
 This attribute is also supported for:
 
-* xref:applib:ant:Collection.adoc#domainEvent[collections] and
-* xref:applib:ant:Property.adoc#domainEvent[properties].
+* xref:rg:ant:Collection.adoc#domainEvent[collections] and
+* xref:rg:ant:Property.adoc#domainEvent[properties].
 
 
 
diff --git a/core/applib/_adoc/modules/ant/pages/Action/hidden.adoc b/core/applib/_adoc/modules/ant/pages/Action/hidden.adoc
index f9c7dd6..e114ee8 100644
--- a/core/applib/_adoc/modules/ant/pages/Action/hidden.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Action/hidden.adoc
@@ -11,7 +11,7 @@ Actions can be hidden at the domain-level, indicating that they are not visible
 
 [TIP]
 ====
-It is also possible to use xref:applib:ant:ActionLayout.adoc#hidden[`@ActionLayout#hidden()`] or xref:vw:ROOT:layout/file-based.adoc[file-based layouts] such that the action can be hidden at the view layer.
+It is also possible to use xref:rg:ant:ActionLayout.adoc#hidden[`@ActionLayout#hidden()`] or xref:vw:ROOT:layout/file-based.adoc[file-based layouts] such that the action can be hidden at the view layer.
 Both options are provided with a view that in the future the view-layer semantics may be under the control of (expert) users, whereas domain-layer semantics should never be overridden or modified by the user.
 ====
 
@@ -43,7 +43,7 @@ The other values of the `Where` enum have no meaning for a collection.
 
 [NOTE]
 ====
-For actions of domain services the visibility is dependent upon its xref:applib:ant:DomainService.adoc#nature[`@DomainService#nature()`] and also on whether it is contributed (as per  xref:applib:ant:ActionLayout.adoc#contributedAs[`@ActionLayout#contributedAs()`]).
+For actions of domain services the visibility is dependent upon its xref:rg:ant:DomainService.adoc#nature[`@DomainService#nature()`] and also on whether it is contributed (as per  xref:rg:ant:ActionLayout.adoc#contributedAs[`@ActionLayout#contributedAs()`]).
 ====
 
 
@@ -52,6 +52,6 @@ For actions of domain services the visibility is dependent upon its xref:applib:
 
 This attribute can also be applied to:
 
-* xref:applib:ant:Property.adoc#hidden[properties]
-* xref:applib:ant:Collection.adoc#hidden[collections].
+* xref:rg:ant:Property.adoc#hidden[properties]
+* xref:rg:ant:Collection.adoc#hidden[collections].
 
diff --git a/core/applib/_adoc/modules/ant/pages/Action/publishing.adoc b/core/applib/_adoc/modules/ant/pages/Action/publishing.adoc
index fbefa5f..addd109 100644
--- a/core/applib/_adoc/modules/ant/pages/Action/publishing.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Action/publishing.adoc
@@ -7,10 +7,10 @@ include::_attributes.adoc[]
 
 
 
-The `publishing()` attribute determines whether and how an action invocation is published via the registered implementation of xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
+The `publishing()` attribute determines whether and how an action invocation is published via the registered implementation of xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
 
 A common use case is to notify external "downstream" systems of changes in the state of the Apache Isis application.
-The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:cfg:ROOT:configuring-core.adoc[configuration property] `isis.services.publish.actions` is used to determine the whether the action is published:
+The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:rg:cfg:configuring-core.adoc[configuration property] `isis.services.publish.actions` is used to determine the whether the action is published:
 
 * `all` +
 +
@@ -47,10 +47,10 @@ public class Order {
 
 This attribute is also supported for:
 
-* xref:applib:ant:DomainObject.adoc#publishing[domain objects]
+* xref:rg:ant:DomainObject.adoc#publishing[domain objects]
 + where it controls whether changed objects are published as events, and for
 
-* xref:applib:ant:Property.adoc#publishing[properties]
+* xref:rg:ant:Property.adoc#publishing[properties]
 +
 where it controls whether property edits are published as events.
 
diff --git a/core/applib/_adoc/modules/ant/pages/Action/restrictTo.adoc b/core/applib/_adoc/modules/ant/pages/Action/restrictTo.adoc
index 7a5ddb4..6aafd00 100644
--- a/core/applib/_adoc/modules/ant/pages/Action/restrictTo.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Action/restrictTo.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 
 
-By default actions are available irrespective of the xref:cfg:ROOT:deployment-types.adoc[deployment mode].  The `restrictTo()` attribute specifies whether the action should instead be restricted to only available in prototyping mode.
+By default actions are available irrespective of the xref:rg:cfg:deployment-types.adoc[deployment mode].  The `restrictTo()` attribute specifies whether the action should instead be restricted to only available in prototyping mode.
 
 For example:
 
diff --git a/core/applib/_adoc/modules/ant/pages/Action/semantics.adoc b/core/applib/_adoc/modules/ant/pages/Action/semantics.adoc
index b0f0a0b..5533474 100644
--- a/core/applib/_adoc/modules/ant/pages/Action/semantics.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Action/semantics.adoc
@@ -66,7 +66,7 @@ public class Customer {
 }
 ----
 
-Actions that are safe and request-cacheable automatically use the xref:applib:svc:persistence-layer-api/QueryResultsCache.adoc[`QueryResultsCache`] service to cache the result of the method.  Note though that the results of this caching will only be apparent if the action is invoked from another method using the xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] service.
+Actions that are safe and request-cacheable automatically use the xref:rg:svc:persistence-layer-api/QueryResultsCache.adoc[`QueryResultsCache`] service to cache the result of the method.  Note though that the results of this caching will only be apparent if the action is invoked from another method using the xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] service.
 
 Continuing the example above, imagine code that loops over a set of ``Order``s where each `Order` has an associated `Customer`.  We want to check the credit rating of each `Customer` (a potentially expensive operation) but we don't want to do it more than once per `Customer`.  Invoking through the `WrapperFactory` will allow us to accomplish this by exploiting the semantics of `checkCredit()` action:
 
diff --git a/core/applib/_adoc/modules/ant/pages/Action/typeOf.adoc b/core/applib/_adoc/modules/ant/pages/Action/typeOf.adoc
index a99788f..b37d988 100644
--- a/core/applib/_adoc/modules/ant/pages/Action/typeOf.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Action/typeOf.adoc
@@ -33,5 +33,5 @@ In general we recommend that you use generics instead, eg `List<Customer>`.
 
 == See also
 
-This attribute can also be specified for xref:applib:ant:Collection.adoc#typeOf[collections].
+This attribute can also be specified for xref:rg:ant:Collection.adoc#typeOf[collections].
 
diff --git a/core/applib/_adoc/modules/ant/pages/ActionLayout.adoc b/core/applib/_adoc/modules/ant/pages/ActionLayout.adoc
index f9bea01..c986d89 100644
--- a/core/applib/_adoc/modules/ant/pages/ActionLayout.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ActionLayout.adoc
@@ -16,28 +16,28 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:ActionLayout.adoc#bookmarking[`bookmarking()`]
+|xref:rg:ant:ActionLayout.adoc#bookmarking[`bookmarking()`]
 |`AS_ROOT`, `NEVER` +
 (`NEVER`)
-|indicates if an action (with safe xref:applib:ant:Action.adoc#semantics[action semantics]) is automatically bookmarked.
+|indicates if an action (with safe xref:rg:ant:Action.adoc#semantics[action semantics]) is automatically bookmarked.
 
 
-|xref:applib:ant:ActionLayout.adoc#contributedAs[`contributedAs()`]
+|xref:rg:ant:ActionLayout.adoc#contributedAs[`contributedAs()`]
 |`AS_BOTH`, `AS_ACTION`, `AS_ASSOCIATION`, `AS_NEITHER` +
 (`AS_BOTH`)
 |for a domain service action that can be contributed, whether to contribute as an action or as an association (ie a property or collection). +
 
-For a domain service action to be contributed, the domain services must have a xref:applib:ant:DomainService.adoc#nature[nature] nature of either `VIEW` or `VIEW_CONTRIBUTIONS_ONLY`, and the action must have xref:applib:ant:Action.adoc#semantics[safe action semantics], and takes a single argument, namely the contributee domain object.
+For a domain service action to be contributed, the domain services must have a xref:rg:ant:DomainService.adoc#nature[nature] nature of either `VIEW` or `VIEW_CONTRIBUTIONS_ONLY`, and the action must have xref:rg:ant:Action.adoc#semantics[safe action semantics], and takes a single argument, namely the contributee domain object.
 
 
-|xref:applib:ant:ActionLayout.adoc#cssClass[`cssClass()`]
+|xref:rg:ant:ActionLayout.adoc#cssClass[`cssClass()`]
 |Any string valid as a CSS class
-|an additional CSS class around the HTML that represents for the action, to allow targetted styling in xref:cfg:ROOT:application-specific/application-css.adoc[`application.css`]. +
+|an additional CSS class around the HTML that represents for the action, to allow targetted styling in xref:rg:cfg:application-specific/application-css.adoc[`application.css`]. +
 
 Supported by the xref:vw:ROOT:about.adoc[Wicket viewer] but currently ignored by the xref:vro:ROOT:about.adoc[RestfulObjects viewer].
 
 
-|xref:applib:ant:ActionLayout.adoc#cssClassFa[`cssClassFa()`]
+|xref:rg:ant:ActionLayout.adoc#cssClassFa[`cssClassFa()`]
 |Any valid link:http://fortawesome.github.io/Font-Awesome/[Font awesome] icon name
 |specify a font awesome icon for the action's menu link or icon. +
 
@@ -48,26 +48,26 @@ Supported by the xref:vw:ROOT:about.adoc[Wicket viewer] but currently ignored by
 |Positioning of the icon on the button/menu item.
 
 
-|xref:applib:ant:ActionLayout.adoc#describedAs[`describedAs()`]
+|xref:rg:ant:ActionLayout.adoc#describedAs[`describedAs()`]
 |String.
 |provides a short description of the action, eg for rendering as a 'tool tip'.
 
 
-|xref:applib:ant:ActionLayout.adoc#hidden[`hidden()`]
+|xref:rg:ant:ActionLayout.adoc#hidden[`hidden()`]
 |`EVERYWHERE`, `NOWHERE` +
 (`NOWHERE`)
 |indicates where (in the UI) the action should be hidden from the user.
 
 
-|xref:applib:ant:ActionLayout.adoc#named[`named()`]
+|xref:rg:ant:ActionLayout.adoc#named[`named()`]
 |String.
 |to override the name inferred from the action's name in code. +
 
 A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
 
-|xref:applib:ant:ActionLayout.adoc#position[`position()`]
+|xref:rg:ant:ActionLayout.adoc#position[`position()`]
 |`BELOW`, `RIGHT`, `PANEL`, `PANEL_DROPDOWN` (`BELOW`)
-|for actions associated (using xref:applib:ant:MemberOrder.adoc[`@MemberOrder#named()`]) with properties, the positioning of the action's button with respect to the property
+|for actions associated (using xref:rg:ant:MemberOrder.adoc[`@MemberOrder#named()`]) with properties, the positioning of the action's button with respect to the property
 
 
 |===
diff --git a/core/applib/_adoc/modules/ant/pages/ActionLayout/bookmarking.adoc b/core/applib/_adoc/modules/ant/pages/ActionLayout/bookmarking.adoc
index 4e88d2c..a4169af 100644
--- a/core/applib/_adoc/modules/ant/pages/ActionLayout/bookmarking.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ActionLayout/bookmarking.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 
-The `bookmarking()` attribute indicates if an action (with safe xref:applib:ant:Action.adoc#semantics[action semantics]) is automatically bookmarked.
+The `bookmarking()` attribute indicates if an action (with safe xref:rg:ant:Action.adoc#semantics[action semantics]) is automatically bookmarked.
 
 
 
@@ -46,7 +46,7 @@ indicates that the `notYetComplete()` action is bookmarkable.
 
 [NOTE]
 ====
-The enum value `AS_CHILD` has no meaning for actions; it relates only to bookmarked xref:applib:ant:DomainObject.adoc#bookmarking[domain object]s.
+The enum value `AS_CHILD` has no meaning for actions; it relates only to bookmarked xref:rg:ant:DomainObject.adoc#bookmarking[domain object]s.
 ====
 
 
@@ -57,4 +57,4 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 
 == See also
 
-This attribute is also supported for xref:applib:ant:DomainObjectLayout.adoc#bookmarking[domain objects].
\ No newline at end of file
+This attribute is also supported for xref:rg:ant:DomainObjectLayout.adoc#bookmarking[domain objects].
\ No newline at end of file
diff --git a/core/applib/_adoc/modules/ant/pages/ActionLayout/contributedAs.adoc b/core/applib/_adoc/modules/ant/pages/ActionLayout/contributedAs.adoc
index 4bee7fc..bad4ea4 100644
--- a/core/applib/_adoc/modules/ant/pages/ActionLayout/contributedAs.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ActionLayout/contributedAs.adoc
@@ -10,7 +10,7 @@ For a domain service action that _can_ be contributed, the `contributedAs()` att
 
 The distinction between property or collection is automatic: if the action returns a `java.util.Collection` (or subtype) then the action is contributed as a collection; otherwise it is contributed as a property.
 
-For a domain service action to be contributed, the domain services must have a xref:applib:ant:DomainService.adoc#nature[nature] nature of either `VIEW` or `VIEW_CONTRIBUTIONS_ONLY`, and the action must have xref:applib:ant:Action.adoc#semantics[safe action semantics], and takes a single argument, namely the contributee domain object.
+For a domain service action to be contributed, the domain services must have a xref:rg:ant:DomainService.adoc#nature[nature] nature of either `VIEW` or `VIEW_CONTRIBUTIONS_ONLY`, and the action must have xref:rg:ant:Action.adoc#semantics[safe action semantics], and takes a single argument, namely the contributee domain object.
 
 For example:
 
@@ -43,7 +43,7 @@ public class OrderContributions {
 }
 ----
 
-In such cases, though, it would probably make more sense to annotate the action as either xref:applib:ant:Action.adoc#hidden[hidden] or indeed xref:applib:ant:Programmatic.adoc[`@Programmatic`].
+In such cases, though, it would probably make more sense to annotate the action as either xref:rg:ant:Action.adoc#hidden[hidden] or indeed xref:rg:ant:Programmatic.adoc[`@Programmatic`].
 
 
 
diff --git a/core/applib/_adoc/modules/ant/pages/ActionLayout/cssClass.adoc b/core/applib/_adoc/modules/ant/pages/ActionLayout/cssClass.adoc
index 17e178d..655fe6e 100644
--- a/core/applib/_adoc/modules/ant/pages/ActionLayout/cssClass.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ActionLayout/cssClass.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 
-The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the action.   xref:cfg:ROOT:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the action.   xref:rg:cfg:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
 
 For example:
@@ -22,7 +22,7 @@ public class ToDoItem {
 
 [NOTE]
 ====
-The similar xref:applib:ant:ActionLayout.adoc#cssClassFa[`@ActionLayout#cssClassFa()`] annotation attribute is also used as a hint
+The similar xref:rg:ant:ActionLayout.adoc#cssClassFa[`@ActionLayout#cssClassFa()`] annotation attribute is also used as a hint
 to apply CSS, specifically to add http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icons] on action menu items or buttons.
 ====
 
@@ -36,9 +36,9 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 
 This attribute can also be applied to:
 
-* xref:applib:ant:DomainObjectLayout.adoc#cssClass[domain objects]
-* xref:applib:ant:ViewModelLayout.adoc#cssClass[view models]
-* xref:applib:ant:PropertyLayout.adoc#cssClass[properties]
-* xref:applib:ant:CollectionLayout.adoc#cssClass[collections]
-* xref:applib:ant:ParameterLayout.adoc#cssClass[parameters].
+* xref:rg:ant:DomainObjectLayout.adoc#cssClass[domain objects]
+* xref:rg:ant:ViewModelLayout.adoc#cssClass[view models]
+* xref:rg:ant:PropertyLayout.adoc#cssClass[properties]
+* xref:rg:ant:CollectionLayout.adoc#cssClass[collections]
+* xref:rg:ant:ParameterLayout.adoc#cssClass[parameters].
 
diff --git a/core/applib/_adoc/modules/ant/pages/ActionLayout/cssClassFa.adoc b/core/applib/_adoc/modules/ant/pages/ActionLayout/cssClassFa.adoc
index 9db3f23..c3f9759 100644
--- a/core/applib/_adoc/modules/ant/pages/ActionLayout/cssClassFa.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ActionLayout/cssClassFa.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 The `cssClassFa()` attribute is used to specify the name of a link:http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icon] name, to be rendered on the action's representation as a button or menu item.    The related `cssClassFaPosition()` attribute specifies the positioning of the icon, to the left or the right of the text.
 
-These attributes can also be applied to xref:applib:ant:DomainObjectLayout.adoc#cssClassFa[domain objects] and to xref:applib:ant:ViewModelLayout.adoc#cssClassFa[view models] to specify the object's icon.
+These attributes can also be applied to xref:rg:ant:DomainObjectLayout.adoc#cssClassFa[domain objects] and to xref:rg:ant:ViewModelLayout.adoc#cssClassFa[view models] to specify the object's icon.
 
 
 For example:
@@ -38,6 +38,6 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 
 [NOTE]
 ====
-The similar xref:applib:ant:ActionLayout.adoc#cssClass[`@ActionLayout#cssClass()`] annotation attribute is also used as a hint to apply CSS, but for wrapping the representation of an object or object member so that it can be styled in an application-specific way.
+The similar xref:rg:ant:ActionLayout.adoc#cssClass[`@ActionLayout#cssClass()`] annotation attribute is also used as a hint to apply CSS, but for wrapping the representation of an object or object member so that it can be styled in an application-specific way.
 ====
 
diff --git a/core/applib/_adoc/modules/ant/pages/ActionLayout/describedAs.adoc b/core/applib/_adoc/modules/ant/pages/ActionLayout/describedAs.adoc
index f78dcb6..6e01db2 100644
--- a/core/applib/_adoc/modules/ant/pages/ActionLayout/describedAs.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ActionLayout/describedAs.adoc
@@ -32,9 +32,9 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 
 This attribute can also be specified for:
 
-* xref:applib:ant:CollectionLayout.adoc#describedAs[collections]
-* xref:applib:ant:PropertyLayout.adoc#describedAs[properties]
-* xref:applib:ant:ParameterLayout.adoc#describedAs[parameters]
-* xref:applib:ant:DomainObjectLayout.adoc#describedAs[domain objects]
-* xref:applib:ant:ViewModelLayout.adoc#describedAs[view models].
+* xref:rg:ant:CollectionLayout.adoc#describedAs[collections]
+* xref:rg:ant:PropertyLayout.adoc#describedAs[properties]
+* xref:rg:ant:ParameterLayout.adoc#describedAs[parameters]
+* xref:rg:ant:DomainObjectLayout.adoc#describedAs[domain objects]
+* xref:rg:ant:ViewModelLayout.adoc#describedAs[view models].
 
diff --git a/core/applib/_adoc/modules/ant/pages/ActionLayout/hidden.adoc b/core/applib/_adoc/modules/ant/pages/ActionLayout/hidden.adoc
index 9188043..16a31bf 100644
--- a/core/applib/_adoc/modules/ant/pages/ActionLayout/hidden.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ActionLayout/hidden.adoc
@@ -10,7 +10,7 @@ The `hidden()` attribute indicates where (in the UI) the action should be hidden
 
 [TIP]
 ====
-It is also possible to use xref:applib:ant:Action.adoc#hidden[`@Action#hidden()`] to hide an action at the domain layer.
+It is also possible to use xref:rg:ant:Action.adoc#hidden[`@Action#hidden()`] to hide an action at the domain layer.
 Both options are provided with a view that in the future the view-layer semantics may be under the control of (expert) users, whereas domain-layer semantics should never be overridden or modified by the user.
 ====
 
@@ -41,7 +41,7 @@ The other values of the `Where` enum have no meaning for a collection.
 
 [NOTE]
 ====
-For actions of domain services the visibility is dependent upon its xref:applib:ant:DomainService.adoc#nature[`@DomainService#nature()`] and also on whether it is contributed (as per  xref:applib:ant:ActionLayout.adoc#contributedAs[`@ActionLayout#contributedAs()`]).
+For actions of domain services the visibility is dependent upon its xref:rg:ant:DomainService.adoc#nature[`@DomainService#nature()`] and also on whether it is contributed (as per  xref:rg:ant:ActionLayout.adoc#contributedAs[`@ActionLayout#contributedAs()`]).
 ====
 
 
@@ -57,5 +57,5 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 == See also
 
 This attribute can also be applied to:
-* xref:applib:ant:PropertyLayout.adoc#hidden[properties]
-* xref:applib:ant:CollectionLayout.adoc#hidden[collections].
+* xref:rg:ant:PropertyLayout.adoc#hidden[properties]
+* xref:rg:ant:CollectionLayout.adoc#hidden[collections].
diff --git a/core/applib/_adoc/modules/ant/pages/ActionLayout/named.adoc b/core/applib/_adoc/modules/ant/pages/ActionLayout/named.adoc
index 77300b6..b6f577d 100644
--- a/core/applib/_adoc/modules/ant/pages/ActionLayout/named.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ActionLayout/named.adoc
@@ -40,9 +40,9 @@ The framework also provides a separate, powerful mechanism for xref:ug:btb:i18n.
 
 This attribute can also be specified for:
 
-* xref:applib:ant:CollectionLayout.adoc#named[collections]
-* xref:applib:ant:PropertyLayout.adoc#named[properties]
-* xref:applib:ant:ParameterLayout.adoc#named[parameters]
-* xref:applib:ant:DomainObjectLayout.adoc#named[domain objects]
-* xref:applib:ant:ViewModelLayout.adoc#named[view models]
-* xref:applib:ant:DomainServiceLayout.adoc#named[domain services].
+* xref:rg:ant:CollectionLayout.adoc#named[collections]
+* xref:rg:ant:PropertyLayout.adoc#named[properties]
+* xref:rg:ant:ParameterLayout.adoc#named[parameters]
+* xref:rg:ant:DomainObjectLayout.adoc#named[domain objects]
+* xref:rg:ant:ViewModelLayout.adoc#named[view models]
+* xref:rg:ant:DomainServiceLayout.adoc#named[domain services].
diff --git a/core/applib/_adoc/modules/ant/pages/ActionLayout/position.adoc b/core/applib/_adoc/modules/ant/pages/ActionLayout/position.adoc
index f9dce5e..e725d99 100644
--- a/core/applib/_adoc/modules/ant/pages/ActionLayout/position.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ActionLayout/position.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 
 
 
-The `position()` attribute pertains only to actions that have been associated with properties using xref:applib:ant:MemberOrder.adoc[`@MemberOrder#named()`].  For these actions, it specifies the positioning of the action's button with respect to the field representing the object property.
+The `position()` attribute pertains only to actions that have been associated with properties using xref:rg:ant:MemberOrder.adoc[`@MemberOrder#named()`].  For these actions, it specifies the positioning of the action's button with respect to the field representing the object property.
 
 The attribute can take one of four values: `BELOW`, `RIGHT`, `PANEL` or `PANEL_DROPDOWN`.
 
diff --git a/core/applib/_adoc/modules/ant/pages/ActionLayout/redirect.adoc b/core/applib/_adoc/modules/ant/pages/ActionLayout/redirect.adoc
index 83f9531..916fbf2 100644
--- a/core/applib/_adoc/modules/ant/pages/ActionLayout/redirect.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ActionLayout/redirect.adoc
@@ -16,14 +16,14 @@ This makes for a smoother UI.
 +
 [NOTE]
 ====
-Any properties with xref:applib:ant:PropertyLayout.adoc#unchanging[`@PropertyLayout#unchanging`] are _not_ updated.
+Any properties with xref:rg:ant:PropertyLayout.adoc#unchanging[`@PropertyLayout#unchanging`] are _not_ updated.
 ====
 
 * if set to `EVEN_IF_SAME`, then a redirect occurs and a new web page is rendered.
 
 * if set to `AS_CONFIGURED`, then the default behaviour is as specified by the `isis.viewer.wicket.redirectEvenIfSameObject` xref:vw:ROOT:configuration-properties.adoc[configuration property]).
 
-One use case for choosing `EVEN_IF_SAME` is if the action "returning this" is intended in some way to require that the object use a different layout, as per multiple layout support, as specified using the xref:applib:cms:methods.adoc#layout[`layout()`] method.
+One use case for choosing `EVEN_IF_SAME` is if the action "returning this" is intended in some way to require that the object use a different layout, as per multiple layout support, as specified using the xref:rg:cms:methods.adoc#layout[`layout()`] method.
 
 For example:
 
diff --git a/core/applib/_adoc/modules/ant/pages/Collection.adoc b/core/applib/_adoc/modules/ant/pages/Collection.adoc
index cb28d5d..f91df4e 100644
--- a/core/applib/_adoc/modules/ant/pages/Collection.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Collection.adoc
@@ -16,13 +16,13 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:Collection.adoc#domainEvent[`domainEvent()`]
+|xref:rg:ant:Collection.adoc#domainEvent[`domainEvent()`]
 |subtype of `CollectionDomainEvent` +
 (`CollectionDomainEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to broadcast the collection's business rule checking (hide, disable, validate) and its modification (before and after).
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to broadcast the collection's business rule checking (hide, disable, validate) and its modification (before and after).
 
 
-|xref:applib:ant:Collection.adoc#editing[`editing()`]
+|xref:rg:ant:Collection.adoc#editing[`editing()`]
 |`ENABLED`, `DISABLED`, `AS_CONFIGURED` +
 (`AS_CONFIGURED`)
 |whether a collection can be added to or removed from within the UI
@@ -33,13 +33,13 @@ The table below summarizes the annotation's attributes.
 |if `editing()` is `DISABLED`, provides a reason as to why.
 
 
-|xref:applib:ant:Collection.adoc#hidden[`hidden()`]
+|xref:rg:ant:Collection.adoc#hidden[`hidden()`]
 |`EVERYWHERE`, `OBJECT_FORMS`, `NOWHERE` +
 (`NOWHERE`)
 |indicates where (in the UI) the collection should be hidden from the user.
 
 
-|xref:applib:ant:Collection.adoc#notPersisted[`notPersisted()`]
+|xref:rg:ant:Collection.adoc#notPersisted[`notPersisted()`]
 |`true`, `false` +
 (`false`)
 |whether to exclude from snapshots. +
@@ -51,7 +51,7 @@ Collection must also be annotated with `@javax.jdo.annotations.NotPersistent` in
 
 
 
-|xref:applib:ant:Collection.adoc#typeOf[`typeOf()`]
+|xref:rg:ant:Collection.adoc#typeOf[`typeOf()`]
 |
 |hints as to the run-time type of the objects within that collection (as a fallback)
 
@@ -86,7 +86,7 @@ public class ToDoItem {
 
 [TIP]
 ====
-The annotation is one of a handful (others including xref:applib:ant:CollectionLayout.adoc[`@CollectionLayout`], xref:applib:ant:Property.adoc[`@Property`] and xref:applib:ant:PropertyLayout.adoc[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.  This is specifically
+The annotation is one of a handful (others including xref:rg:ant:CollectionLayout.adoc[`@CollectionLayout`], xref:rg:ant:Property.adoc[`@Property`] and xref:rg:ant:PropertyLayout.adoc[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.  This is specifically
 so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
 ====
 
diff --git a/core/applib/_adoc/modules/ant/pages/Collection/domainEvent.adoc b/core/applib/_adoc/modules/ant/pages/Collection/domainEvent.adoc
index 001de5a..f1de9c7 100644
--- a/core/applib/_adoc/modules/ant/pages/Collection/domainEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Collection/domainEvent.adoc
@@ -14,7 +14,7 @@ In the cases of the domain object's collections, the events that are fired are:
 * pre-execute phase: before the modification of the collection
 * post-execute: after the modification of the collection
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] using either link:https://github.com/google/guava[Guava] or link:http://www.axonframework.org/[Axon Framework] annotations and can influence each of these phases.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] using either link:https://github.com/google/guava[Guava] or link:http://www.axonframework.org/[Axon Framework] annotations and can influence each of these phases.
 
 
 [WARNING]
@@ -22,7 +22,7 @@ Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusServic
 The xref:vw:ROOT:about.adoc[Wicket viewer] does _not_ currently support the modification of collections; they are rendered read-only.
 However, domain events are still relevant to determine if such collections should be hidden.
 
-The workaround is to create add/remove actions and use xref:applib:ant:MemberOrder.adoc[UI hints] to render them close to the collection.
+The workaround is to create add/remove actions and use xref:rg:ant:MemberOrder.adoc[UI hints] to render them close to the collection.
 ====
 
 By default the event raised is `CollectionDomainEvent.Default`. For example:
@@ -72,7 +72,7 @@ This substantially reduces the boilerplate in the subclasses because no explicit
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below use the Guava API.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
@@ -163,15 +163,15 @@ And, conversely, the framework also provides `CollectionDomainEvent.Noop`; if `d
 == Raising events programmatically
 
 Normally events are only raised for interactions through the UI.
-However, events can be raised programmatically either by calling the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly, or by emulating the UI by wrapping the target object using the xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] domain service.
+However, events can be raised programmatically either by calling the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly, or by emulating the UI by wrapping the target object using the xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] domain service.
 
 
 == See also
 
 This attribute is also supported for:
 
-* xref:applib:ant:Action.adoc#domainEvent[actions] and
-* xref:applib:ant:Property.adoc#domainEvent[properties].
+* xref:rg:ant:Action.adoc#domainEvent[actions] and
+* xref:rg:ant:Property.adoc#domainEvent[properties].
 
 
 
diff --git a/core/applib/_adoc/modules/ant/pages/Collection/editing.adoc b/core/applib/_adoc/modules/ant/pages/Collection/editing.adoc
index 3d36b10..2e2fa36 100644
--- a/core/applib/_adoc/modules/ant/pages/Collection/editing.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Collection/editing.adoc
@@ -14,19 +14,19 @@ The related `editingDisabledReason()` attribute specifies the a hard-coded reaso
 ====
 The xref:vw:ROOT:about.adoc[Wicket viewer] does *not* currently support the modification of collections; they are rendered read-only.
 
-The workaround is to create add/remove actions and use xref:applib:ant:MemberOrder.adoc[UI hints] to render them close to the collection.
+The workaround is to create add/remove actions and use xref:rg:ant:MemberOrder.adoc[UI hints] to render them close to the collection.
 ====
 
 Whether a collection is enabled or disabled depends upon these factors:
 
-* whether the domain object has been configured as immutable through the xref:applib:ant:DomainObject.adoc#editing[`@DomainObject#editing()`] attribute
+* whether the domain object has been configured as immutable through the xref:rg:ant:DomainObject.adoc#editing[`@DomainObject#editing()`] attribute
 
-* else (that is, if the domain object's editability is specified as being `AS_CONFIGURED`), then the value of the xref:cfg:ROOT:configuring-core.adoc[configuration property] `isis.objects.editing`.
+* else (that is, if the domain object's editability is specified as being `AS_CONFIGURED`), then the value of the xref:rg:cfg:configuring-core.adoc[configuration property] `isis.objects.editing`.
 If set to `false`, then the object's collections (and properties) are *not* editable
 
 * else, then the value of the `@Collection(editing=...)` attribute itself.
 
-* else, the result of invoking any supporting xref:applib:cms:rgcms.adoc#\_rgcms_methods_prefixes_disable[`disable...()`] supporting methods
+* else, the result of invoking any supporting xref:rg:cms:rgcms.adoc#\_rgcms_methods_prefixes_disable[`disable...()`] supporting methods
 
 
 Thus, to make a collection read-only even if the object would otherwise be editable, use:
@@ -53,6 +53,6 @@ To reiterate, it is _not_ possible to enable editing for a collection if editing
 
 This attribute can also be specified for:
 
-* xref:applib:ant:Property.adoc#editing[properties]
-* xref:applib:ant:DomainObject.adoc#editing[domain object]
+* xref:rg:ant:Property.adoc#editing[properties]
+* xref:rg:ant:DomainObject.adoc#editing[domain object]
 
diff --git a/core/applib/_adoc/modules/ant/pages/Collection/hidden.adoc b/core/applib/_adoc/modules/ant/pages/Collection/hidden.adoc
index df469e3..6e02ff9 100644
--- a/core/applib/_adoc/modules/ant/pages/Collection/hidden.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Collection/hidden.adoc
@@ -10,7 +10,7 @@ Collections can be hidden at the domain-level, indicating that they are not visi
 
 [TIP]
 ====
-It is also possible to use xref:applib:ant:CollectionLayout.adoc#hidden[`@CollectionLayout#hidden()`] or using xref:vw:ROOT:layout/file-based.adoc[file-based layout] such that the collection can be hidden at the view layer.
+It is also possible to use xref:rg:ant:CollectionLayout.adoc#hidden[`@CollectionLayout#hidden()`] or using xref:vw:ROOT:layout/file-based.adoc[file-based layout] such that the collection can be hidden at the view layer.
 Both options are provided with a view that in the future the view-layer semantics may be under the control of (expert) users, whereas domain-layer semantics should never be overridden or modified by the user.
 ====
 
@@ -59,5 +59,5 @@ The xref:vro:ROOT:about.adoc[RestfulObjects viewer] by default suppress collecti
 
 This attribute can also be applied to:
 
-* xref:applib:ant:Action.adoc#hidden[actions]
-* xref:applib:ant:Property.adoc#hidden[properties].
+* xref:rg:ant:Action.adoc#hidden[actions]
+* xref:rg:ant:Property.adoc#hidden[properties].
diff --git a/core/applib/_adoc/modules/ant/pages/Collection/notPersisted.adoc b/core/applib/_adoc/modules/ant/pages/Collection/notPersisted.adoc
index a43384d..daad06f 100644
--- a/core/applib/_adoc/modules/ant/pages/Collection/notPersisted.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Collection/notPersisted.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 
-The (somewhat misnamed) `notPersisted()` attribute indicates that the collection should be excluded from any snapshots generated by the xref:applib:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`].
+The (somewhat misnamed) `notPersisted()` attribute indicates that the collection should be excluded from any snapshots generated by the xref:rg:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`].
 
 
 [WARNING]
@@ -59,5 +59,5 @@ public class Customer {
 
 == See also
 
-This attribute is also supported for xref:applib:ant:Property.adoc#notPersisted[properties].
+This attribute is also supported for xref:rg:ant:Property.adoc#notPersisted[properties].
 
diff --git a/core/applib/_adoc/modules/ant/pages/Collection/typeOf.adoc b/core/applib/_adoc/modules/ant/pages/Collection/typeOf.adoc
index a050d19..a4f7cce 100644
--- a/core/applib/_adoc/modules/ant/pages/Collection/typeOf.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Collection/typeOf.adoc
@@ -27,4 +27,4 @@ In general we recommend that you use generics instead, eg `SortedSet<Order>`.
 
 == See also
 
-This attribute can also be specified for xref:applib:ant:Action.adoc#typeOf[actions].
+This attribute can also be specified for xref:rg:ant:Action.adoc#typeOf[actions].
diff --git a/core/applib/_adoc/modules/ant/pages/CollectionLayout.adoc b/core/applib/_adoc/modules/ant/pages/CollectionLayout.adoc
index 880fcb1..9d65574 100644
--- a/core/applib/_adoc/modules/ant/pages/CollectionLayout.adoc
+++ b/core/applib/_adoc/modules/ant/pages/CollectionLayout.adoc
@@ -17,12 +17,12 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:CollectionLayout.adoc#cssClass[`cssClass()`]
+|xref:rg:ant:CollectionLayout.adoc#cssClass[`cssClass()`]
 |Any string valid as a CSS class
-|the css class that a collection should have, to allow more targetted styling in xref:cfg:ROOT:application-specific/application-css.adoc[`application.css`]
+|the css class that a collection should have, to allow more targetted styling in xref:rg:cfg:application-specific/application-css.adoc[`application.css`]
 
 
-|xref:applib:ant:CollectionLayout.adoc#defaultView[`defaultView()`]
+|xref:rg:ant:CollectionLayout.adoc#defaultView[`defaultView()`]
 |`table`, `excel`, `calendar`, `map`, ...
 |Which view is selected by default, if multiple views are available.
 
@@ -30,18 +30,18 @@ See the (non-ASF) link:https://platform.incode.org[Incode Platform^] for further
 
 
 
-|xref:applib:ant:CollectionLayout.adoc#describedAs[`describedAs()`]
+|xref:rg:ant:CollectionLayout.adoc#describedAs[`describedAs()`]
 |String.
 |description of this collection, eg to be rendered in a tooltip.
 
 
-|xref:applib:ant:CollectionLayout.adoc#hidden[`hidden()`]
+|xref:rg:ant:CollectionLayout.adoc#hidden[`hidden()`]
 |`EVERYWHERE`, `OBJECT_FORMS`, `NOWHERE` +
 (`NOWHERE`)
 |indicates where (in the UI) the collection should be hidden from the user.
 
 
-|xref:applib:ant:CollectionLayout.adoc#named[named()]
+|xref:rg:ant:CollectionLayout.adoc#named[named()]
 |String.
 |to override the name inferred from the collection's name in code. +
 
@@ -53,12 +53,12 @@ A typical use case is if the desired name is a reserved Java keyword, such as `d
 |whether to HTML escape the name of this property.
 
 
-|xref:applib:ant:CollectionLayout.adoc#paged[`paged()`]
+|xref:rg:ant:CollectionLayout.adoc#paged[`paged()`]
 |Positive integer
 |the page size for instances of this class when rendered within a table.
 
 
-|xref:applib:ant:CollectionLayout.adoc#sortedBy[`sortedBy()`]
+|xref:rg:ant:CollectionLayout.adoc#sortedBy[`sortedBy()`]
 |Subclass of `java.util.Comparator` for element type
 |indicates that the elements in the `java.util.SortedSet` collection should be sorted according to a specified `Comparator` rather than their natural sort order.
 
@@ -97,7 +97,7 @@ As an alternative to using the `@CollectionLayout` annotation, a xref:vw:ROOT:la
 
 [TIP]
 ====
-The annotation is one of a handful (others including xref:applib:ant:Collection.adoc[`@Collection`], xref:applib:ant:Property.adoc[`@Property`] and xref:applib:ant:PropertyLayout.adoc[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.  This is specifically
+The annotation is one of a handful (others including xref:rg:ant:Collection.adoc[`@Collection`], xref:rg:ant:Property.adoc[`@Property`] and xref:rg:ant:PropertyLayout.adoc[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.  This is specifically
 so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
 ====
 
diff --git a/core/applib/_adoc/modules/ant/pages/CollectionLayout/cssClass.adoc b/core/applib/_adoc/modules/ant/pages/CollectionLayout/cssClass.adoc
index 1a007c4..1655295 100644
--- a/core/applib/_adoc/modules/ant/pages/CollectionLayout/cssClass.adoc
+++ b/core/applib/_adoc/modules/ant/pages/CollectionLayout/cssClass.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the collection.   xref:cfg:ROOT:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the collection.   xref:rg:cfg:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
 
 
@@ -34,8 +34,8 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 
 This attribute can also be applied to:
 
-* xref:applib:ant:DomainObjectLayout.adoc#cssClass[domain objects]
-* xref:applib:ant:ViewModelLayout.adoc#cssClass[view models]
-* xref:applib:ant:ActionLayout.adoc#cssClass[actions]
-* xref:applib:ant:PropertyLayout.adoc#cssClass[properties]
-* xref:applib:ant:ParameterLayout.adoc#cssClass[parameters].
+* xref:rg:ant:DomainObjectLayout.adoc#cssClass[domain objects]
+* xref:rg:ant:ViewModelLayout.adoc#cssClass[view models]
+* xref:rg:ant:ActionLayout.adoc#cssClass[actions]
+* xref:rg:ant:PropertyLayout.adoc#cssClass[properties]
+* xref:rg:ant:ParameterLayout.adoc#cssClass[parameters].
diff --git a/core/applib/_adoc/modules/ant/pages/CollectionLayout/defaultView.adoc b/core/applib/_adoc/modules/ant/pages/CollectionLayout/defaultView.adoc
index e8b23b6..a0a7576 100644
--- a/core/applib/_adoc/modules/ant/pages/CollectionLayout/defaultView.adoc
+++ b/core/applib/_adoc/modules/ant/pages/CollectionLayout/defaultView.adoc
@@ -27,7 +27,7 @@ public class BusRoute {
 
 [NOTE]
 ====
-This attribute takes precedence over any value for the xref:applib:ant:CollectionLayout.adoc#render[`@CollectionLayout#render()`] attribute.  For example, if the
+This attribute takes precedence over any value for the xref:rg:ant:CollectionLayout.adoc#render[`@CollectionLayout#render()`] attribute.  For example, if the
 `defaultView` attribute is defined to "table", then the table will be show even if `render` is set to `LAZILY`.
 ====
 
diff --git a/core/applib/_adoc/modules/ant/pages/CollectionLayout/describedAs.adoc b/core/applib/_adoc/modules/ant/pages/CollectionLayout/describedAs.adoc
index 69b69e2..f6cfb7e 100644
--- a/core/applib/_adoc/modules/ant/pages/CollectionLayout/describedAs.adoc
+++ b/core/applib/_adoc/modules/ant/pages/CollectionLayout/describedAs.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 The `describedAs()` attribute is used to provide a short description of the collection to the user.  In the xref:vw:ROOT:about.adoc[Wicket viewer] it is displayed as a 'tool tip'.
 
-The `describedAs()` attribute can also be specified for xref:applib:ant:PropertyLayout.adoc#describedAs[properties], xref:applib:ant:ActionLayout.adoc#describedAs[actions], xref:applib:ant:ParameterLayout.adoc#describedAs[parameters], xref:applib:ant:DomainObjectLayout.adoc#describedAs[domain objects] and xref:applib:ant:ViewModelLayout.adoc#describedAs[view models].
+The `describedAs()` attribute can also be specified for xref:rg:ant:PropertyLayout.adoc#describedAs[properties], xref:rg:ant:ActionLayout.adoc#describedAs[actions], xref:rg:ant:ParameterLayout.adoc#describedAs[parameters], xref:rg:ant:DomainObjectLayout.adoc#describedAs[domain objects] and xref:rg:ant:ViewModelLayout.adoc#describedAs[view models].
 
 
 For example:
diff --git a/core/applib/_adoc/modules/ant/pages/CollectionLayout/hidden.adoc b/core/applib/_adoc/modules/ant/pages/CollectionLayout/hidden.adoc
index f57c321..29269dc 100644
--- a/core/applib/_adoc/modules/ant/pages/CollectionLayout/hidden.adoc
+++ b/core/applib/_adoc/modules/ant/pages/CollectionLayout/hidden.adoc
@@ -11,7 +11,7 @@ The `hidden()` attribute indicates where (in the UI) the collection should be hi
 
 [TIP]
 ====
-It is also possible to use xref:applib:ant:Collection.adoc#hidden[`@Collection#hidden()`] to hide an action at the domain layer.
+It is also possible to use xref:rg:ant:Collection.adoc#hidden[`@Collection#hidden()`] to hide an action at the domain layer.
 Both options are provided with a view that in the future the view-layer semantics may be under the control of (expert) users, whereas domain-layer semantics should never be overridden or modified by the user.
 ====
 
@@ -59,5 +59,5 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 
 This attribute can also be applied to:
 
-* xref:applib:ant:ActionLayout.adoc#hidden[actions]
-* xref:applib:ant:PropertyLayout.adoc#hidden[properties].
+* xref:rg:ant:ActionLayout.adoc#hidden[actions]
+* xref:rg:ant:PropertyLayout.adoc#hidden[properties].
diff --git a/core/applib/_adoc/modules/ant/pages/CollectionLayout/named.adoc b/core/applib/_adoc/modules/ant/pages/CollectionLayout/named.adoc
index 450b591..80265f0 100644
--- a/core/applib/_adoc/modules/ant/pages/CollectionLayout/named.adoc
+++ b/core/applib/_adoc/modules/ant/pages/CollectionLayout/named.adoc
@@ -47,9 +47,9 @@ The framework also provides a separate, powerful mechanism for xref:ug:btb:i18n.
 
 This attribute can also be specified for:
 
-* xref:applib:ant:ActionLayout.adoc#named[actions]
-* xref:applib:ant:PropertyLayout.adoc#named[properties]
-* xref:applib:ant:ParameterLayout.adoc#named[parameters]
-* xref:applib:ant:DomainObjectLayout.adoc#named[domain objects]
-* xref:applib:ant:ViewModelLayout.adoc#named[view models]
-* xref:applib:ant:DomainServiceLayout.adoc#named[domain services].
+* xref:rg:ant:ActionLayout.adoc#named[actions]
+* xref:rg:ant:PropertyLayout.adoc#named[properties]
+* xref:rg:ant:ParameterLayout.adoc#named[parameters]
+* xref:rg:ant:DomainObjectLayout.adoc#named[domain objects]
+* xref:rg:ant:ViewModelLayout.adoc#named[view models]
+* xref:rg:ant:DomainServiceLayout.adoc#named[domain services].
diff --git a/core/applib/_adoc/modules/ant/pages/CollectionLayout/paged.adoc b/core/applib/_adoc/modules/ant/pages/CollectionLayout/paged.adoc
index 442a9b8..0e0a313 100644
--- a/core/applib/_adoc/modules/ant/pages/CollectionLayout/paged.adoc
+++ b/core/applib/_adoc/modules/ant/pages/CollectionLayout/paged.adoc
@@ -29,7 +29,7 @@ public class Order {
 ----
 
 
-It is also possible to specify a global default for the page size of standalone collections, using the xref:cfg:ROOT:configuring-core.adoc[configuration property] `isis.viewer.paged.parented`.
+It is also possible to specify a global default for the page size of standalone collections, using the xref:rg:cfg:configuring-core.adoc[configuration property] `isis.viewer.paged.parented`.
 
 
 
@@ -42,5 +42,5 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 
 This attribute can also be applied to:
 
-* xref:applib:ant:DomainObjectLayout.adoc#paged[domain objects]
-* xref:applib:ant:ViewModelLayout.adoc#paged[view models].
+* xref:rg:ant:DomainObjectLayout.adoc#paged[domain objects]
+* xref:rg:ant:ViewModelLayout.adoc#paged[view models].
diff --git a/core/applib/_adoc/modules/ant/pages/Column.adoc b/core/applib/_adoc/modules/ant/pages/Column.adoc
index e8c86cf..2b8d50a 100644
--- a/core/applib/_adoc/modules/ant/pages/Column.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Column.adoc
@@ -31,11 +31,11 @@ public class Customer {
     public void setMiddleInitial(String middleInitial) { /* ... */ }
 ----
 
-Isis also provides xref:applib:ant:Property.adoc#optionality[`@Property#optionality()`] attribute.  If both are specified, Apache Isis will check when it initializes for any contradictions, and will fail-fast with an appropriate error message in the log if there are.
+Isis also provides xref:rg:ant:Property.adoc#optionality[`@Property#optionality()`] attribute.  If both are specified, Apache Isis will check when it initializes for any contradictions, and will fail-fast with an appropriate error message in the log if there are.
 
 You should also be aware that in the lack of either the `@Column#allowsNull()` or the `@Property#optionality()` attributes, that the JDO and Apache Isis defaults differ.  Apache Isis rule is straight-forward: properties are assumed to be required.  JDO on the other hand specifies that only primitive types are mandatory; everything else is assumed to be optional.  Therefore a lack of either annotation can also trigger the fail-fast validation check.
 
-In the vast majority of cases you should be fine just to add the `@Column#allowsNull()` attribute to the getter.  But see the documentation for xref:applib:ant:Property.adoc#optionality[`@Property#optionality()`] attribute for discussion on one or two minor edge cases.
+In the vast majority of cases you should be fine just to add the `@Column#allowsNull()` attribute to the getter.  But see the documentation for xref:rg:ant:Property.adoc#optionality[`@Property#optionality()`] attribute for discussion on one or two minor edge cases.
 
 
 == Length for ``String``s
@@ -58,7 +58,7 @@ public class Customer {
     public void setLastName(String lastName) { /* ... */ }
 ----
 
-Isis also provides xref:applib:ant:Property.adoc#maxLength[`@Property#maxLength()`] attribute.  If both are specified, Apache Isis will check when it initializes for any contradictions, and will fail-fast with an appropriate error message in the log if there are.
+Isis also provides xref:rg:ant:Property.adoc#maxLength[`@Property#maxLength()`] attribute.  If both are specified, Apache Isis will check when it initializes for any contradictions, and will fail-fast with an appropriate error message in the log if there are.
 
 
 
@@ -77,7 +77,7 @@ public class Customer {
     public void setTotalOrdersToDate(BigDecimal totalOrdersToDate) { /* ... */ }
 ----
 
-For ``BigDecimal``s it is also possible to specify the xref:applib:ant:Digits.adoc[`@Digits`] annotation, whose form is `@Digits(integer, fraction)`.
+For ``BigDecimal``s it is also possible to specify the xref:rg:ant:Digits.adoc[`@Digits`] annotation, whose form is `@Digits(integer, fraction)`.
 There is a subtle difference here: while `@Column#scale()` corresponds to `@Digits#fraction()`, the value of `@Column#length()` (ie the precision) is actually the __sum__ of the `@Digits`' `integer()` and `fraction()` parts.
 
 If both are specified, Apache Isis will check when it initializes for any contradictions, and will fail-fast with an appropriate error message in the log if there are.
@@ -113,7 +113,7 @@ public class PartyRelationship {
 
 === Mapping ``Blob``s and ``Clob``s
 
-Isis provides custom value types for xref:applib:cms:classes/value-types.adoc#Blob[`Blob`]s and xref:applib:cms:classes/value-types.adoc#Clob[`Clob`]s.  These value types have multiple internal fields, meaning that they corresponding to multiple columns in the database.  Mapping this correctly requires using  `@Column` within JDO's `@Persistent` annotation.
+Isis provides custom value types for xref:rg:cms:classes/value-types.adoc#Blob[`Blob`]s and xref:rg:cms:classes/value-types.adoc#Clob[`Clob`]s.  These value types have multiple internal fields, meaning that they corresponding to multiple columns in the database.  Mapping this correctly requires using  `@Column` within JDO's `@Persistent` annotation.
 
 For example, here's how to map a `Blob` (taken from (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]):
 
diff --git a/core/applib/_adoc/modules/ant/pages/Digits.adoc b/core/applib/_adoc/modules/ant/pages/Digits.adoc
index 838ccba..da1657c 100644
--- a/core/applib/_adoc/modules/ant/pages/Digits.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Digits.adoc
@@ -26,7 +26,7 @@ public void setCost(final BigDecimal cost) {
         :null;
 }
 ----
-<1> the xref:applib:ant:Column.adoc[`@Column#scale()`] attribute must be ...
+<1> the xref:rg:ant:Column.adoc[`@Column#scale()`] attribute must be ...
 <2> ... consistent with `@Digits#fraction()`
 <3> the correct idiom when setting a new value is to normalized to the correct scale
 
diff --git a/core/applib/_adoc/modules/ant/pages/Discriminator.adoc b/core/applib/_adoc/modules/ant/pages/Discriminator.adoc
index 0c81ebd..152e21a 100644
--- a/core/applib/_adoc/modules/ant/pages/Discriminator.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Discriminator.adoc
@@ -19,12 +19,12 @@ This value is used internally to generate a string representation of an objects
 This can appear in several contexts, including:
 
 * as the value of `Bookmark#getObjectType()` and in the `toString()` value of `Bookmark`
- (see xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
+ (see xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
  ** and thus in the "table-of-two-halves" pattern, as per the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s poly module
-* in the serialization of `OidDto` in the xref:schema:ROOT:cmd[command] and xref:schema:ROOT:about.adoc#ixn.adoc[interaction] schemas
+* in the serialization of `OidDto` in the xref:rg:schema:cmd[command] and xref:rg:schema:about.adoc#ixn.adoc[interaction] schemas
 * in the URLs of the xref:vro:ROOT:about.adoc[RestfulObjects viewer]
 * in the URLs of the xref:vw:ROOT:about.adoc[Wicket viewer] (in general and in particular if xref:vw:ROOT:features/hints-and-copy-url.adoc[copying URLs])
-* in XML snapshots generated by the xref:applib:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`]
+* in XML snapshots generated by the xref:rg:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`]
 
 
 
@@ -47,9 +47,9 @@ has an object type of `custmgmt.Customer`.
 
 The rules of precedence for determining a domain object's object type are:
 
-1. xref:applib:ant:Discriminator.adoc[`@Discriminator`]
+1. xref:rg:ant:Discriminator.adoc[`@Discriminator`]
 2. `@DomainObject#objectType`
-3. xref:applib:ant:PersistenceCapable.adoc[`@PersistenceCapable`], if at least the `schema` attribute is defined.  +
+3. xref:rg:ant:PersistenceCapable.adoc[`@PersistenceCapable`], if at least the `schema` attribute is defined.  +
 +
 If both `schema` and `table` are defined, then the value is "`schema.table`".
 If only `schema` is defined, then the value is "`schema.className`".
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject.adoc
index 15f2769..c61664f 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject.adoc
@@ -17,14 +17,14 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:DomainObject.adoc#auditing[`auditing()`]
+|xref:rg:ant:DomainObject.adoc#auditing[`auditing()`]
 |`AS_CONFIGURED`, `ENABLED`, `DISABLED` +
 (`AS_CONFIGURED`)
 |indicates whether each of the changed properties of an object should be submitted to the registered
-xref:applib:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`](s)
+xref:rg:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`](s)
 
 
-|xref:applib:ant:DomainObject.adoc#autoCompleteRepository[`autoCompleteRepository()`]
+|xref:rg:ant:DomainObject.adoc#autoCompleteRepository[`autoCompleteRepository()`]
 |Domain service class
 |nominate a method on a domain service to be used for looking up instances of the domain object
 
@@ -35,76 +35,76 @@ xref:applib:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`](s)
 |override the method name to use on the auto-complete repository
 
 
-|xref:applib:ant:DomainObject.adoc#bounding[`bounding()`]
+|xref:rg:ant:DomainObject.adoc#bounding[`bounding()`]
 |`true`, `false` +
 (`false`)
 |Whether the number of instances of this domain class is relatively small (a "bounded" set), such that instances could be selected from a drop-down list box or similar.
 
-|xref:applib:ant:DomainObject.adoc#createdLifecycleEvent[`created-` +
+|xref:rg:ant:DomainObject.adoc#createdLifecycleEvent[`created-` +
 `LifecycleEvent()`]
 |subtype of `ObjectCreatedEvent` +
 (`ObjectCreatedEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance is created
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance is created
 
-|xref:applib:ant:DomainObject.adoc#editing[`editing()`]
+|xref:rg:ant:DomainObject.adoc#editing[`editing()`]
 |`AS_CONFIGURED`, `ENABLED`, `DISABLED` +
 (`AS_CONFIGURED`)
 |whether the object's properties and collections can be edited or not (ie whether the instance should be considered to be immutable)
 
 
-|xref:applib:ant:DomainObject.adoc#mixinMethod[`mixinMethod()`]
+|xref:rg:ant:DomainObject.adoc#mixinMethod[`mixinMethod()`]
 |Method name within the mixin
 |How to recognize the "reserved" method name, meaning that the mixin's own name will be inferred from the mixin type.
 Typical examples are "exec", "execute", "invoke", "apply" and so on.
 The default "reserved" method name is `$$`.
 
 
-|xref:applib:ant:DomainObject.adoc#nature[`nature()`]
+|xref:rg:ant:DomainObject.adoc#nature[`nature()`]
 |`NOT_SPECIFIED`, `JDO_ENTITY`, `EXTERNAL_ENTITY`, `INMEMORY_ENTITY`, `MIXIN`, `VIEW_MODEL` (`NOT_SPECIFIED`)
 |whether the domain object logically is an entity (part of the domain layer) or is a view model (part of the application layer); or is a mixin.
 If an entity, indicates how its persistence is managed.
 
 
-|xref:applib:ant:DomainObject.adoc#objectType[`objectType()`]
+|xref:rg:ant:DomainObject.adoc#objectType[`objectType()`]
 |(none, which implies fully qualified class name)
 |specify an alias for the domain class used to uniquely identify the object both within the Apache Isis runtime and externally
 
 
-|xref:applib:ant:DomainObject.adoc#persistedLifecycleEvent[`persisted-` +
+|xref:rg:ant:DomainObject.adoc#persistedLifecycleEvent[`persisted-` +
 `LifecycleEvent()`]
 |subtype of `ObjectPersistedEvent` +
 (`ObjectPersistedEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance has just been persisted
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance has just been persisted
 
-|xref:applib:ant:DomainObject.adoc#persistingLifecycleEvent[`persisting-` +
+|xref:rg:ant:DomainObject.adoc#persistingLifecycleEvent[`persisting-` +
 `LifecycleEvent()`]
 |subtype of `ObjectPersistingEvent` +
 (`ObjectPersistingEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance is about to be persisted
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance is about to be persisted
 
-|xref:applib:ant:DomainObject.adoc#publishing[`publishing()`]
+|xref:rg:ant:DomainObject.adoc#publishing[`publishing()`]
 |`AS_CONFIGURED`, `ENABLED`, `DISABLED` +
 (`AS_CONFIGURED`)
-|whether changes to the object should be published to the registered xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
+|whether changes to the object should be published to the registered xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
 
 
-|xref:applib:ant:DomainObject.adoc#removingLifecycleEvent[`removing-` +
+|xref:rg:ant:DomainObject.adoc#removingLifecycleEvent[`removing-` +
 `LifecycleEvent()`]
 |subtype of `ObjectRemovingEvent` +
 (`ObjectRemovingEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance is about to be deleted
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance is about to be deleted
 
-|xref:applib:ant:DomainObject.adoc#updatedLifecycleEvent[`updated-` +
+|xref:rg:ant:DomainObject.adoc#updatedLifecycleEvent[`updated-` +
 `LifecycleEvent()`]
 |subtype of `ObjectUpdatedEvent` +
 (`ObjectUpdatedEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance has just been updated
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance has just been updated
 
-|xref:applib:ant:DomainObject.adoc#updatingLifecycleEvent[`updating-` +
+|xref:rg:ant:DomainObject.adoc#updatingLifecycleEvent[`updating-` +
 `LifecycleEvent()`]
 |subtype of `ObjectUpdatingEvent` +
 (`ObjectUpdatingEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance is about to be updated
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] whenever an instance is about to be updated
 
 |===
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/actionDomainEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/actionDomainEvent.adoc
index 6a1b2fd..1754e3c 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/actionDomainEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/actionDomainEvent.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 Whenever an action of a domain object is interacted with then a domain event will be fired, for each of the various phases (hidden, disabled, validated, executing, executed).
-Using xref:applib:ant:Action.adoc#domainEvent[`@Action#domainEvent()`], the actual domain event class fired can be customised.
+Using xref:rg:ant:Action.adoc#domainEvent[`@Action#domainEvent()`], the actual domain event class fired can be customised.
 the `@DomainObject#actionDomainEvent()` attribute allows a common event domain class to be fired for all of the actions of the domain object.
 
 For example:
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/auditing.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/auditing.adoc
index ec24944..e7d215d 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/auditing.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/auditing.adoc
@@ -5,9 +5,9 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-The `auditing()` attribute indicates that if the object is modified, then each of its changed properties should be submitted to the registered xref:applib:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`](s).
+The `auditing()` attribute indicates that if the object is modified, then each of its changed properties should be submitted to the registered xref:rg:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`](s).
 
-The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:cfg:ROOT:configuring-core.adoc[configuration property] `isis.services.audit.objects` is used to determine the whether the action is audited:
+The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:rg:cfg:configuring-core.adoc[configuration property] `isis.services.audit.objects` is used to determine the whether the action is audited:
 
 * `all` +
 +
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/autoCompleteRepository.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/autoCompleteRepository.adoc
index 0238338..b5ab69a 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/autoCompleteRepository.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/autoCompleteRepository.adoc
@@ -14,7 +14,7 @@ Or it could search for a country based on its ISO-3 code or user-friendly name.
 
 [TIP]
 ====
-If you require additional control - for example restricting the returned results based on the object being interacted with - then use the xref:applib:cms:methods.adoc#autoComplete[`autoComplete...()`] supporting method instead.
+If you require additional control - for example restricting the returned results based on the object being interacted with - then use the xref:rg:cms:methods.adoc#autoComplete[`autoComplete...()`] supporting method instead.
 ====
 
 
@@ -78,7 +78,7 @@ public class Customers {
 ----
 <1> end-user must enter minimum number of characters to trigger the query
 
-The autocomplete action can also be a regular method, annotated using xref:applib:ant:Programmatic.adoc[`@Programmatic`]:
+The autocomplete action can also be a regular method, annotated using xref:rg:ant:Programmatic.adoc[`@Programmatic`]:
 
 [source,java]
 ----
@@ -96,7 +96,7 @@ public class Customers {
 [IMPORTANT]
 ====
 The method specified must be an action, that is, part of the Isis metamodel.
-Said another way: it must not be annotated with xref:applib:ant:Programmatic.adoc[`@Programmatic`].
-However, it *can* be hidden or placed on a domain service with xref:applib:ant:DomainService.adoc#nature[nature] of `DOMAIN`, such that the action would not be rendered otherwise in the UI.
-Also, the action cannot be xref:applib:ant:Action.adoc#restrictTo[restricted to] prototyping only.
+Said another way: it must not be annotated with xref:rg:ant:Programmatic.adoc[`@Programmatic`].
+However, it *can* be hidden or placed on a domain service with xref:rg:ant:DomainService.adoc#nature[nature] of `DOMAIN`, such that the action would not be rendered otherwise in the UI.
+Also, the action cannot be xref:rg:ant:Action.adoc#restrictTo[restricted to] prototyping only.
 ====
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/bounding.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/bounding.adoc
index ebf78c0..90fc016 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/bounding.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/bounding.adoc
@@ -32,7 +32,7 @@ public class Currency {
 [TIP]
 ====
 There is nothing to prevent you from using this attribute for regular mutable entities, and indeed this is sometimes worth doing during early prototyping.
-However, if there is no realistic upper bound to the number of instances of an entity that might be created, generally you should use xref:applib:cms:methods.adoc#autoComplete[`autoComplete...()`] supporting method or the xref:applib:ant:DomainObject.adoc#autoCompleteRepository[`@DomainObject#autoCompleteRepository()`] attribute instead.
+However, if there is no realistic upper bound to the number of instances of an entity that might be created, generally you should use xref:rg:cms:methods.adoc#autoComplete[`autoComplete...()`] supporting method or the xref:rg:ant:DomainObject.adoc#autoCompleteRepository[`@DomainObject#autoCompleteRepository()`] attribute instead.
 ====
 
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/collectionDomainEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/collectionDomainEvent.adoc
index 6215226..c219cb3 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/collectionDomainEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/collectionDomainEvent.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 Whenever a collection of a domain object is interacted with then a domain event will be fired, for each of the various phases (hidden, disabled, validated, executing, executed).
-Using xref:applib:ant:Collection.adoc#domainEvent[`@Collection#domainEvent()`], the actual domain event class fired can be customised.
+Using xref:rg:ant:Collection.adoc#domainEvent[`@Collection#domainEvent()`], the actual domain event class fired can be customised.
 the `@DomainObject#collectionDomainEvent()` attribute allows a common event domain class to be fired for all of the collections of the domain object.
 
 For example:
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/createdLifecycleEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/createdLifecycleEvent.adoc
index b57018f..a094193 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/createdLifecycleEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/createdLifecycleEvent.adoc
@@ -6,15 +6,15 @@ include::_attributes.adoc[]
 
 
 Whenever a domain object is instantiated or otherwise becomes known to the framework, a "created" lifecycle event is fired.
-This is typically when the xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService`]'s `instantiate()` method is called.
+This is typically when the xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService`]'s `instantiate()` method is called.
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the object just created.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the object just created.
 The subscriber could then, for example, update the object, eg looking up state from some external datastore.
 
 [TIP]
 ====
 It's possible to instantiate objects without firing this lifecycle; just instantiate using its regular constructor, and then use the ``ServiceRegistry``'s
-xref:applib:svc:metadata-api/ServiceRegistry.adoc[`injectServicesInto(...)`] to manually inject any required domain services.
+xref:rg:svc:metadata-api/ServiceRegistry.adoc[`injectServicesInto(...)`] to manually inject any required domain services.
 ====
 
 
@@ -53,7 +53,7 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/editing.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/editing.adoc
index b5d932a..1e7065d 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/editing.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/editing.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 
 The `editing()` attribute determines whether a domain object's properties and collections are not editable (are read-only).
 
-The default is `AS_CONFIGURED`, meaning that the xref:cfg:ROOT:configuring-core.adoc[configuration property] `isis.objects.editing` is used to determine the whether the object is modifiable:
+The default is `AS_CONFIGURED`, meaning that the xref:rg:cfg:configuring-core.adoc[configuration property] `isis.objects.editing` is used to determine the whether the object is modifiable:
 
 * `true` +
 +
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/loadedLifecycleEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/loadedLifecycleEvent.adoc
index 5d534c4..f213625 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/loadedLifecycleEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/loadedLifecycleEvent.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 Whenever a persistent domain object is loaded from the database, a "loaded" lifecycle event is fired.
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object just loaded.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object just loaded.
 The subscriber could then, for example, update or default values on the object (eg to support on-the-fly migration scenarios).
 
 By default the event raised is `ObjectLoadedEvent.Default`. For example:
@@ -44,7 +44,7 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below support both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/nature.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/nature.adoc
index d2c2bd7..5aff25a 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/nature.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/nature.adoc
@@ -48,7 +48,7 @@ The framework will automatically recreate the domain object each time it is inte
 +
 indicates that the domain object is part of the domain layer, and is contributing behaviour to objects of some other type as a mixin (also known as a trait).
 +
-Equivalent to annotating with xref:applib:ant:Mixin.adoc[`@Mixin`].
+Equivalent to annotating with xref:rg:ant:Mixin.adoc[`@Mixin`].
 For further discussion on using mixins, see xref:ug:fun:building-blocks.adoc#mixins[mixins] in the user guide.
 
 
@@ -57,7 +57,7 @@ For further discussion on using mixins, see xref:ug:fun:building-blocks.adoc#mix
 indicates that the domain object is conceptually part of the application layer, and exists to surfaces behaviour and/or state that is aggregate of one or more domain entities.
 
 Those natures that indicate the domain object is an entity (of some sort or another) mean then that the domain object is considered to be part of the domain model layer.
-As such the domain object's class cannot be annotated with xref:applib:ant:ViewModel.adoc[`@ViewModel`] or implement the xref:applib:cms:classes/super.adoc#ViewModel[`ViewModel`] interface.
+As such the domain object's class cannot be annotated with xref:rg:ant:ViewModel.adoc[`@ViewModel`] or implement the xref:rg:cms:classes/super.adoc#ViewModel[`ViewModel`] interface.
 
 
 [NOTE]
@@ -71,7 +71,7 @@ The benefit of `nature()` is that it allows the developer to properly characteri
 
 [NOTE]
 ====
-On the other hand, view models defined in this way do have some limitations; see xref:applib:ant:ViewModel.adoc[`@ViewModel`] for further discussion.
+On the other hand, view models defined in this way do have some limitations; see xref:rg:ant:ViewModel.adoc[`@ViewModel`] for further discussion.
 
 These limitations do _not_ apply to xref:ug:fun:programming-model.adoc#jaxb[JAXB] view models.
 If you are using view models heavily, you may wish to restrict yourself to just the JAXB flavour.
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/objectType.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/objectType.adoc
index 0cafd27..82d34ef 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/objectType.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/objectType.adoc
@@ -11,12 +11,12 @@ This value is used internally to generate a string representation of an objects
 This can appear in several contexts, including:
 
 * as the value of `Bookmark#getObjectType()` and in the `toString()` value of `Bookmark`
- (see xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
+ (see xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
 ** and thus in the "table-of-two-halves" pattern, as per the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s poly module
-* in the serialization of `OidDto` in the xref:schema:ROOT:cmd[command] and xref:schema:ROOT:about.adoc#ixn.adoc[interaction] schemas
+* in the serialization of `OidDto` in the xref:rg:schema:cmd[command] and xref:rg:schema:about.adoc#ixn.adoc[interaction] schemas
 * in the URLs of the xref:vro:ROOT:about.adoc[RestfulObjects viewer]
 * in the URLs of the xref:vw:ROOT:about.adoc[Wicket viewer] (in general and in particular if xref:vw:ROOT:features/hints-and-copy-url.adoc[copying URLs])
-* in XML snapshots generated by the xref:applib:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`]
+* in XML snapshots generated by the xref:rg:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`]
 
 
 
@@ -39,9 +39,9 @@ public class Order {
 
 The rules of precedence are:
 
-1. xref:applib:ant:Discriminator.adoc[`@Discriminator`]
+1. xref:rg:ant:Discriminator.adoc[`@Discriminator`]
 2. `@DomainObject#objectType`
-3. xref:applib:ant:PersistenceCapable.adoc[`@PersistenceCapable`], if at least the `schema` attribute is defined.
+3. xref:rg:ant:PersistenceCapable.adoc[`@PersistenceCapable`], if at least the `schema` attribute is defined.
 +
 If both `schema` and `table` are defined, then the value is "`schema.table`".
 If only `schema` is defined, then the value is "`schema.className`".
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/persistedLifecycleEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/persistedLifecycleEvent.adoc
index c7b2f39..988f923 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/persistedLifecycleEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/persistedLifecycleEvent.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 Whenever a (just created, still transient) domain object has been saved (INSERTed in)to the database, a "persisted" lifecycle event is fired.
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
 The subscriber could then, for example, maintain an external datastore.
 
 [WARNING]
@@ -50,7 +50,7 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/persistingLifecycleEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/persistingLifecycleEvent.adoc
index 4434c7c..8c0fece 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/persistingLifecycleEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/persistingLifecycleEvent.adoc
@@ -7,14 +7,14 @@ include::_attributes.adoc[]
 
 Whenever a (just created, still transient) domain object is about to be saved (INSERTed in)to the database, a "persisting" lifecycle event is fired.
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
 The subscriber could then, for example, update the object, or it could use it maintain an external datastore.
 One possible application is to maintain a full-text search database using link:https://lucene.apache.org/[Apache Lucene] or similar.
 
 [NOTE]
 ====
 Another use case is to maintain "last updated by"/"last updated at" properties.
-While you can roll your own, note that the framework provides built-in support for this use case through the xref:applib:cms:classes/roles.adoc#Timestampable[`Timestampable`] role interface.
+While you can roll your own, note that the framework provides built-in support for this use case through the xref:rg:cms:classes/roles.adoc#Timestampable[`Timestampable`] role interface.
 ====
 
 By default the event raised is `ObjectPersistingEvent.Default`.
@@ -52,7 +52,7 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/propertyDomainEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/propertyDomainEvent.adoc
index 2b5d470..504473e 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/propertyDomainEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/propertyDomainEvent.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 Whenever a property of a domain object is interacted with then a domain event will be fired, for each of the various phases (hidden, disabled, validated, executing, executed).
-Using xref:applib:ant:Property.adoc#domainEvent[`@Property#domainEvent()`], the actual domain event class fired can be customised.
+Using xref:rg:ant:Property.adoc#domainEvent[`@Property#domainEvent()`], the actual domain event class fired can be customised.
 the `@DomainObject#propertyDomainEvent()` attribute allows a common event domain class to be fired for all of the properties of the domain object.
 
 For example:
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/publishing.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/publishing.adoc
index 71787dc..09fe5e7 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/publishing.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/publishing.adoc
@@ -6,11 +6,11 @@ include::_attributes.adoc[]
 
 
 
-The `publishing()` attribute determines whether and how a modified object instance is published via the registered implementation of xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
+The `publishing()` attribute determines whether and how a modified object instance is published via the registered implementation of xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
 
 A common use case is to notify external "downstream" systems of changes in the state of the Apache Isis application.
 
-The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:cfg:ROOT:configuring-core.adoc[configuration property] `isis.services.publish.objects` is used to determine the whether the action is published:
+The default value for the attribute is `AS_CONFIGURED`, meaning that the xref:rg:cfg:configuring-core.adoc[configuration property] `isis.services.publish.objects` is used to determine the whether the action is published:
 
 * `all` +
 +
@@ -45,10 +45,10 @@ public class InterestRate {
 
 This attribute is also supported for:
 
-* xref:applib:ant:Action.adoc#publishing[actions]
+* xref:rg:ant:Action.adoc#publishing[actions]
 +
 where it controls whether action invocations are published as events, and for
 
-* xref:applib:ant:Property.adoc#publishing[properties]
+* xref:rg:ant:Property.adoc#publishing[properties]
 +
 where it controls whether property edits are published as events.
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/removingLifecycleEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/removingLifecycleEvent.adoc
index ddc669f..22ce1e6 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/removingLifecycleEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/removingLifecycleEvent.adoc
@@ -7,14 +7,14 @@ include::_attributes.adoc[]
 
 Whenever a (persistent) domain object is about to be removed (DELETEd) from the database, a "removing" lifecycle event is fired.
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
 The subscriber could then, for example, could use it maintain an external datastore.
 One possible application is to maintain a full-text search database using link:https://lucene.apache.org/[Apache Lucene] or similar.
 
 [NOTE]
 ====
 Another use case is to maintain "last updated by"/"last updated at" properties.
-While you can roll your own, note that the framework provides built-in support for this use case through the xref:applib:cms:classes/roles.adoc#Timestampable[`Timestampable`] role interface.
+While you can roll your own, note that the framework provides built-in support for this use case through the xref:rg:cms:classes/roles.adoc#Timestampable[`Timestampable`] role interface.
 ====
 
 By default the event raised is `ObjectRemovingEvent.Default`.
@@ -52,7 +52,7 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/updatedLifecycleEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/updatedLifecycleEvent.adoc
index f09954a..81f14c6 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/updatedLifecycleEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/updatedLifecycleEvent.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 Whenever a (persistent) domain object has been modified and has been updated in the database, an "updated" lifecycle event is fired.
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
 
 [WARNING]
 ====
@@ -49,7 +49,7 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObject/updatingLifecycleEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObject/updatingLifecycleEvent.adoc
index d91a954..aac66fd 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObject/updatingLifecycleEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObject/updatingLifecycleEvent.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 Whenever a (persistent) domain object has been modified and is about to be updated to the database, an "updating" lifecycle event is fired.
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use the event to obtain a reference to the domain object.
 The subscriber could then, for example, update the object, or it could use it maintain an external datastore.
 One possible application is to maintain a full-text search database using link:https://lucene.apache.org/[Apache Lucene] or similar.
 
@@ -15,7 +15,7 @@ One possible application is to maintain a full-text search database using link:h
 ====
 Another use case is to maintain "last updated by"/"last updated at" properties.
 While you can roll your own, note that the framework provides built-in support for this use case through the
-xref:applib:cms:classes/roles.adoc#Timestampable[`Timestampable`] role interface.
+xref:rg:cms:classes/roles.adoc#Timestampable[`Timestampable`] role interface.
 ====
 
 By default the event raised is `ObjectUpdatingEvent.Default`.
@@ -53,7 +53,7 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout.adoc
index f957f98..52526a2 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout.adoc
@@ -9,7 +9,7 @@ The `@DomainObjectLayout` annotation applies to domain classes, collecting toget
 
 [NOTE]
 ====
-For view models that have been annotated with `@ViewModel` the equivalent xref:applib:ant:ViewModelLayout.adoc[`@ViewModelLayout`] can be used.
+For view models that have been annotated with `@ViewModel` the equivalent xref:rg:ant:ViewModelLayout.adoc[`@ViewModelLayout`] can be used.
 ====
 
 
@@ -24,18 +24,18 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:DomainObjectLayout.adoc#bookmarking[`bookmarking()`]
+|xref:rg:ant:DomainObjectLayout.adoc#bookmarking[`bookmarking()`]
 |`AS_ROOT`, `AS_CHILD`, `NEVER` +
 (`NEVER`)
 |whether (and how) this domain object should be automatically bookmarked
 
 
-|xref:applib:ant:DomainObjectLayout.adoc#cssclass[`cssClass()`]
+|xref:rg:ant:DomainObjectLayout.adoc#cssclass[`cssClass()`]
 |Any string valid as a CSS class
-|the css class that a domain class (type) should have, to allow more targetted styling in xref:cfg:ROOT:application-specific/application-css.adoc[`application.css`]
+|the css class that a domain class (type) should have, to allow more targetted styling in xref:rg:cfg:application-specific/application-css.adoc[`application.css`]
 
 
-|xref:applib:ant:DomainObjectLayout.adoc#cssClassFa[`cssClassFa()`]
+|xref:rg:ant:DomainObjectLayout.adoc#cssClassFa[`cssClassFa()`]
 |Any valid link:http://fortawesome.github.io/Font-Awesome/[Font awesome] icon name
 |specify a font awesome icon for the action's menu link or icon. +
 
@@ -46,46 +46,46 @@ The table below summarizes the annotation's attributes.
 |Currently unused.
 
 
-|xref:applib:ant:DomainObjectLayout.adoc#cssClassUiEvent[`cssClassUiEvent()`]
+|xref:rg:ant:DomainObjectLayout.adoc#cssClassUiEvent[`cssClassUiEvent()`]
 |subtype of `CssClassUiEvent` +
 (`CssClassUiEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain a CSS class for the domain object.
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain a CSS class for the domain object.
 
-|xref:applib:ant:DomainObjectLayout.adoc#describedAs[`describedAs()`]
+|xref:rg:ant:DomainObjectLayout.adoc#describedAs[`describedAs()`]
 |String.
 |description of this class, eg to be rendered in a tooltip.
 
-|xref:applib:ant:DomainObjectLayout.adoc#iconUiEvent[`iconUiEvent()`]
+|xref:rg:ant:DomainObjectLayout.adoc#iconUiEvent[`iconUiEvent()`]
 |subtype of `IconUiEvent` +
 (`IconUiEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the icon (name) for the domain object.
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the icon (name) for the domain object.
 
-|xref:applib:ant:DomainObjectLayout.adoc#layoutUiEvent[`layoutUiEvent()`]
+|xref:rg:ant:DomainObjectLayout.adoc#layoutUiEvent[`layoutUiEvent()`]
 |subtype of `LayoutUiEvent` +
 (`LayoutUiEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the layout (name) for the domain object.
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the layout (name) for the domain object.
 
-|xref:applib:ant:DomainObjectLayout.adoc#named[`named()`]
+|xref:rg:ant:DomainObjectLayout.adoc#named[`named()`]
 |String.
 |to override the name inferred from the action's name in code. +
 
 A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
 
 
-|xref:applib:ant:DomainObjectLayout.adoc#paged[`paged()`]
+|xref:rg:ant:DomainObjectLayout.adoc#paged[`paged()`]
 |Positive integer
 |the page size for instances of this class when rendered within a table (as returned from an action invocation)
 
 
-|xref:applib:ant:DomainObjectLayout.adoc#plural[`plural()`]
+|xref:rg:ant:DomainObjectLayout.adoc#plural[`plural()`]
 |String.
 |the plural name of the class
 
 
-|xref:applib:ant:DomainObjectLayout.adoc#titleUiEvent[`titleUiEvent()`]
+|xref:rg:ant:DomainObjectLayout.adoc#titleUiEvent[`titleUiEvent()`]
 |subtype of `TitleUiEvent` +
 (`TitleUiEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the title for the domain object.
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the title for the domain object.
 
 |===
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/bookmarking.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/bookmarking.adoc
index fd6f36b..89448eb 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/bookmarking.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/bookmarking.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 
 The `bookmarking()` attribute indicates that an entity is automatically bookmarked.
-This attribute is also supported for  xref:applib:ant:Action.adoc#bookmarking[domain objects].
+This attribute is also supported for  xref:rg:ant:Action.adoc#bookmarking[domain objects].
 
 (In the Wicket viewer), a link to a bookmarked object is shown in the bookmarks panel:
 
@@ -67,5 +67,5 @@ The nesting can be done to any level; the Estatio screenshot also shows a bookma
 
 == See also
 
-This attribute can also be applied to xref:applib:ant:ViewModelLayout.adoc#bookmarking[view models].
+This attribute can also be applied to xref:rg:ant:ViewModelLayout.adoc#bookmarking[view models].
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClass.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClass.adoc
index 8308845..505b316 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClass.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClass.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 
 The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the domain object.
-xref:cfg:ROOT:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+xref:rg:cfg:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
 
 For example:
@@ -26,7 +26,7 @@ public class ToDoItem { /* ... */ }
 
 [NOTE]
 ====
-The similar xref:applib:ant:DomainObjectLayout.adoc#cssClassFa[`@DomainObjectLayout#cssClassFa()`] annotation attribute is also used as a hint to apply CSS, but in particular to allow http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icons] to be rendered as the icon for classes.
+The similar xref:rg:ant:DomainObjectLayout.adoc#cssClassFa[`@DomainObjectLayout#cssClassFa()`] annotation attribute is also used as a hint to apply CSS, but in particular to allow http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icons] to be rendered as the icon for classes.
 ====
 
 
@@ -35,9 +35,9 @@ The similar xref:applib:ant:DomainObjectLayout.adoc#cssClassFa[`@DomainObjectLay
 
 This attribute can also be applied to:
 
-* xref:applib:ant:ViewModelLayout.adoc#cssClass[view models]
-* xref:applib:ant:ActionLayout.adoc#cssClass[actions]
-* xref:applib:ant:PropertyLayout.adoc#cssClass[properties],
-* xref:applib:ant:CollectionLayout.adoc#cssClass[collections]
-* xref:applib:ant:ParameterLayout.adoc#cssClass[parameters].
+* xref:rg:ant:ViewModelLayout.adoc#cssClass[view models]
+* xref:rg:ant:ActionLayout.adoc#cssClass[actions]
+* xref:rg:ant:PropertyLayout.adoc#cssClass[properties],
+* xref:rg:ant:CollectionLayout.adoc#cssClass[collections]
+* xref:rg:ant:ParameterLayout.adoc#cssClass[parameters].
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClassFa.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClassFa.adoc
index 0826dfa..c81ba23 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClassFa.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClassFa.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 
 The `cssClassFa()` attribute is used to specify the name of a link:http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icon] name, to be rendered as the domain object's icon.
 
-If necessary the icon specified can be overridden by a particular object instance using the xref:applib:cms:methods.adoc#iconName[`iconName()`] method.
+If necessary the icon specified can be overridden by a particular object instance using the xref:rg:cms:methods.adoc#iconName[`iconName()`] method.
 
 
 
@@ -32,7 +32,7 @@ The related `cssClassFaPosition()` attribute is currently unused for domain obje
 
 [TIP]
 ====
-The similar xref:applib:ant:DomainObjectLayout.adoc#cssClass[`@DomainObjectLayout#cssClass()`] annotation attribute is also used as a hint to apply CSS, but for wrapping the representation of an object or object member so that it can be styled in an application-specific way.
+The similar xref:rg:ant:DomainObjectLayout.adoc#cssClass[`@DomainObjectLayout#cssClass()`] annotation attribute is also used as a hint to apply CSS, but for wrapping the representation of an object or object member so that it can be styled in an application-specific way.
 ====
 
 
@@ -40,6 +40,6 @@ The similar xref:applib:ant:DomainObjectLayout.adoc#cssClass[`@DomainObjectLayou
 
 These attributes can also be applied to:
 
-* xref:applib:ant:ViewModelLayout.adoc#cssClassFa[view models] to specify the object's icon, and
-* xref:applib:ant:ActionLayout.adoc#cssClassFa[actions] to specify an icon for the action's representation as a button or menu item.
+* xref:rg:ant:ViewModelLayout.adoc#cssClassFa[view models] to specify the object's icon, and
+* xref:rg:ant:ActionLayout.adoc#cssClassFa[actions] to specify an icon for the action's representation as a button or menu item.
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClassUiEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClassUiEvent.adoc
index 287c870..93039cc 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClassUiEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/cssClassUiEvent.adoc
@@ -6,15 +6,15 @@ include::_attributes.adoc[]
 
 
 Whenever a domain object is to be rendered, the framework fires off an CSS class UI event to obtain a CSS class to use in any wrapping ``<div>``s and ``<span>``s that render the domain object.
-This is as an alternative to implementing xref:applib:cms:methods.adoc#cssClass[`cssClass()`] reserved method.
+This is as an alternative to implementing xref:rg:cms:methods.adoc#cssClass[`cssClass()`] reserved method.
 (If `cssClass()` is present, then it will take precedence).
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use obtain a reference to the domain object from the event.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use obtain a reference to the domain object from the event.
 From this they can, if they wish, specify a CSS class for the domain object using the event's API.
 
 [NOTE]
 ====
-The feature was originally introduced so that xref:applib:ant:XmlRootElement.adoc[`@XmlRootElement`]-annotated xref:ug:fun:building-blocks.adoc#view-models[view model]s could be kept as minimal as possible, just defining the data.
+The feature was originally introduced so that xref:rg:ant:XmlRootElement.adoc[`@XmlRootElement`]-annotated xref:ug:fun:building-blocks.adoc#view-models[view model]s could be kept as minimal as possible, just defining the data.
 UI events allow subscribers to provide UI hints, while xref:ug:fun:building-blocks.adoc#mixins[mixin]s can be used to provide the behaviour.
 ====
 
@@ -54,7 +54,7 @@ The benefit is that subscribers can be more targeted as to the events that they
 == Subscribers
 
 Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API
-or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured)
+or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured)
 using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below are compatible with both.
 
@@ -115,10 +115,10 @@ And, conversely, the framework also provides `CssClassUiEvent.Noop`; if `cssClas
 == Raising events programmatically
 
 Normally events are only raised for interactions through the UI.
-However, events can be raised programmatically either by calling the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly.
+However, events can be raised programmatically either by calling the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly.
 
 
 == See also
 
-This attribute can also be applied to xref:applib:ant:ViewModelLayout.adoc#cssClassUiEvent[view models].
+This attribute can also be applied to xref:rg:ant:ViewModelLayout.adoc#cssClassUiEvent[view models].
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/describedAs.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/describedAs.adoc
index 0434ab5..8fd4962 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/describedAs.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/describedAs.adoc
@@ -26,9 +26,9 @@ public class ProspectiveSale {
 
 The attribute can also be specified for:
 
-* xref:applib:ant:CollectionLayout.adoc#describedAs[collections]
-* xref:applib:ant:PropertyLayout.adoc#describedAs[properties]
-* xref:applib:ant:ActionLayout.adoc#describedAs[actions]
-* xref:applib:ant:ParameterLayout.adoc#describedAs[parameters] and
-* xref:applib:ant:ViewModelLayout.adoc#describedAs[view models].
+* xref:rg:ant:CollectionLayout.adoc#describedAs[collections]
+* xref:rg:ant:PropertyLayout.adoc#describedAs[properties]
+* xref:rg:ant:ActionLayout.adoc#describedAs[actions]
+* xref:rg:ant:ParameterLayout.adoc#describedAs[parameters] and
+* xref:rg:ant:ViewModelLayout.adoc#describedAs[view models].
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/iconUiEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/iconUiEvent.adoc
index 7299a39..8035739 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/iconUiEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/iconUiEvent.adoc
@@ -6,16 +6,16 @@ include::_attributes.adoc[]
 
 
 Whenever a domain object is to be rendered, the framework fires off an icon UI event to obtain an icon (name) for the object (if possible).
-This is as an alternative to implementing xref:applib:cms:methods.adoc#iconName[`iconName()`] reserved method.
+This is as an alternative to implementing xref:rg:cms:methods.adoc#iconName[`iconName()`] reserved method.
 (If `iconName()` is present, then it will take precedence).
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use obtain a reference to the domain object from the event.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use obtain a reference to the domain object from the event.
 From this they can, if they wish, specify an icon name for the domain object using the event's API.
 
 
 [NOTE]
 ====
-The feature was originally introduced so that xref:applib:ant:XmlRootElement.adoc[`@XmlRootElement`]-annotated xref:ug:fun:building-blocks.adoc#view-models[view model]s could be kept as minimal as possible, just defining the data.
+The feature was originally introduced so that xref:rg:ant:XmlRootElement.adoc[`@XmlRootElement`]-annotated xref:ug:fun:building-blocks.adoc#view-models[view model]s could be kept as minimal as possible, just defining the data.
 UI events allow subscribers to provide UI hints, while xref:ug:fun:building-blocks.adoc#mixins[mixin]s can be used to provide the behaviour.
 ====
 
@@ -54,7 +54,7 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
@@ -110,10 +110,10 @@ And, conversely, the framework also provides `IconUiEvent.Noop`; if `iconUiEvent
 == Raising events programmatically
 
 Normally events are only raised for interactions through the UI.
-However, events can be raised programmatically by calling the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly.
+However, events can be raised programmatically by calling the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly.
 
 
 == See also
 
-This attribute can also be applied to xref:applib:ant:ViewModelLayout.adoc#iconNameUiEvent[view models].
+This attribute can also be applied to xref:rg:ant:ViewModelLayout.adoc#iconNameUiEvent[view models].
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/layoutUiEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/layoutUiEvent.adoc
index fe794ae..4287cd7 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/layoutUiEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/layoutUiEvent.adoc
@@ -6,10 +6,10 @@ include::_attributes.adoc[]
 
 
 Whenever a domain object is to be rendered, the framework fires off an layout UI event to obtain an alternative layout name with which to render the domain object.
-This is as an alternative to implementing xref:applib:cms:methods.adoc#layout[`layout()`] reserved method.
+This is as an alternative to implementing xref:rg:cms:methods.adoc#layout[`layout()`] reserved method.
 (If `layout()` is present, then it will take precedence).
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use obtain a reference to the domain object from the event.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can use obtain a reference to the domain object from the event.
 From this they can, if they wish, specify a CSS class for the domain object using the event's API.
 
 By default the event raised is `LayoutUiEvent.Default`.
@@ -47,7 +47,7 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
@@ -107,12 +107,12 @@ And, conversely, the framework also provides `LayoutUiEvent.Noop`; if `layoutUiE
 == Raising events programmatically
 
 Normally events are only raised for interactions through the UI.
-However, events can be raised programmatically by calling the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly.
+However, events can be raised programmatically by calling the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly.
 
 
 
 
 == See also
 
-This attribute can also be applied to xref:applib:ant:ViewModelLayout.adoc#layoutUiEvent[view models].
+This attribute can also be applied to xref:rg:ant:ViewModelLayout.adoc#layoutUiEvent[view models].
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/named.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/named.adoc
index b9ba7ac..1062d55 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/named.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/named.adoc
@@ -28,7 +28,7 @@ public class CustomerImpl implements Customer{
 }
 ----
 
-It's also possible to specify a xref:applib:ant:DomainObjectLayout.adoc#plural[plural form] of the name, used by the framework when rendering a standalone collection of the domain object.
+It's also possible to specify a xref:rg:ant:DomainObjectLayout.adoc#plural[plural form] of the name, used by the framework when rendering a standalone collection of the domain object.
 
 
 [TIP]
@@ -41,9 +41,9 @@ The framework also provides a separate, powerful mechanism for xref:ug:btb:i18n.
 
 The attribute can also be specified for:
 
-* xref:applib:ant:ActionLayout.adoc#named[actions]
-* xref:applib:ant:CollectionLayout.adoc#named[collections]
-* xref:applib:ant:PropertyLayout.adoc#named[properties]
-* xref:applib:ant:ParameterLayout.adoc#named[parameters]
-* xref:applib:ant:ViewModelLayout.adoc#named[view models]
-* xref:applib:ant:DomainServiceLayout.adoc#named[domain services].
+* xref:rg:ant:ActionLayout.adoc#named[actions]
+* xref:rg:ant:CollectionLayout.adoc#named[collections]
+* xref:rg:ant:PropertyLayout.adoc#named[properties]
+* xref:rg:ant:ParameterLayout.adoc#named[parameters]
+* xref:rg:ant:ViewModelLayout.adoc#named[view models]
+* xref:rg:ant:DomainServiceLayout.adoc#named[domain services].
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/paged.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/paged.adoc
index b71fe15..ed54591 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/paged.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/paged.adoc
@@ -30,7 +30,7 @@ public class Order {
 ----
 
 
-It is also possible to specify a global default for the page size of standalone collections, using the xref:cfg:ROOT:configuring-core.adoc[configuration property] `isis.viewer.paged.standalone`.
+It is also possible to specify a global default for the page size of standalone collections, using the xref:rg:cfg:configuring-core.adoc[configuration property] `isis.viewer.paged.standalone`.
 
 
 
@@ -38,5 +38,5 @@ It is also possible to specify a global default for the page size of standalone
 
 This attribute can also be applied to:
 
-* xref:applib:ant:ViewModelLayout.adoc#paged[view models], and
-* xref:applib:ant:CollectionLayout.adoc#paged[collections]
+* xref:rg:ant:ViewModelLayout.adoc#paged[view models], and
+* xref:rg:ant:CollectionLayout.adoc#paged[collections]
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/plural.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/plural.adoc
index 111604a..e98bf88 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/plural.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/plural.adoc
@@ -23,5 +23,5 @@ public class Child {
 
 == See also
 
-This attribute is also supported for xref:applib:ant:ViewModelLayout.adoc#plural[view models].
+This attribute is also supported for xref:rg:ant:ViewModelLayout.adoc#plural[view models].
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/titleUiEvent.adoc b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/titleUiEvent.adoc
index fdddd24..6264bd4 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/titleUiEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainObjectLayout/titleUiEvent.adoc
@@ -6,16 +6,16 @@ include::_attributes.adoc[]
 
 
 Whenever a domain object is to be rendered, the framework fires off a title UI event to obtain a title for the object.
-This is as an alternative to implementing xref:applib:cms:methods.adoc#title[`title()`] reserved method, or using the xref:applib:ant:Title.adoc[`@Title`] annotation, within the class itself.
+This is as an alternative to implementing xref:rg:cms:methods.adoc#title[`title()`] reserved method, or using the xref:rg:ant:Title.adoc[`@Title`] annotation, within the class itself.
 (If either `title()` or `@Title` are present, then they will take precedence).
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and can
 use obtain a reference to the domain object from the event.
 From this they can, if they wish, specify a title for the domain object using the event's API.
 
 [NOTE]
 ====
-The feature was originally introduced so that xref:applib:ant:XmlRootElement.adoc[`@XmlRootElement`]-annotated xref:ug:fun:building-blocks.adoc#view-models[view model]s could be kept as minimal as possible, just defining the data.
+The feature was originally introduced so that xref:rg:ant:XmlRootElement.adoc[`@XmlRootElement`]-annotated xref:ug:fun:building-blocks.adoc#view-models[view model]s could be kept as minimal as possible, just defining the data.
 UI events allow subscribers to provide UI hints, while xref:ug:fun:building-blocks.adoc#mixins[mixin]s can be used to provide the behaviour.
 ====
 
@@ -54,7 +54,7 @@ The benefit is that subscribers can be more targeted as to the events that they
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below are compatible with both.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
@@ -109,9 +109,9 @@ And, conversely, the framework also provides `TitleUiEvent.Noop`; if `titleUiEve
 == Raising events programmatically
 
 Normally events are only raised for interactions through the UI.
-However, events can be raised programmatically either by calling the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly, or as a result of calling the xref:applib:svc:application-layer-api/TitleService.adoc[`TitleService`]'s `titleOf(...)` method.
+However, events can be raised programmatically either by calling the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] API directly, or as a result of calling the xref:rg:svc:application-layer-api/TitleService.adoc[`TitleService`]'s `titleOf(...)` method.
 
 
 == See also
 
-This attribute can also be applied to xref:applib:ant:ViewModelLayout.adoc#titleUiEvent[view models].
+This attribute can also be applied to xref:rg:ant:ViewModelLayout.adoc#titleUiEvent[view models].
diff --git a/core/applib/_adoc/modules/ant/pages/DomainService.adoc b/core/applib/_adoc/modules/ant/pages/DomainService.adoc
index 180001e..344496f 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainService.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainService.adoc
@@ -20,26 +20,26 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:DomainService.adoc#nature[`nature()`]
+|xref:rg:ant:DomainService.adoc#nature[`nature()`]
 |`VIEW`, `VIEW_MENU_ONLY`, `VIEW_CONTRIBUTIONS_ONLY`, `VIEW_REST_ONLY`, `DOMAIN` (`VIEW`)
 |the nature of this service: providing actions for menus, or as contributed actions, or for the xref:vro:ROOT:about.adoc[RestfulObjects REST API], or neither
 
 
-|xref:applib:ant:DomainService.adoc#objectType[`objectType()`]
+|xref:rg:ant:DomainService.adoc#objectType[`objectType()`]
 |
-|equivalent to xref:applib:ant:DomainObject.adoc#objectType[`@DomainObject#objectType()`], specifies the objectType of the service.
+|equivalent to xref:rg:ant:DomainObject.adoc#objectType[`@DomainObject#objectType()`], specifies the objectType of the service.
 
 The instanceId for services is always "1".
 
 
-|xref:applib:ant:DomainService.adoc#repositoryFor[`repositoryFor()`]
+|xref:rg:ant:DomainService.adoc#repositoryFor[`repositoryFor()`]
 |
 |if this domain service acts as a repository for an entity type, specify that entity type.  This is used to determine an icon to use for the service (eg as shown in action prompts).
 
 
 |`menuOrder()`
 |
-|Deprecated in 1.8.0; use instead xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`]
+|Deprecated in 1.8.0; use instead xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`]
 
 |===
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainService/nature.adoc b/core/applib/_adoc/modules/ant/pages/DomainService/nature.adoc
index 00f6578..16fbeed 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainService/nature.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainService/nature.adoc
@@ -23,7 +23,7 @@ The service's actions appear on menus and in the REST API, but are not contribut
 +
 The service's actions are intended only to be used as contributed actions/associations to domain objects and view model
 +
-The related xref:applib:ant:ActionLayout.adoc#contributedAs[`@ActionLayout#contributedAs()`] determines whether any given (1-arg) action is contributed as an association rather than an action.
+The related xref:rg:ant:ActionLayout.adoc#contributedAs[`@ActionLayout#contributedAs()`] determines whether any given (1-arg) action is contributed as an association rather than an action.
 
 * `VIEW_REST_ONLY` +
 +
@@ -70,7 +70,7 @@ public class LoanRepository {                                  // <1>
 }
 ----
 <1> `Repository` as a suffix for a domain-layer service
-<2> methods on `DOMAIN` services are often xref:applib:ant:Programmatic.adoc[`@Programmatic`]; they will never be exposed in the UI, so there's little point in including them in Apache Isis' metamodel
+<2> methods on `DOMAIN` services are often xref:rg:ant:Programmatic.adoc[`@Programmatic`]; they will never be exposed in the UI, so there's little point in including them in Apache Isis' metamodel
 
 
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainService/objectType.adoc b/core/applib/_adoc/modules/ant/pages/DomainService/objectType.adoc
index f17a27f..4804c13 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainService/objectType.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainService/objectType.adoc
@@ -11,8 +11,8 @@ This value is used internally to generate a string representation of an service
 This can appear in several contexts, including:
 
 * as the value of `Bookmark#getObjectType()` and in the `toString()` value of `Bookmark`
- (see xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
-* in the serialization of `OidDto` in the xref:schema:ROOT:cmd[command] and xref:schema:ROOT:about.adoc#ixn.adoc[interaction] schemas
+ (see xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
+* in the serialization of `OidDto` in the xref:rg:schema:cmd[command] and xref:rg:schema:about.adoc#ixn.adoc[interaction] schemas
 * in the URLs of the xref:vro:ROOT:about.adoc[RestfulObjects viewer]
 * in the URLs of the xref:vw:ROOT:about.adoc[Wicket viewer] (specifically, for bookmarked actions)
 
@@ -39,7 +39,7 @@ public class OrderMenu {
 The rules of precedence are:
 
 1. `@DomainService#objectType`
-2. xref:applib:cms:methods.adoc#getId[`getId()`]
+2. xref:rg:cms:methods.adoc#getId[`getId()`]
 3. The fully qualified class name.
 
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainService/repositoryFor.adoc b/core/applib/_adoc/modules/ant/pages/DomainService/repositoryFor.adoc
index 26d4216..7cf2632 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainService/repositoryFor.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainService/repositoryFor.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-The `repositoryFor()` attribute is intended for domain services (probably with a xref:applib:ant:DomainService.adoc#nature[`nature=DOMAIN`]) that are intended to act as repositories for domain entities.
+The `repositoryFor()` attribute is intended for domain services (probably with a xref:rg:ant:DomainService.adoc#nature[`nature=DOMAIN`]) that are intended to act as repositories for domain entities.
 
 For example:
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainServiceLayout.adoc b/core/applib/_adoc/modules/ant/pages/DomainServiceLayout.adoc
index 329a309..7aebf7b 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainServiceLayout.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainServiceLayout.adoc
@@ -23,17 +23,17 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:DomainServiceLayout.adoc#menuBar[`menuBar()`]
+|xref:rg:ant:DomainServiceLayout.adoc#menuBar[`menuBar()`]
 |`PRIMARY`, `SECONDARY`, `TERTIARY` (`PRIMARY`).
 |the menubar in which the menu that holds this service's actions should reside.
 
 
-|xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`menuOrder()`]
+|xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`menuOrder()`]
 |
 |the order of the service's menu with respect to other service's.
 
 
-|xref:applib:ant:DomainServiceLayout.adoc#named[`named()`]
+|xref:rg:ant:DomainServiceLayout.adoc#named[`named()`]
 |string, eg "Customers"
 |name of this class (overriding the name derived from its name in code)
 
diff --git a/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/menuBar.adoc b/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/menuBar.adoc
index 9d0b2ab..7102e6e 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/menuBar.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/menuBar.adoc
@@ -33,7 +33,7 @@ Domain services placed on the `TERTIARY` appear in the menu bar associated with
 image::reference-annotations/DomainServiceLayout/menuBar-tertiary.png[width="720px",link="{imagesdir}/reference-annotations/DomainServiceLayout/menuBar-tertiary.png"]
 
 
-The grouping of multiple domain services actions within a single drop-down is managed by the xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] attribute.
+The grouping of multiple domain services actions within a single drop-down is managed by the xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] attribute.
 
 
 [NOTE]
diff --git a/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/menuOrder.adoc b/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/menuOrder.adoc
index 8efc5af..3da7b39 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/menuOrder.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/menuOrder.adoc
@@ -11,8 +11,8 @@ The `menuOrder()` attribute determines the ordering of a domain service's action
 
 The algorithm works as follows:
 
-* first, the xref:applib:ant:DomainServiceLayout.adoc#menuBar[`menuBar()`] determines which of the three menu bars the service's actions should be rendered
-* then, the domain service's top-level name (typically explicitly specified using xref:applib:ant:DomainServiceLayout.adoc#named[`named()`]) is used to determine the top-level menu item to be rendered on the menu bar
+* first, the xref:rg:ant:DomainServiceLayout.adoc#menuBar[`menuBar()`] determines which of the three menu bars the service's actions should be rendered
+* then, the domain service's top-level name (typically explicitly specified using xref:rg:ant:DomainServiceLayout.adoc#named[`named()`]) is used to determine the top-level menu item to be rendered on the menu bar
 * finally, if there is more than domain service that has the same name, then the `menuOrder` attribute is used to order those actions on the menu item drop-down.
 
 For example, the screenshot below shows the "prototyping" menu from the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp]:
diff --git a/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/named.adoc b/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/named.adoc
index 54a9cef..fcd5015 100644
--- a/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/named.adoc
+++ b/core/applib/_adoc/modules/ant/pages/DomainServiceLayout/named.adoc
@@ -12,7 +12,7 @@ The `named()` attribute explicitly specifies the domain service's name, overridi
 [TIP]
 ====
 The value of this attribute also has an important role to play in the positioning of the domain service's actions relative to the actions of other domain services.
-See xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`menuOrder()`] for a full discussion with examples.
+See xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`menuOrder()`] for a full discussion with examples.
 ====
 
 For example:
@@ -33,9 +33,9 @@ public class CustomerRepository {
 
 This attribute can also be specified for:
 
-* xref:applib:ant:ActionLayout.adoc#named[actions]
-* xref:applib:ant:CollectionLayout.adoc#named[collections]
-* xref:applib:ant:PropertyLayout.adoc#named[properties]
-* xref:applib:ant:ParameterLayout.adoc#named[parameters]
-* xref:applib:ant:DomainObjectLayout.adoc#named[domain objects]
-* xref:applib:ant:ViewModelLayout.adoc#named[view models].
+* xref:rg:ant:ActionLayout.adoc#named[actions]
+* xref:rg:ant:CollectionLayout.adoc#named[collections]
+* xref:rg:ant:PropertyLayout.adoc#named[properties]
+* xref:rg:ant:ParameterLayout.adoc#named[parameters]
+* xref:rg:ant:DomainObjectLayout.adoc#named[domain objects]
+* xref:rg:ant:ViewModelLayout.adoc#named[view models].
diff --git a/core/applib/_adoc/modules/ant/pages/Inject.adoc b/core/applib/_adoc/modules/ant/pages/Inject.adoc
index c01cf68..de8c562 100644
--- a/core/applib/_adoc/modules/ant/pages/Inject.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Inject.adoc
@@ -9,7 +9,7 @@ In fact, it also injects domain services into xref:testing:integ-test-support:ab
 
 [NOTE]
 ====
-One omission: Apache Isis (currently) does not inject services into `o.a.i.applib.spec.Specification` instances (as used by xref:applib:ant:Property.adoc#mustSatisfy[`@Property#mustSatisfy()`] and xref:applib:ant:Parameter.adoc#mustSatisfy[`@Parameter#mustSatisfy()`] annotations.
+One omission: Apache Isis (currently) does not inject services into `o.a.i.applib.spec.Specification` instances (as used by xref:rg:ant:Property.adoc#mustSatisfy[`@Property#mustSatisfy()`] and xref:rg:ant:Parameter.adoc#mustSatisfy[`@Parameter#mustSatisfy()`] annotations.
 ====
 
 Apache Isis supports several syntaxes for injecting domain services.
@@ -94,7 +94,7 @@ public class Customer {
 
 [NOTE]
 ====
-An alternative and almost equivalent design would be to publish an event using the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and implement the domain services as subscribers to the event.
+An alternative and almost equivalent design would be to publish an event using the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] and implement the domain services as subscribers to the event.
 This alternative design is used in the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s poly module, for example.
 ====
 
@@ -105,7 +105,7 @@ This alternative design is used in the (non-ASF) link:https://platform.incode.or
 == Manually injecting services
 
 Apache Isis performs dependency injection when domain entities are recreated.
-It will also perform dependency injection if an object is created through the xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService`] or xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`].
+It will also perform dependency injection if an object is created through the xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService`] or xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`].
 
 For example, to create a new (transient) domain object, the idiom is:
 
@@ -124,7 +124,7 @@ ToDoAppDashboard dashboard = repositoryService.instantiate(ToDoAppDashboard.clas
 ----
 
 
-If you prefer, though, you can simply instantiate domain objects using "new" and then inject domain services manually using xref:applib:svc:core-domain-api/ServiceRegistry.adoc[`ServiceRegistry`]:
+If you prefer, though, you can simply instantiate domain objects using "new" and then inject domain services manually using xref:rg:svc:core-domain-api/ServiceRegistry.adoc[`ServiceRegistry`]:
 
 
 [source,java]
diff --git a/core/applib/_adoc/modules/ant/pages/MemberGroupLayout.adoc b/core/applib/_adoc/modules/ant/pages/MemberGroupLayout.adoc
index df25662..61d6590 100644
--- a/core/applib/_adoc/modules/ant/pages/MemberGroupLayout.adoc
+++ b/core/applib/_adoc/modules/ant/pages/MemberGroupLayout.adoc
@@ -4,7 +4,7 @@ include::_attributes.adoc[]
 
 
 
-The `@MemberGroupLayout` annotation specifies how an object's properties and collections are grouped together into columns, also specifying the relative positioning of those columns.  It works in conjunction with the xref:applib:ant:MemberOrder.adoc[`@MemberOrder`] annotation.
+The `@MemberGroupLayout` annotation specifies how an object's properties and collections are grouped together into columns, also specifying the relative positioning of those columns.  It works in conjunction with the xref:rg:ant:MemberOrder.adoc[`@MemberOrder`] annotation.
 
 The annotation defines four attributes:
 
diff --git a/core/applib/_adoc/modules/ant/pages/MemberOrder.adoc b/core/applib/_adoc/modules/ant/pages/MemberOrder.adoc
index 6c1c740..3802115 100644
--- a/core/applib/_adoc/modules/ant/pages/MemberOrder.adoc
+++ b/core/applib/_adoc/modules/ant/pages/MemberOrder.adoc
@@ -6,20 +6,20 @@ include::_attributes.adoc[]
 // TODO: v2: replace @MemberOrder#name() with @PropertyLayout#group(); replace @MemberOrder#sequence() with @PropertyLayout#sequence().
 
 The `@MemberOrder` annotation is used to specify the relative order of domain object members, that is: properties, collections and actions.
-It works in conjunction with the xref:applib:ant:MemberGroupLayout.adoc[`@MemberGroupLayout`] annotation.
+It works in conjunction with the xref:rg:ant:MemberGroupLayout.adoc[`@MemberGroupLayout`] annotation.
 
 
 The annotation defines two attributes:
 
-* xref:applib:ant:MemberOrder.adoc#name[`name()`]
-* xref:applib:ant:MemberOrder.adoc#sequence[`sequence()`]
+* xref:rg:ant:MemberOrder.adoc#name[`name()`]
+* xref:rg:ant:MemberOrder.adoc#sequence[`sequence()`]
 
 As this is an important topic, there is a xref:vw:ROOT:layout.adoc[separate chapter] that discussed object layout in full.
 
 
 [TIP]
 ====
-The annotation is one of a handful (others including xref:applib:ant:Collection.adoc[`@Collection`], xref:applib:ant:CollectionLayout.adoc[`@CollectionLayout`], xref:applib:ant:Property.adoc[`@Property`]) and xref:applib:ant:PropertyLayout.adoc[`@PropertyLayout`] that can also be applied to the field, rather than the getter method.
+The annotation is one of a handful (others including xref:rg:ant:Collection.adoc[`@Collection`], xref:rg:ant:CollectionLayout.adoc[`@CollectionLayout`], xref:rg:ant:Property.adoc[`@Property`]) and xref:rg:ant:PropertyLayout.adoc[`@PropertyLayout`] that can also be applied to the field, rather than the getter method.
  This is specifically so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
 ====
 
diff --git a/core/applib/_adoc/modules/ant/pages/MinLength.adoc b/core/applib/_adoc/modules/ant/pages/MinLength.adoc
index ef19d5f..7c27fce 100644
--- a/core/applib/_adoc/modules/ant/pages/MinLength.adoc
+++ b/core/applib/_adoc/modules/ant/pages/MinLength.adoc
@@ -3,7 +3,7 @@
 include::_attributes.adoc[]
 
 
-The `@MinLength` annotation is used to specify the minimum number of characters in a search of an xref:applib:cms:methods.adoc#autoComplete[`autoComplete...()`] supporting method.
+The `@MinLength` annotation is used to specify the minimum number of characters in a search of an xref:rg:cms:methods.adoc#autoComplete[`autoComplete...()`] supporting method.
 
 
 For example:
diff --git a/core/applib/_adoc/modules/ant/pages/Mixin.adoc b/core/applib/_adoc/modules/ant/pages/Mixin.adoc
index ffc18ae..443e26e 100644
--- a/core/applib/_adoc/modules/ant/pages/Mixin.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Mixin.adoc
@@ -23,7 +23,7 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:Mixin.adoc#method[`method()`]
+|xref:rg:ant:Mixin.adoc#method[`method()`]
 |Method name within the mixin
 |How to recognize the "reserved" method name, meaning that the mixin's own name will be inferred from the mixin type.
 Typical examples are "exec", "execute", "invoke", "apply" and so on.
@@ -32,7 +32,7 @@ The default "reserved" method name is `$$`.
 |===
 
 An alternative and equivalent approach is to use the
-xref:applib:ant:DomainObject.adoc#nature[`@DomainObject#nature()`] annotation with a nature of `MIXIN`.
+xref:rg:ant:DomainObject.adoc#nature[`@DomainObject#nature()`] annotation with a nature of `MIXIN`.
 
 
 include::Mixin/method.adoc[leveloffset=+1]
diff --git a/core/applib/_adoc/modules/ant/pages/Nullable.adoc b/core/applib/_adoc/modules/ant/pages/Nullable.adoc
index e4f1efa..c111225 100644
--- a/core/applib/_adoc/modules/ant/pages/Nullable.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Nullable.adoc
@@ -32,16 +32,16 @@ public Customer updateName(@javax.annotation.Nullable final String name) {
 ----
 
 Apache Isis does provide several other ways to specify optionality: using the
-xref:applib:ant:Property.adoc#optionality[`@Property#optionality()`] /
-xref:applib:ant:Parameter.adoc#optionality[`@Parameter#optionality()`] annotation.  For properties, the optionality
-can also be inferred from the xref:applib:ant:Column#allowsNull.adoc[`@Column#allowsNull()`] attribute.
+xref:rg:ant:Property.adoc#optionality[`@Property#optionality()`] /
+xref:rg:ant:Parameter.adoc#optionality[`@Parameter#optionality()`] annotation.  For properties, the optionality
+can also be inferred from the xref:rg:ant:Column#allowsNull.adoc[`@Column#allowsNull()`] attribute.
 
 [TIP]
 ====
 See the
-xref:applib:ant:Property.adoc#optionality[`@Property#optionality()`] documentation for a much fuller discussion on
+xref:rg:ant:Property.adoc#optionality[`@Property#optionality()`] documentation for a much fuller discussion on
 the relationship between using the Apache Isis annotations vs
-xref:applib:ant:Column#allowsNull.adoc[`@Column#allowsNull()`].
+xref:rg:ant:Column#allowsNull.adoc[`@Column#allowsNull()`].
 ====
 
 If more than one method is specified then the framework will validate that there are no incompatibilities (and fail to
diff --git a/core/applib/_adoc/modules/ant/pages/Parameter.adoc b/core/applib/_adoc/modules/ant/pages/Parameter.adoc
index b637aea..2ef1b50 100644
--- a/core/applib/_adoc/modules/ant/pages/Parameter.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Parameter.adoc
@@ -16,32 +16,32 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:Parameter.adoc#fileAccept[`fileAccept()`]
+|xref:rg:ant:Parameter.adoc#fileAccept[`fileAccept()`]
 |Media type or file extension
-|Hints the file type to be uploaded for xref:applib:cms:classes/value-types.adoc#Blob[`Blob`]
- or xref:applib:cms:classes/value-types.adoc#Clob[`Clob`]. +
+|Hints the file type to be uploaded for xref:rg:cms:classes/value-types.adoc#Blob[`Blob`]
+ or xref:rg:cms:classes/value-types.adoc#Clob[`Clob`]. +
  +
  Note that this does not prevent the user from uploading some other file type; rather it merely defaults the file type in the file open dialog.
 
 
 
-|xref:applib:ant:Parameter.adoc#maxLength[`maxLength()`]
+|xref:rg:ant:Parameter.adoc#maxLength[`maxLength()`]
 |Positive integer
 |maximum number of characters for string parameters; ignored otherwise
 
 
 
-|xref:applib:ant:Parameter.adoc#mustSatisfy[`mustSatisfy()`]
+|xref:rg:ant:Parameter.adoc#mustSatisfy[`mustSatisfy()`]
 |implementation of `o.a.i.applib.spec.Specification`
 |allows arbitrary validation to be applied
 
 
-|xref:applib:ant:Parameter.adoc#optionality[`optionality()`]
+|xref:rg:ant:Parameter.adoc#optionality[`optionality()`]
 |`MANDATORY`, `OPTIONAL` (`MANDATORY`)
 |specifies a parameter is optional rather than mandatory
 
 
-|xref:applib:ant:Parameter.adoc#regexPattern[regexPattern()]
+|xref:rg:ant:Parameter.adoc#regexPattern[regexPattern()]
 |regular expression
 |validates the contents of a string parameter against the regular expression pattern
 
diff --git a/core/applib/_adoc/modules/ant/pages/Parameter/fileAccept.adoc b/core/applib/_adoc/modules/ant/pages/Parameter/fileAccept.adoc
index 443a5b5..ac543f3 100644
--- a/core/applib/_adoc/modules/ant/pages/Parameter/fileAccept.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Parameter/fileAccept.adoc
@@ -6,9 +6,9 @@ include::_attributes.adoc[]
 
 
 
-The `fileAccept()` attribute applies only to xref:applib:cms:classes/value-types.adoc#Blob[`Blob`]
-or xref:applib:cms:classes/value-types.adoc#Clob[`Clob`] parameters, indicating the type of file to accept when
-uploading a new value.   The attribute is also supported on xref:applib:ant:Property.adoc#fileAccept[properties].
+The `fileAccept()` attribute applies only to xref:rg:cms:classes/value-types.adoc#Blob[`Blob`]
+or xref:rg:cms:classes/value-types.adoc#Clob[`Clob`] parameters, indicating the type of file to accept when
+uploading a new value.   The attribute is also supported on xref:rg:ant:Property.adoc#fileAccept[properties].
 
 For example:
 
diff --git a/core/applib/_adoc/modules/ant/pages/Parameter/maxLength.adoc b/core/applib/_adoc/modules/ant/pages/Parameter/maxLength.adoc
index 09b6b78..6fcab84 100644
--- a/core/applib/_adoc/modules/ant/pages/Parameter/maxLength.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Parameter/maxLength.adoc
@@ -32,4 +32,4 @@ public class CustomerRepository {
 
 == See also
 
-This attribute can also be applied to xref:applib:ant:Property.adoc#maxLength[properties].
+This attribute can also be applied to xref:rg:ant:Property.adoc#maxLength[properties].
diff --git a/core/applib/_adoc/modules/ant/pages/Parameter/mustSatisfy.adoc b/core/applib/_adoc/modules/ant/pages/Parameter/mustSatisfy.adoc
index 506a5fe..895b90f 100644
--- a/core/applib/_adoc/modules/ant/pages/Parameter/mustSatisfy.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Parameter/mustSatisfy.adoc
@@ -6,11 +6,11 @@ include::_attributes.adoc[]
 
 
 
-The `mustSatisfy()` attribute allows arbitrary validation to be applied to parameters using an (implementation of a) `org.apache.isis.applib.spec.Specification` object.  The attribute is also supported on xref:applib:ant:Property.adoc#mustSatisfy[properties].
+The `mustSatisfy()` attribute allows arbitrary validation to be applied to parameters using an (implementation of a) `org.apache.isis.applib.spec.Specification` object.  The attribute is also supported on xref:rg:ant:Property.adoc#mustSatisfy[properties].
 
 [TIP]
 ====
-The specification implementations can (of course) be reused between parameters and xref:applib:ant:Property.adoc#mustSatisfy[properties].
+The specification implementations can (of course) be reused between parameters and xref:rg:ant:Property.adoc#mustSatisfy[properties].
 ====
 
 The `Specification` is consulted during validation, being passed the proposed value.  If the proposed value fails, then the value returned is the used as the invalidity reason.
diff --git a/core/applib/_adoc/modules/ant/pages/Parameter/optionality.adoc b/core/applib/_adoc/modules/ant/pages/Parameter/optionality.adoc
index b12893a..2a0852e 100644
--- a/core/applib/_adoc/modules/ant/pages/Parameter/optionality.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Parameter/optionality.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 
 
-By default, Apache Isis assumes that all parameters of an action are required (mandatory).  The `optionality()` attribute allows this to be relaxed.  The attribute is also supported for xref:applib:ant:Property.adoc#optionality[properties].
+By default, Apache Isis assumes that all parameters of an action are required (mandatory).  The `optionality()` attribute allows this to be relaxed.  The attribute is also supported for xref:rg:ant:Property.adoc#optionality[properties].
 
 
 [TIP]
@@ -38,5 +38,5 @@ public class Customer {
 
 [NOTE]
 ====
-It is also possible to specify optionality using xref:applib:ant:Nullable.adoc[`@Nullable`] annotation.
+It is also possible to specify optionality using xref:rg:ant:Nullable.adoc[`@Nullable`] annotation.
 ====
diff --git a/core/applib/_adoc/modules/ant/pages/Parameter/regexPattern.adoc b/core/applib/_adoc/modules/ant/pages/Parameter/regexPattern.adoc
index 25cb5d3..4fea078 100644
--- a/core/applib/_adoc/modules/ant/pages/Parameter/regexPattern.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Parameter/regexPattern.adoc
@@ -39,4 +39,4 @@ public class Customer {
 
 == See also
 
-This attribute can also be specified for xref:applib:ant:Property.adoc#regexPattern[properties].
+This attribute can also be specified for xref:rg:ant:Property.adoc#regexPattern[properties].
diff --git a/core/applib/_adoc/modules/ant/pages/ParameterLayout.adoc b/core/applib/_adoc/modules/ant/pages/ParameterLayout.adoc
index 8f075f6..9f49077 100644
--- a/core/applib/_adoc/modules/ant/pages/ParameterLayout.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ParameterLayout.adoc
@@ -17,33 +17,33 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:ParameterLayout.adoc#cssClass[`cssClass()`]
+|xref:rg:ant:ParameterLayout.adoc#cssClass[`cssClass()`]
 |Any string valid as a CSS class
-|the css class that a parameter should have, to allow more targetted styling in xref:cfg:ROOT:application-specific/application-css.adoc[`application.css`]
+|the css class that a parameter should have, to allow more targetted styling in xref:rg:cfg:application-specific/application-css.adoc[`application.css`]
 
 
-|xref:applib:ant:ParameterLayout.adoc#describedAs[`describedAs()`]
+|xref:rg:ant:ParameterLayout.adoc#describedAs[`describedAs()`]
 |String
 |description of this parameter, eg to be rendered in a tooltip.
 
 
-|xref:applib:ant:ParameterLayout.adoc#labelPosition[`labelPosition()`]
+|xref:rg:ant:ParameterLayout.adoc#labelPosition[`labelPosition()`]
 |`LEFT`, `TOP`, `RIGHT`, `NONE` +
 (`LEFT`)
 |in forms, the positioning of the label relative to the property value. +
 
-Default is `LEFT`, unless xref:applib:ant:ParameterLayout.adoc#multiLine[`multiLine`] in which case `TOP`.
+Default is `LEFT`, unless xref:rg:ant:ParameterLayout.adoc#multiLine[`multiLine`] in which case `TOP`.
 The value `RIGHT` is only supported for boolean parameters.
 
 
-|xref:applib:ant:ParameterLayout.adoc#multiLine[`multiLine()`]
+|xref:rg:ant:ParameterLayout.adoc#multiLine[`multiLine()`]
 |Positive integer
 |for string parameters, render as a text area over multiple lines. +
 
-If set > 1, then then xref:applib:ant:ParameterLayout.adoc#labelPosition[`labelPosition`] defaults to `TOP`.
+If set > 1, then then xref:rg:ant:ParameterLayout.adoc#labelPosition[`labelPosition`] defaults to `TOP`.
 
 
-|xref:applib:ant:ParameterLayout.adoc#named[`named()`]
+|xref:rg:ant:ParameterLayout.adoc#named[`named()`]
 |String
 |the name of this parameter.
 
@@ -61,12 +61,12 @@ The only reason then to name the parameter is if the desired name is a reserved
 |whether to HTML escape the name of this parameter.
 
 
-|xref:applib:ant:ParameterLayout.adoc#renderedAsDayBefore[`renderedAsDayBefore()`]
+|xref:rg:ant:ParameterLayout.adoc#renderedAsDayBefore[`renderedAsDayBefore()`]
 |
 |for date parameters only, render the date as one day prior to the actually stored date (eg the end date of an open interval into a closed interval)
 
 
-|xref:applib:ant:ParameterLayout.adoc#typicalLength[`typicalLength()`]
+|xref:rg:ant:ParameterLayout.adoc#typicalLength[`typicalLength()`]
 |
 |the typical entry length of a field, use to determine the optimum width for display
 
diff --git a/core/applib/_adoc/modules/ant/pages/ParameterLayout/cssClass.adoc b/core/applib/_adoc/modules/ant/pages/ParameterLayout/cssClass.adoc
index 124e0ec..fe6ff9f 100644
--- a/core/applib/_adoc/modules/ant/pages/ParameterLayout/cssClass.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ParameterLayout/cssClass.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 
 
-The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the action parameter.   xref:cfg:ROOT:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the action parameter.   xref:rg:cfg:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
 
 For example:
@@ -32,9 +32,9 @@ public class ToDoItem {
 
 This attribute can also be applied to:
 
-* xref:applib:ant:DomainObjectLayout.adoc#cssClass[domain objects]
-* xref:applib:ant:ViewModelLayout.adoc#cssClass[view models]
-* xref:applib:ant:ActionLayout.adoc#cssClass[actions]
-* xref:applib:ant:PropertyLayout.adoc#cssClass[properties],
-* xref:applib:ant:CollectionLayout.adoc#cssClass[collections]
-* xref:applib:ant:ParameterLayout.adoc#cssClass[parameters].
+* xref:rg:ant:DomainObjectLayout.adoc#cssClass[domain objects]
+* xref:rg:ant:ViewModelLayout.adoc#cssClass[view models]
+* xref:rg:ant:ActionLayout.adoc#cssClass[actions]
+* xref:rg:ant:PropertyLayout.adoc#cssClass[properties],
+* xref:rg:ant:CollectionLayout.adoc#cssClass[collections]
+* xref:rg:ant:ParameterLayout.adoc#cssClass[parameters].
diff --git a/core/applib/_adoc/modules/ant/pages/ParameterLayout/describedAs.adoc b/core/applib/_adoc/modules/ant/pages/ParameterLayout/describedAs.adoc
index 68aeb8a..783d0ec 100644
--- a/core/applib/_adoc/modules/ant/pages/ParameterLayout/describedAs.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ParameterLayout/describedAs.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-The `describedAs()` attribute is used to provide a short description of the action parameter to the user.  In the xref:vw:ROOT:about.adoc[Wicket viewer] it is displayed as a 'tool tip'.  The `describedAs()` attribute can also be specified for xref:applib:ant:CollectionLayout.adoc#describedAs[collections],  xref:applib:ant:PropertyLayout.adoc#describedAs[properties], xref:applib:ant:ActionLayout.adoc#describedAs[actions], xref:applib:ant:DomainObjectLayout.adoc#describedAs[domain objects] [...]
+The `describedAs()` attribute is used to provide a short description of the action parameter to the user.  In the xref:vw:ROOT:about.adoc[Wicket viewer] it is displayed as a 'tool tip'.  The `describedAs()` attribute can also be specified for xref:rg:ant:CollectionLayout.adoc#describedAs[collections],  xref:rg:ant:PropertyLayout.adoc#describedAs[properties], xref:rg:ant:ActionLayout.adoc#describedAs[actions], xref:rg:ant:DomainObjectLayout.adoc#describedAs[domain objects] and xref:rg:ant [...]
 
 Descriptions may be provided for objects, members (properties, collections and actions), and for individual parameters within an action method.
 
diff --git a/core/applib/_adoc/modules/ant/pages/ParameterLayout/labelPosition.adoc b/core/applib/_adoc/modules/ant/pages/ParameterLayout/labelPosition.adoc
index 1b27d7b..4b3178d 100644
--- a/core/applib/_adoc/modules/ant/pages/ParameterLayout/labelPosition.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ParameterLayout/labelPosition.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 
 The `labelPosition()` attribute determines the positioning of labels for parameters.
 
-The positioning of labels is typically `LEFT`, but can be positioned to the `TOP`.  The one exception is xref:applib:ant:ParameterLayout.adoc#multiLine[`multiLine()`] string parameters, where the label defaults to `TOP` automatically (to provide as much real-estate for the multiline text field as possible).
+The positioning of labels is typically `LEFT`, but can be positioned to the `TOP`.  The one exception is xref:rg:ant:ParameterLayout.adoc#multiLine[`multiLine()`] string parameters, where the label defaults to `TOP` automatically (to provide as much real-estate for the multiline text field as possible).
 
 For boolean parameters a positioning of `RIGHT` is also allowed; this is ignored for all other types.
 
@@ -36,10 +36,10 @@ public class Order {
 ----
 
 
-To get an idea of how these are rendered (in the xref:vw:ROOT:about.adoc[Wicket viewer]), see xref:applib:ant:PropertyLayout.adoc#labelPosition[PropertyLayout#labelPosition()].
+To get an idea of how these are rendered (in the xref:vw:ROOT:about.adoc[Wicket viewer]), see xref:rg:ant:PropertyLayout.adoc#labelPosition[PropertyLayout#labelPosition()].
 
 
 == See also
 
-This attribute can also be specified for xref:applib:ant:PropertyLayout.adoc#labelPosition[properties].
+This attribute can also be specified for xref:rg:ant:PropertyLayout.adoc#labelPosition[properties].
 
diff --git a/core/applib/_adoc/modules/ant/pages/ParameterLayout/multiLine.adoc b/core/applib/_adoc/modules/ant/pages/ParameterLayout/multiLine.adoc
index f09ae42..bd87b01 100644
--- a/core/applib/_adoc/modules/ant/pages/ParameterLayout/multiLine.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ParameterLayout/multiLine.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 
-The `multiLine()` attribute specifies that the text field for a string parameter should span multiple lines.  It is ignored for other parameter types.  The attribute is also supported for xref:applib:ant:PropertyLayout.adoc#multiLine[properties].
+The `multiLine()` attribute specifies that the text field for a string parameter should span multiple lines.  It is ignored for other parameter types.  The attribute is also supported for xref:rg:ant:PropertyLayout.adoc#multiLine[properties].
 
 For example:
 
@@ -27,6 +27,6 @@ public class BugReport {
 
 [NOTE]
 ====
-If set > 1 (as would normally be the case), then the default xref:applib:ant:ParameterLayout.adoc#labelPosition[`labelPosition`] defaults to `TOP` (rather than `LEFT`, as would normally be the case).
+If set > 1 (as would normally be the case), then the default xref:rg:ant:ParameterLayout.adoc#labelPosition[`labelPosition`] defaults to `TOP` (rather than `LEFT`, as would normally be the case).
 ====
 
diff --git a/core/applib/_adoc/modules/ant/pages/ParameterLayout/named.adoc b/core/applib/_adoc/modules/ant/pages/ParameterLayout/named.adoc
index b82e817..7f37bdf 100644
--- a/core/applib/_adoc/modules/ant/pages/ParameterLayout/named.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ParameterLayout/named.adoc
@@ -51,10 +51,10 @@ The framework also provides a separate, powerful mechanism for xref:ug:btb:i18n.
 
 This attribute can also be specified for:
 
-* xref:applib:ant:ActionLayout.adoc#named[actions]
-* xref:applib:ant:CollectionLayout.adoc#named[collections]
-* xref:applib:ant:PropertyLayout.adoc#named[properties]
-* xref:applib:ant:DomainObjectLayout.adoc#named[domain objects]
-* xref:applib:ant:ViewModelLayout.adoc#named[view models]
-* xref:applib:ant:DomainServiceLayout.adoc#named[domain services].
+* xref:rg:ant:ActionLayout.adoc#named[actions]
+* xref:rg:ant:CollectionLayout.adoc#named[collections]
+* xref:rg:ant:PropertyLayout.adoc#named[properties]
+* xref:rg:ant:DomainObjectLayout.adoc#named[domain objects]
+* xref:rg:ant:ViewModelLayout.adoc#named[view models]
+* xref:rg:ant:DomainServiceLayout.adoc#named[domain services].
 
diff --git a/core/applib/_adoc/modules/ant/pages/ParameterLayout/renderedAsDayBefore.adoc b/core/applib/_adoc/modules/ant/pages/ParameterLayout/renderedAsDayBefore.adoc
index 0d605c8..4d137b6 100644
--- a/core/applib/_adoc/modules/ant/pages/ParameterLayout/renderedAsDayBefore.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ParameterLayout/renderedAsDayBefore.adoc
@@ -38,5 +38,5 @@ public class Tenancy {
 
 == See also
 
-This attribute is also supported for xref:applib:ant:PropertyLayout.adoc#renderedAsDayBefore[properties].
+This attribute is also supported for xref:rg:ant:PropertyLayout.adoc#renderedAsDayBefore[properties].
 
diff --git a/core/applib/_adoc/modules/ant/pages/ParameterLayout/typicalLength.adoc b/core/applib/_adoc/modules/ant/pages/ParameterLayout/typicalLength.adoc
index 85b15e6..78dc248 100644
--- a/core/applib/_adoc/modules/ant/pages/ParameterLayout/typicalLength.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ParameterLayout/typicalLength.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 
 The `typicalLength()` attribute indicates the typical length of a string parameter.
 It is ignored for parameters of other types.
-The attribute is also supported for xref:applib:ant:PropertyLayout.adoc#typicalLength[properties].
+The attribute is also supported for xref:rg:ant:PropertyLayout.adoc#typicalLength[properties].
 
 The information is intended as a hint to the UI to determine the space that should be given to render a particular string parameter.
 That said, note that the xref:vw:ROOT:about.adoc[Wicket viewer] uses the maximum space available for all fields, so in effect ignores this attribute.
diff --git a/core/applib/_adoc/modules/ant/pages/PersistenceCapable.adoc b/core/applib/_adoc/modules/ant/pages/PersistenceCapable.adoc
index d9cd749..a119e1d 100644
--- a/core/applib/_adoc/modules/ant/pages/PersistenceCapable.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PersistenceCapable.adoc
@@ -20,12 +20,12 @@ This value is used internally to generate a string representation of an objects
 This can appear in several contexts, including:
 
 * as the value of `Bookmark#getObjectType()` and in the `toString()` value of `Bookmark`
- (see xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
+ (see xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
  ** and thus in the "table-of-two-halves" pattern, as per the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s poly module
-* in the serialization of `OidDto` in the xref:schema:ROOT:cmd[command] and xref:schema:ROOT:about.adoc#ixn.adoc[interaction] schemas
+* in the serialization of `OidDto` in the xref:rg:schema:cmd[command] and xref:rg:schema:about.adoc#ixn.adoc[interaction] schemas
 * in the URLs of the xref:vro:ROOT:about.adoc[RestfulObjects viewer]
 * in the URLs of the xref:vw:ROOT:about.adoc[Wicket viewer] (in general and in particular if xref:vw:ROOT:features/hints-and-copy-url.adoc[copying URLs])
-* in XML snapshots generated by the xref:applib:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`]
+* in XML snapshots generated by the xref:rg:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`]
 
 
 The actual format of the object type used by Apache Isis for the concatenation of `schema()` and `@PersistenceCapable#table()`.
@@ -75,9 +75,9 @@ does _not_ correspond to an object type, because the `schema()` attribute is mis
 
 The rules of precedence for determining a domain object's object type are:
 
-1. xref:applib:ant:Discriminator.adoc[`@Discriminator`]
+1. xref:rg:ant:Discriminator.adoc[`@Discriminator`]
 2. `@DomainObject#objectType`
-3. xref:applib:ant:PersistenceCapable.adoc[`@PersistenceCapable`], if at least the `schema` attribute is defined.  +
+3. xref:rg:ant:PersistenceCapable.adoc[`@PersistenceCapable`], if at least the `schema` attribute is defined.  +
 +
 If both `schema` and `table` are defined, then the value is "`schema.table`".
 If only `schema` is defined, then the value is "`schema.className`".
diff --git a/core/applib/_adoc/modules/ant/pages/PostConstruct.adoc b/core/applib/_adoc/modules/ant/pages/PostConstruct.adoc
index 15aceb1..1044c7e 100644
--- a/core/applib/_adoc/modules/ant/pages/PostConstruct.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PostConstruct.adoc
@@ -5,9 +5,9 @@ include::_attributes.adoc[]
 
 The `@javax.annotation.PostConstruct` annotation, as defined in link:https://jcp.org/en/jsr/detail?id=250[JSR-250],  is recognized by Apache Isis as a callback method on domain services to be called just after they have been constructed, in order that they initialize themselves.
 
-It is also recognized for xref:ug:fun:building-blocks.adoc#view-models[view models] (eg annotated with xref:applib:ant:ViewModel.adoc[`@ViewModel`]).
+It is also recognized for xref:ug:fun:building-blocks.adoc#view-models[view models] (eg annotated with xref:rg:ant:ViewModel.adoc[`@ViewModel`]).
 
-For the default application-scoped (singleton) domain services, this means that the method, if present, is called during the bootstrapping of the application.  For xref:applib:ant:RequestScoped.adoc[`@RequestScoped`] domain services, the method is called at the beginning of the request.
+For the default application-scoped (singleton) domain services, this means that the method, if present, is called during the bootstrapping of the application.  For xref:rg:ant:RequestScoped.adoc[`@RequestScoped`] domain services, the method is called at the beginning of the request.
 
 The signature of the method is:
 
@@ -16,7 +16,7 @@ The signature of the method is:
 @PostConstruct                 <1>
 public void init() { /* ... */ }     <2>
 ----
-<1> It is not necessary to annotate the method with xref:applib:ant:Programmatic.adoc[`@Programmatic`]; it will be automatically excluded from the Apache Isis metamodel.
+<1> It is not necessary to annotate the method with xref:rg:ant:Programmatic.adoc[`@Programmatic`]; it will be automatically excluded from the Apache Isis metamodel.
 <2> the method can have any name, but must have `public` visibility.
 
 In the form shown above the method accepts no arguments.
@@ -28,11 +28,11 @@ Alternatively - for domain services only, not view models - the method can accep
 @Programmatic
 public void init(Map<String,String> properties) { /* ... */ }
 ----
-Apache Isis uses argument to pass in the configuration properties read from all xref:cfg:ROOT:configuration-files.adoc[configuration files]:
+Apache Isis uses argument to pass in the configuration properties read from all xref:rg:cfg:configuration-files.adoc[configuration files]:
 
 [TIP]
 ====
-Alternatively, you could inject xref:applib:svc:core-domain-api/ConfigurationService.adoc[`ConfigurationService`] into the service and read configuration properties using `ConfigurationService#getProperty(...)` and related methods.
+Alternatively, you could inject xref:rg:svc:core-domain-api/ConfigurationService.adoc[`ConfigurationService`] into the service and read configuration properties using `ConfigurationService#getProperty(...)` and related methods.
 However, be aware when using this latter API that only those configuration properties keys with an `application.` prefix are provided.
 ====
 
@@ -42,4 +42,4 @@ Use cases include obtaining connections to external datasources, eg subscribing
 
 
 
-See also xref:applib:ant:PreDestroy.adoc[`@PreDestroy`]
\ No newline at end of file
+See also xref:rg:ant:PreDestroy.adoc[`@PreDestroy`]
\ No newline at end of file
diff --git a/core/applib/_adoc/modules/ant/pages/PreDestroy.adoc b/core/applib/_adoc/modules/ant/pages/PreDestroy.adoc
index faa6557..6955f5e 100644
--- a/core/applib/_adoc/modules/ant/pages/PreDestroy.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PreDestroy.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 The `@javax.annotation.PreDestroy` annotation, as defined in link:https://jcp.org/en/jsr/detail?id=250[JSR-250], recognized by Apache Isis as a callback method on domain services to be called just as they go out of scope.
 
 
-For the default application-scoped (singleton) domain services, this means that the method, if present, is called just prior to the termination of the application.  For xref:applib:ant:RequestScoped.adoc[`@RequestScoped`] domain services, the method is called at the end of the request.
+For the default application-scoped (singleton) domain services, this means that the method, if present, is called just prior to the termination of the application.  For xref:rg:ant:RequestScoped.adoc[`@RequestScoped`] domain services, the method is called at the end of the request.
 
 The signature of the method is:
 
@@ -16,10 +16,10 @@ The signature of the method is:
 @PreDestroy                         <1>
 public void deinit() { /* ... */ }    <2>
 ----
-<1> It is not necessary to annotate the method with xref:applib:ant:Programmatic.adoc[`@Programmatic`]; it will be automatically excluded from the Apache Isis metamodel.
+<1> It is not necessary to annotate the method with xref:rg:ant:Programmatic.adoc[`@Programmatic`]; it will be automatically excluded from the Apache Isis metamodel.
 <2> the method can have any name, but must have `public` visibility, and accept no arguments.
 
-A common use case is for domain services that interact with the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`].  For example:
+A common use case is for domain services that interact with the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`].  For example:
 
 [source,java]
 ----
@@ -41,11 +41,11 @@ public class MySubscribingService {
 
 [TIP]
 ====
-In this particular use case, it is generally simpler to just subclass from xref:applib:cms:classes/super.adoc#AbstractSubscriber[`AbstractSubscriber`].
+In this particular use case, it is generally simpler to just subclass from xref:rg:cms:classes/super.adoc#AbstractSubscriber[`AbstractSubscriber`].
 ====
 
 Other use cases include obtaining connections to external datasources, eg subscribing to an ActiveMQ router, say, or initializing/cleaning up a background scheduler such as Quartz.
 
 
 
-See also xref:applib:ant:PostConstruct.adoc[`@PostConstruct`]
\ No newline at end of file
+See also xref:rg:ant:PostConstruct.adoc[`@PostConstruct`]
\ No newline at end of file
diff --git a/core/applib/_adoc/modules/ant/pages/PrimaryKey.adoc b/core/applib/_adoc/modules/ant/pages/PrimaryKey.adoc
index 1dc4520..6f7f06a 100644
--- a/core/applib/_adoc/modules/ant/pages/PrimaryKey.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PrimaryKey.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 The `@javax.jdo.annotation.PrimaryKey` annotation is used by JDO/DataNucleus to indicate that a property is used as the primary key for an entity with application-managed identity.
 
-Apache Isis also uses this annotation in a very minimal way: to ensure that the framework's own logic to initialize newly instantiated objects (eg using xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(...)`] does not touch the primary key, and also to ensure that the primary key property is always disabled (read-only).
+Apache Isis also uses this annotation in a very minimal way: to ensure that the framework's own logic to initialize newly instantiated objects (eg using xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(...)`] does not touch the primary key, and also to ensure that the primary key property is always disabled (read-only).
 
 [NOTE]
 ====
diff --git a/core/applib/_adoc/modules/ant/pages/Programmatic.adoc b/core/applib/_adoc/modules/ant/pages/Programmatic.adoc
index e596d8c..9817052 100644
--- a/core/applib/_adoc/modules/ant/pages/Programmatic.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Programmatic.adoc
@@ -3,7 +3,7 @@
 include::_attributes.adoc[]
 
 
-The `@Programmatic` annotation causes the method to be excluded completely from the Apache Isis metamodel. This means it won't appear in any UI, and it won't appear in any xref:applib:svc:integration-api/MementoService.adoc[memento]s or xref:applib:svc:integration-api/XmlSnapshotService.adoc[snapshot]s.
+The `@Programmatic` annotation causes the method to be excluded completely from the Apache Isis metamodel. This means it won't appear in any UI, and it won't appear in any xref:rg:svc:integration-api/MementoService.adoc[memento]s or xref:rg:svc:integration-api/XmlSnapshotService.adoc[snapshot]s.
 
 A common use-case is to ignore implementation-level artifacts. For example:
 
diff --git a/core/applib/_adoc/modules/ant/pages/Property.adoc b/core/applib/_adoc/modules/ant/pages/Property.adoc
index e107ffc..8817b63 100644
--- a/core/applib/_adoc/modules/ant/pages/Property.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property.adoc
@@ -18,23 +18,23 @@ It is also possible to apply the annotation to actions of domain services that a
 | Description
 
 
-|xref:applib:ant:Property.adoc#command[`command()`]
+|xref:rg:ant:Property.adoc#command[`command()`]
 |`AS_CONFIGURED`, `ENABLED`, `DISABLED` +
 (`AS_CONFIGURED`)
 |whether the property edit should be reified into a `o.a.i.applib.` +
-`services.command.Command` object through the xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service.
+`services.command.Command` object through the xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service.
 
 
 |`commandExecuteIn()`
 |`FOREGROUND`,`BACKGROUND` +
 (`FOREGROUND`)
-|whether to execute the command immediately, or to persist it (assuming that an appropriate implementation of xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] has been configured) such that a background scheduler can execute the command asynchronously
+|whether to execute the command immediately, or to persist it (assuming that an appropriate implementation of xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] has been configured) such that a background scheduler can execute the command asynchronously
 
 
 |`commandPersistence()`
 |`PERSISTED`, `NOT_PERSISTED`, `IF_HINTED` +
 (`PERSISTED`)
-|whether the reified `Command` (as provided by the `CommandContext` domain service) should actually be persisted (assuming an appropriate implementation of xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] has been configured).
+|whether the reified `Command` (as provided by the `CommandContext` domain service) should actually be persisted (assuming an appropriate implementation of xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] has been configured).
 
 
 
@@ -45,45 +45,45 @@ It is also possible to apply the annotation to actions of domain services that a
 
 
 
-|xref:applib:ant:Property.adoc#domainEvent[`domainEvent()`]
+|xref:rg:ant:Property.adoc#domainEvent[`domainEvent()`]
 |subtype of `PropertyDomainEvent` +
 (`PropertyDomainEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to broadcast the property's business rule checking (hide, disable, validate) and its modification (before and after).
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to broadcast the property's business rule checking (hide, disable, validate) and its modification (before and after).
 
 
-|xref:applib:ant:Property.adoc#editing[`editing()`]
+|xref:rg:ant:Property.adoc#editing[`editing()`]
 |`ENABLED`, `DISABLED`, `AS_CONFIGURED` +
 (`AS_CONFIGURED`)
 |whether a property can be modified or cleared from within the UI
 
 
-|xref:applib:ant:Property.adoc#fileAccept[`fileAccept()`]
+|xref:rg:ant:Property.adoc#fileAccept[`fileAccept()`]
 |Media type or file extension
-|Hints the files to be uploaded to a xref:applib:cms:classes/value-types.adoc#Blob[`Blob`]
- or xref:applib:cms:classes/value-types.adoc#Clob[`Clob`]. +
+|Hints the files to be uploaded to a xref:rg:cms:classes/value-types.adoc#Blob[`Blob`]
+ or xref:rg:cms:classes/value-types.adoc#Clob[`Clob`]. +
  +
 Note that this does not prevent the user from uploading some other file type; rather it merely defaults the file type in the file open dialog.
 
 
-|xref:applib:ant:Property.adoc#hidden[`hidden()`]
+|xref:rg:ant:Property.adoc#hidden[`hidden()`]
 |`EVERYWHERE`, `OBJECT_FORMS`, `PARENTED_TABLES`, `STANDALONE_TABLES`, `ALL_TABLES`, `NOWHERE` +
 (`NOWHERE`)
 |indicates where (in the UI) the property should be hidden from the user.
 
 
-|xref:applib:ant:Property.adoc#maxLength[`maxLength()`]
+|xref:rg:ant:Property.adoc#maxLength[`maxLength()`]
 |
 |maximum number of characters for string parameters; ignored otherwise +
 
-In many/most cases you should however use xref:applib:ant:Column.adoc[`@Column#length()`]
+In many/most cases you should however use xref:rg:ant:Column.adoc[`@Column#length()`]
 
 
-|xref:applib:ant:Property.adoc#mustSatisfy[`mustSatisfy()`]
+|xref:rg:ant:Property.adoc#mustSatisfy[`mustSatisfy()`]
 |implementation of `o.a.i.applib.spec.Specification`
 |allows arbitrary validation to be applied
 
 
-|xref:applib:ant:Property.adoc#notPersisted[`notPersisted()`]
+|xref:rg:ant:Property.adoc#notPersisted[`notPersisted()`]
 |`true`, `false` +
 (`false`)
 |whether to exclude from snapshots. +
@@ -94,28 +94,28 @@ Property must also be annotated with `@javax.jdo.annotations.NotPersistent` in o
 ====
 
 
-|xref:applib:ant:Property.adoc#optionality[`optionality()`]
+|xref:rg:ant:Property.adoc#optionality[`optionality()`]
 |
 |specifies a property is optional rather than mandatory +
 
-In many/most cases you should however use xref:applib:ant:Column.adoc[`@Column#allowsNull()`]
+In many/most cases you should however use xref:rg:ant:Column.adoc[`@Column#allowsNull()`]
 
 
 
-|xref:applib:ant:Property.adoc#projecting[`projecting()`]
+|xref:rg:ant:Property.adoc#projecting[`projecting()`]
 |
 |indicates that owning object is a view model that is acting as a projection of the underlying entity referenced by this property.
 
 
 
-|xref:applib:ant:Property.adoc#publishing[`publishing()`]
+|xref:rg:ant:Property.adoc#publishing[`publishing()`]
 |
 |determines whether the editing of a property should be published.
 
 
 
 
-|xref:applib:ant:Property.adoc#regexPattern[`regexPattern()`]
+|xref:rg:ant:Property.adoc#regexPattern[`regexPattern()`]
 |regular expression
 |validates the contents of a string parameter against the regular expression pattern
 
@@ -161,7 +161,7 @@ public class Customer {
 
 [TIP]
 ====
-The annotation is one of a handful (others including xref:applib:ant:Collection.adoc[`@Collection`], xref:applib:ant:CollectionLayout.adoc[`@CollectionLayout`] and xref:applib:ant:PropertyLayout.adoc[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.  This is specifically
+The annotation is one of a handful (others including xref:rg:ant:Collection.adoc[`@Collection`], xref:rg:ant:CollectionLayout.adoc[`@CollectionLayout`] and xref:rg:ant:PropertyLayout.adoc[`@PropertyLayout`]) that can also be applied to the field, rather than the getter method.  This is specifically
 so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
 ====
 
diff --git a/core/applib/_adoc/modules/ant/pages/Property/command.adoc b/core/applib/_adoc/modules/ant/pages/Property/command.adoc
index 30d1da8..ee7eb86 100644
--- a/core/applib/_adoc/modules/ant/pages/Property/command.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property/command.adoc
@@ -14,13 +14,13 @@ The primary use cases for this are to support the deferring the execution of the
 
 The annotation works with (and is influenced by the behaviour of) a number of domain services:
 
-* xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`]
-* xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`]
-* xref:applib:svc:spi/BackgroundService.adoc[`BackgroundService`] and
-* xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]
+* xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`]
+* xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`]
+* xref:rg:svc:spi/BackgroundService.adoc[`BackgroundService`] and
+* xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]
 
 
-Each property edit is automatically reified by the xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service into a `Command` object, capturing details of the target object, the property, the proposed new value fo the property, the user, a timestamp and so on.
+Each property edit is automatically reified by the xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service into a `Command` object, capturing details of the target object, the property, the proposed new value fo the property, the user, a timestamp and so on.
 
 If an appropriate `CommandService` is configured (for example using (non-ASF) link:https://platform.incode.org/modules/spi/command/spi-command.html[Incode Platform's command] module), then the `Command` itself is persisted.
 
@@ -194,7 +194,7 @@ If `command` is `DISABLED` or does not otherwise apply due to the action's decla
 
 For persisted commands, the `commandExecuteIn()` attribute determines whether the `Command` should be executed in the foreground (the default) or executed in the background.
 
-Background execution means that the command is not executed immediately, but is available for a configured xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`] to execute, eg by way of an in-memory scheduler such as Quartz.  See xref:ug:btb:about.adoc#BackgroundCommandExecution[here] for further information on this topic.
+Background execution means that the command is not executed immediately, but is available for a configured xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`] to execute, eg by way of an in-memory scheduler such as Quartz.  See xref:ug:btb:about.adoc#BackgroundCommandExecution[here] for further information on this topic.
 
 For example:
 
@@ -263,6 +263,6 @@ If `commandDtoProcessor()` is specified, then `command()` is assumed to be ENABL
 
 
 
-For an example application, see xref:applib:ant:Action.adoc#command[`Action#command()`].
+For an example application, see xref:rg:ant:Action.adoc#command[`Action#command()`].
 
 
diff --git a/core/applib/_adoc/modules/ant/pages/Property/domainEvent.adoc b/core/applib/_adoc/modules/ant/pages/Property/domainEvent.adoc
index 6a14c0c..834312a 100644
--- a/core/applib/_adoc/modules/ant/pages/Property/domainEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property/domainEvent.adoc
@@ -14,7 +14,7 @@ In the cases of the domain object's properties, the events that are fired are:
 * pre-execute phase: before the modification of the property
 * post-execute: after the modification of the property
 
-Subscribers subscribe through the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] using either link:https://github.com/google/guava[Guava] or link:http://www.axonframework.org/[Axon Framework] annotations and can influence each of these phases.
+Subscribers subscribe through the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] using either link:https://github.com/google/guava[Guava] or link:http://www.axonframework.org/[Axon Framework] annotations and can influence each of these phases.
 
 By default the event raised is `PropertyDomainEvent.Default`.
 For example:
@@ -55,7 +55,7 @@ This substantially reduces the boilerplate in the subclasses because no explicit
 
 == Subscribers
 
-Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
+Subscribers (which must be domain services) subscribe using either the link:https://github.com/google/guava[Guava] API or (if the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] has been appropriately configured) using the link:http://www.axonframework.org/[Axon Framework] API.
 The examples below use the Guava API.
 
 Subscribers can be either coarse-grained (if they subscribe to the top-level event type):
@@ -149,13 +149,13 @@ And, conversely, the framework also provides `PropertyDomainEvent.Noop`; if `dom
 == Raising events programmatically
 
 Normally events are only raised for interactions through the UI.
-However, events can be raised programmatically by wrapping the target object using the xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] service.
+However, events can be raised programmatically by wrapping the target object using the xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] service.
 
 
 == See also
 
 This attribute is also supported for:
 
-* xref:applib:ant:Action.adoc#domainEvent[actions] and
-* xref:applib:ant:Property.adoc#domainEvent[properties].
+* xref:rg:ant:Action.adoc#domainEvent[actions] and
+* xref:rg:ant:Property.adoc#domainEvent[properties].
 
diff --git a/core/applib/_adoc/modules/ant/pages/Property/editing.adoc b/core/applib/_adoc/modules/ant/pages/Property/editing.adoc
index 3b9445a..ecaefa2 100644
--- a/core/applib/_adoc/modules/ant/pages/Property/editing.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property/editing.adoc
@@ -13,11 +13,11 @@ Whether a property is enabled or disabled depends upon these factors:
 
 * whether the domain object has been configured as immutable through the xref:rg:DomainObject/editing.adoc[`@DomainObject#editing()`] attribute
 
-* else (that is, if the domain object's editability is specified as being `AS_CONFIGURED`), then the value of the xref:cfg:ROOT:configuring-core.adoc[configuration property] `isis.objects.editing`.  If set to `false`, then the object's properties (and collections) are __not__ editable
+* else (that is, if the domain object's editability is specified as being `AS_CONFIGURED`), then the value of the xref:rg:cfg:configuring-core.adoc[configuration property] `isis.objects.editing`.  If set to `false`, then the object's properties (and collections) are __not__ editable
 
 * else, then the value of the `@Property(editing=...)` attribute itself
 
-* else, the result of invoking any supporting xref:applib:cms:rgcms.adoc#\_rgcms_methods_prefixes_disable[`disable...()`] supporting methods
+* else, the result of invoking any supporting xref:rg:cms:rgcms.adoc#\_rgcms_methods_prefixes_disable[`disable...()`] supporting methods
 
 
 Thus, to make a property read-only even if the object would otherwise be editable, use:
@@ -45,5 +45,5 @@ To reiterate, it is _not_ possible to enable editing for a property if editing h
 
 This attribute can also be specified for:
 
-* xref:applib:ant:Collection.adoc#editing[collections]
-* xref:applib:ant:DomainObject.adoc#editing[domain object].
+* xref:rg:ant:Collection.adoc#editing[collections]
+* xref:rg:ant:DomainObject.adoc#editing[domain object].
diff --git a/core/applib/_adoc/modules/ant/pages/Property/fileAccept.adoc b/core/applib/_adoc/modules/ant/pages/Property/fileAccept.adoc
index d215aab..31fd838 100644
--- a/core/applib/_adoc/modules/ant/pages/Property/fileAccept.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property/fileAccept.adoc
@@ -6,8 +6,8 @@ include::_attributes.adoc[]
 
 
 
-The `fileAccept()` attribute applies only to xref:applib:cms:classes/value-types.adoc#Blob[`Blob`] or xref:applib:cms:classes/value-types.adoc#Clob[`Clob`] parameters, indicating the type of file to accept when uploading a new value.
-The attribute is also supported on xref:applib:ant:Parameter.adoc#fileAccept[parameters].
+The `fileAccept()` attribute applies only to xref:rg:cms:classes/value-types.adoc#Blob[`Blob`] or xref:rg:cms:classes/value-types.adoc#Clob[`Clob`] parameters, indicating the type of file to accept when uploading a new value.
+The attribute is also supported on xref:rg:ant:Parameter.adoc#fileAccept[parameters].
 
 
 For example:
diff --git a/core/applib/_adoc/modules/ant/pages/Property/hidden.adoc b/core/applib/_adoc/modules/ant/pages/Property/hidden.adoc
index 1b551fd..6b85795 100644
--- a/core/applib/_adoc/modules/ant/pages/Property/hidden.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property/hidden.adoc
@@ -11,7 +11,7 @@ Properties can be hidden at the domain-level, indicating that they are not visib
 
 [TIP]
 ====
-It is also possible to use xref:applib:ant:Property.adoc#hidden[`@Property#hidden()`] to hide an action at the domain layer.
+It is also possible to use xref:rg:ant:Property.adoc#hidden[`@Property#hidden()`] to hide an action at the domain layer.
 Both options are provided with a view that in the future the view-layer semantics may be under the control of (expert) users, whereas domain-layer semantics should never be overridden or modified by the user.
 ====
 
@@ -59,7 +59,7 @@ This combines `PARENTED_TABLES` and `STANDALONE_TABLES`.
 +
 The property should not be hidden, overriding any other metadata/conventions that would normally cause the property to be hidden. +
 
-For example, if a property is annotated with xref:applib:ant:Title.adoc[`@Title`], then normally this should be hidden from all
+For example, if a property is annotated with xref:rg:ant:Title.adoc[`@Title`], then normally this should be hidden from all
 tables. Annotating with `@Property(where=Where.NOWHERE)` overrides this.
 
 
@@ -73,5 +73,5 @@ The xref:vro:ROOT:about.adoc[RestfulObjects viewer] has only partial support for
 
 This attribute can also be applied to:
 
-* xref:applib:ant:ActionLayout.adoc#hidden[actions]
-* xref:applib:ant:CollectionLayout.adoc#hidden[collections].
+* xref:rg:ant:ActionLayout.adoc#hidden[actions]
+* xref:rg:ant:CollectionLayout.adoc#hidden[collections].
diff --git a/core/applib/_adoc/modules/ant/pages/Property/maxLength.adoc b/core/applib/_adoc/modules/ant/pages/Property/maxLength.adoc
index f645b15..5ba33cd 100644
--- a/core/applib/_adoc/modules/ant/pages/Property/maxLength.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property/maxLength.adoc
@@ -10,7 +10,7 @@ The `maxLength()` attribute applies only to `String` properties, indicating the
 The attribute It is ignored if applied to properties of any other type.
 
 
-That said, properties are most commonly defined on persistent domain objects (entities), in which case the JDO xref:applib:ant:Column.adoc[`@Column`] will in any case need to be specified.
+That said, properties are most commonly defined on persistent domain objects (entities), in which case the JDO xref:rg:ant:Column.adoc[`@Column`] will in any case need to be specified.
 Apache Isis can infer the `maxLength` semantic directly from the equivalent `@Column#length()` annotation/attribute.
 
 For example:
@@ -53,5 +53,5 @@ public class Customer {
 
 == See also
 
-This attribute can also be applied to xref:applib:ant:Parameter.adoc#maxLength[parameters].
+This attribute can also be applied to xref:rg:ant:Parameter.adoc#maxLength[parameters].
 
diff --git a/core/applib/_adoc/modules/ant/pages/Property/mustSatisfy.adoc b/core/applib/_adoc/modules/ant/pages/Property/mustSatisfy.adoc
index 271f28b..4da7606 100644
--- a/core/applib/_adoc/modules/ant/pages/Property/mustSatisfy.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property/mustSatisfy.adoc
@@ -8,11 +8,11 @@ include::_attributes.adoc[]
 
 
 The `mustSatisfy()` attribute allows arbitrary validation to be applied to properties using an (implementation of a) `org.apache.isis.applib.spec.Specification` object.
- The attribute is also supported on xref:applib:ant:Parameter.adoc#mustSatisfy[parameters].
+ The attribute is also supported on xref:rg:ant:Parameter.adoc#mustSatisfy[parameters].
 
 [TIP]
 ====
-The specification implementations can (of course) be reused between properties and xref:applib:ant:Parameter.adoc#mustSatisfy[parameters].
+The specification implementations can (of course) be reused between properties and xref:rg:ant:Parameter.adoc#mustSatisfy[parameters].
 ====
 
 The `Specification` is consulted during validation, being passed the proposed value.  If the proposed value fails, then the value returned is the used as the invalidity reason.
diff --git a/core/applib/_adoc/modules/ant/pages/Property/notPersisted.adoc b/core/applib/_adoc/modules/ant/pages/Property/notPersisted.adoc
index a463fe8..25ec9de 100644
--- a/core/applib/_adoc/modules/ant/pages/Property/notPersisted.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property/notPersisted.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 
 
-The (somewhat misnamed) `notPersisted()` attribute indicates that the collection should be excluded from any snapshots generated by the xref:applib:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`].
+The (somewhat misnamed) `notPersisted()` attribute indicates that the collection should be excluded from any snapshots generated by the xref:rg:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`].
 
 
 [WARNING]
@@ -65,5 +65,5 @@ public class Order {
 
 == See also
 
-This attribute is also supported for xref:applib:ant:Collection.adoc#notPersisted[collections].
+This attribute is also supported for xref:rg:ant:Collection.adoc#notPersisted[collections].
 
diff --git a/core/applib/_adoc/modules/ant/pages/Property/optionality.adoc b/core/applib/_adoc/modules/ant/pages/Property/optionality.adoc
index e127c8f..a8783be 100644
--- a/core/applib/_adoc/modules/ant/pages/Property/optionality.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property/optionality.adoc
@@ -10,12 +10,12 @@ include::_attributes.adoc[]
 
 By default, Apache Isis assumes that all properties of an domain object or view model are required (mandatory).
 The `optionality()` attribute allows this to be relaxed.
-The attribute is also supported for xref:applib:ant:Parameter.adoc#optionality[parameters].
+The attribute is also supported for xref:rg:ant:Parameter.adoc#optionality[parameters].
 
-That said, properties are most commonly defined on persistent domain objects (entities), in which case the JDO xref:applib:ant:Column.adoc[`@Column`] should be specified.
+That said, properties are most commonly defined on persistent domain objects (entities), in which case the JDO xref:rg:ant:Column.adoc[`@Column`] should be specified.
 Apache Isis can infer the maxLength directly from the equivalent @Column#length() annotation.
 
-That said, properties are most commonly defined on persistent domain objects (entities), in which case the JDO xref:applib:ant:Column.adoc[`@Column`] will in any case need to be specified.
+That said, properties are most commonly defined on persistent domain objects (entities), in which case the JDO xref:rg:ant:Column.adoc[`@Column`] will in any case need to be specified.
 Apache Isis can infer the `optionality` semantic directly from the equivalent `@Column#allowsNull()` annotation/attribute.
 
 For example:
@@ -139,6 +139,6 @@ public class Customer {
 
 [NOTE]
 ====
-It is also possible to specify optionality using xref:applib:ant:Nullable.adoc[`@Nullable`] annotation.
+It is also possible to specify optionality using xref:rg:ant:Nullable.adoc[`@Nullable`] annotation.
 ====
 
diff --git a/core/applib/_adoc/modules/ant/pages/Property/publishing.adoc b/core/applib/_adoc/modules/ant/pages/Property/publishing.adoc
index 83dce5d..ca598ff 100644
--- a/core/applib/_adoc/modules/ant/pages/Property/publishing.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property/publishing.adoc
@@ -7,11 +7,11 @@ include::_attributes.adoc[]
 
 
 
-The `publishing()` attribute determines whether and how a property edit is published via the registered implementation of xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
+The `publishing()` attribute determines whether and how a property edit is published via the registered implementation of xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
 
 A common use case is to notify external "downstream" systems of changes in the state of the Apache Isis application.
 The default value for the attribute is `AS_CONFIGURED`, meaning that the
-xref:cfg:ROOT:configuring-core.adoc[configuration property] `isis.services.publish.properties` is used to
+xref:rg:cfg:configuring-core.adoc[configuration property] `isis.services.publish.properties` is used to
 determine the whether the property is published:
 
 * `all`
@@ -45,10 +45,10 @@ public class Order {
 
 This attribute can also be specified for:
 
-* xref:applib:ant:DomainObject.adoc#publishing[domain objects]
+* xref:rg:ant:DomainObject.adoc#publishing[domain objects]
 +
 where it controls whether changed objects are published as events, and for
 
-* xref:applib:ant:Action.adoc#publishing[actions]
+* xref:rg:ant:Action.adoc#publishing[actions]
 +
 where it controls whether action invocations are published as events.
diff --git a/core/applib/_adoc/modules/ant/pages/Property/regexPattern.adoc b/core/applib/_adoc/modules/ant/pages/Property/regexPattern.adoc
index d45d067..1f5047e 100644
--- a/core/applib/_adoc/modules/ant/pages/Property/regexPattern.adoc
+++ b/core/applib/_adoc/modules/ant/pages/Property/regexPattern.adoc
@@ -35,5 +35,5 @@ public class Customer {
 
 == See also
 
-This attribute can also be specified for xref:applib:ant:Parameter.adoc#regexPattern[parameters].
+This attribute can also be specified for xref:rg:ant:Parameter.adoc#regexPattern[parameters].
 
diff --git a/core/applib/_adoc/modules/ant/pages/PropertyLayout.adoc b/core/applib/_adoc/modules/ant/pages/PropertyLayout.adoc
index 3ec5319..a0e94a4 100644
--- a/core/applib/_adoc/modules/ant/pages/PropertyLayout.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PropertyLayout.adoc
@@ -17,40 +17,40 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:PropertyLayout.adoc#cssClass[`cssClass()`]
+|xref:rg:ant:PropertyLayout.adoc#cssClass[`cssClass()`]
 |Any string valid as a CSS class
-|the css class that a property should have, to allow more targetted styling in xref:cfg:ROOT:application-specific/application-css.adoc[`application.css`]
+|the css class that a property should have, to allow more targetted styling in xref:rg:cfg:application-specific/application-css.adoc[`application.css`]
 
 
-|xref:applib:ant:PropertyLayout.adoc#describedAs[`describedAs()`]
+|xref:rg:ant:PropertyLayout.adoc#describedAs[`describedAs()`]
 |String
 |description of this property, eg to be rendered in a tooltip.
 
 
-|xref:applib:ant:PropertyLayout.adoc#hidden[`hidden()`]
+|xref:rg:ant:PropertyLayout.adoc#hidden[`hidden()`]
 |`EVERYWHERE`, `OBJECT_FORMS`, `PARENTED_TABLES`, `STANDALONE_TABLES`, `ALL_TABLES`, `NOWHERE` +
 (`NOWHERE`)
 |indicates where (in the UI) the property should be hidden from the user.
 
 
-|xref:applib:ant:PropertyLayout.adoc#labelPosition[`labelPosition()`]
+|xref:rg:ant:PropertyLayout.adoc#labelPosition[`labelPosition()`]
 |`LEFT`, `TOP`, `RIGHT`, `NONE` +
 (`LEFT`)
 |in forms, the positioning of the label relative to the property value. +
 
-Defaults is `LEFT`, unless xref:applib:ant:PropertyLayout.adoc#multiLine[`multiLine`] in which case `TOP`.  The value `RIGHT` is only supported for boolean properties. +
+Defaults is `LEFT`, unless xref:rg:ant:PropertyLayout.adoc#multiLine[`multiLine`] in which case `TOP`.  The value `RIGHT` is only supported for boolean properties. +
 
-It is also possible to change the default through a xref:cfg:ROOT:configuring-core.adoc#isis-viewers-propertyLayout-labelPosition[configuration property]
+It is also possible to change the default through a xref:rg:cfg:configuring-core.adoc#isis-viewers-propertyLayout-labelPosition[configuration property]
 
 
-|xref:applib:ant:PropertyLayout.adoc#multiLine[`multiLine()`]
+|xref:rg:ant:PropertyLayout.adoc#multiLine[`multiLine()`]
 |Positive integer
 |for string properties, render as a text area over multiple lines.  +
 
-If set > 1, then xref:applib:ant:PropertyLayout.adoc#labelPosition[`labelPosition`] defaults to TOP.
+If set > 1, then xref:rg:ant:PropertyLayout.adoc#labelPosition[`labelPosition`] defaults to TOP.
 
 
-|xref:applib:ant:PropertyLayout.adoc#named[`named()`]
+|xref:rg:ant:PropertyLayout.adoc#named[`named()`]
 |String
 |to override the name inferred from the collection's name in code. +
 
@@ -63,29 +63,29 @@ A typical use case is if the desired name is a reserved Java keyword, such as `d
 |whether to HTML escape the name of this property.
 
 
-|xref:applib:ant:PropertyLayout.adoc#navigable[`navigable()`]
+|xref:rg:ant:PropertyLayout.adoc#navigable[`navigable()`]
 |`PARENT`, `IGNORE`, `NOT_CONFIGURED` +
 (`NOT_CONFIGURED`)
 |whether a property should be used as the navigable parent (parent breadcrumb) of this object
 
 
-|xref:applib:ant:PropertyLayout.adoc#promptStyle[`promptStyle()`]
+|xref:rg:ant:PropertyLayout.adoc#promptStyle[`promptStyle()`]
 |`DIALOG`, `INLINE`, `AS_CONFIGURED` +
 (`AS_CONFIGURED`)
 |how a property prompt should be displayed within the UI
 
 
-|xref:applib:ant:PropertyLayout.adoc#renderedAsDayBefore[`renderedAsDayBefore()`]
+|xref:rg:ant:PropertyLayout.adoc#renderedAsDayBefore[`renderedAsDayBefore()`]
 |`true`, `false` +
 (`false`)
 |for date properties only, render the date as one day prior to the actually stored date.
 
 
-|xref:applib:ant:PropertyLayout.adoc#typicalLength[`typicalLength()`]
+|xref:rg:ant:PropertyLayout.adoc#typicalLength[`typicalLength()`]
 |Positive integer.
 |the typical entry length of a field, use to determine the optimum width for display
 
-|xref:applib:ant:PropertyLayout.adoc#unchanging[`unchanging()`]
+|xref:rg:ant:PropertyLayout.adoc#unchanging[`unchanging()`]
 |`false`, `true` +
 (`false`)
 |indicates that the value held by the property never changes over time (even if other properties of the object do change).
@@ -129,7 +129,7 @@ As an alternative to using the `@PropertyLayout` annotation, a xref:vw:ROOT:layo
 
 [TIP]
 ====
-The annotation is one of a handful (others including xref:applib:ant:Collection.adoc[`@Collection`], xref:applib:ant:CollectionLayout.adoc[`@CollectionLayout`] and xref:applib:ant:Property.adoc[`@Property`]) that can also be applied to the field, rather than the getter method.  This is specifically
+The annotation is one of a handful (others including xref:rg:ant:Collection.adoc[`@Collection`], xref:rg:ant:CollectionLayout.adoc[`@CollectionLayout`] and xref:rg:ant:Property.adoc[`@Property`]) that can also be applied to the field, rather than the getter method.  This is specifically
 so that boilerplate-busting tools such as link:https://projectlombok.org/[Project Lombok] can be used.
 ====
 
diff --git a/core/applib/_adoc/modules/ant/pages/PropertyLayout/cssClass.adoc b/core/applib/_adoc/modules/ant/pages/PropertyLayout/cssClass.adoc
index 618fcd1..f2b5c45 100644
--- a/core/applib/_adoc/modules/ant/pages/PropertyLayout/cssClass.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PropertyLayout/cssClass.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the property.
-xref:cfg:ROOT:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+xref:rg:cfg:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
 For example:
 
@@ -30,10 +30,10 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 
 This attribute can also be applied to:
 
-* xref:applib:ant:DomainObjectLayout.adoc#cssClass[domain objects]
-* xref:applib:ant:ViewModelLayout.adoc#cssClass[view models]
-* xref:applib:ant:ActionLayout.adoc#cssClass[actions]
-* xref:applib:ant:CollectionLayout.adoc#cssClass[collections]
-* xref:applib:ant:ParameterLayout.adoc#cssClass[parameters].
+* xref:rg:ant:DomainObjectLayout.adoc#cssClass[domain objects]
+* xref:rg:ant:ViewModelLayout.adoc#cssClass[view models]
+* xref:rg:ant:ActionLayout.adoc#cssClass[actions]
+* xref:rg:ant:CollectionLayout.adoc#cssClass[collections]
+* xref:rg:ant:ParameterLayout.adoc#cssClass[parameters].
 
 
diff --git a/core/applib/_adoc/modules/ant/pages/PropertyLayout/describedAs.adoc b/core/applib/_adoc/modules/ant/pages/PropertyLayout/describedAs.adoc
index ab32866..e7b6bab 100644
--- a/core/applib/_adoc/modules/ant/pages/PropertyLayout/describedAs.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PropertyLayout/describedAs.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 
-The `describedAs()` attribute is used to provide a short description of the property to the user.  In the xref:vw:ROOT:about.adoc[Wicket viewer] it is displayed as a 'tool tip'. The attribute can also be specified for xref:applib:ant:CollectionLayout.adoc#describedAs[collections],  xref:applib:ant:ActionLayout.adoc#describedAs[actions], xref:applib:ant:ParameterLayout.adoc#describedAs[parameters], xref:applib:ant:DomainObjectLayout.adoc#describedAs[domain objects] and xref:applib:ant:Vie [...]
+The `describedAs()` attribute is used to provide a short description of the property to the user.  In the xref:vw:ROOT:about.adoc[Wicket viewer] it is displayed as a 'tool tip'. The attribute can also be specified for xref:rg:ant:CollectionLayout.adoc#describedAs[collections],  xref:rg:ant:ActionLayout.adoc#describedAs[actions], xref:rg:ant:ParameterLayout.adoc#describedAs[parameters], xref:rg:ant:DomainObjectLayout.adoc#describedAs[domain objects] and xref:rg:ant:ViewModelLayout.adoc#de [...]
 
 For example:
 
diff --git a/core/applib/_adoc/modules/ant/pages/PropertyLayout/hidden.adoc b/core/applib/_adoc/modules/ant/pages/PropertyLayout/hidden.adoc
index 2d02cd8..0f8623e 100644
--- a/core/applib/_adoc/modules/ant/pages/PropertyLayout/hidden.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PropertyLayout/hidden.adoc
@@ -10,7 +10,7 @@ The `hidden()` attribute indicates where (in the UI) the property should be hidd
 
 [TIP]
 ====
-It is also possible to use xref:applib:ant:PropertyLayout.adoc#hidden[`@PropertyLayout#hidden()`] or a xref:vw:ROOT:layout/file-based.adoc[file-based layout] such that the property can be hidden at the view layer.
+It is also possible to use xref:rg:ant:PropertyLayout.adoc#hidden[`@PropertyLayout#hidden()`] or a xref:vw:ROOT:layout/file-based.adoc[file-based layout] such that the property can be hidden at the view layer.
 Both options are provided with a view that in the future the view-layer semantics may be under the control of (expert) users, whereas domain-layer semantics should never be overridden or modified by the user.
 ====
 
@@ -58,7 +58,7 @@ The property should be hidden when displayed as a column of a table, either an o
 +
 The property should not be hidden, overriding any other metadata/conventions that would normally cause the property to be hidden.
 
-For example, if a property is annotated with xref:applib:ant:Title.adoc[`@Title`], then normally this should be hidden from all
+For example, if a property is annotated with xref:rg:ant:Title.adoc[`@Title`], then normally this should be hidden from all
 tables. Annotating with `@Property(where=Where.NOWHERE)` overrides this.
 
 
@@ -76,6 +76,6 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 
 This attribute can also be applied to:
 
-* xref:applib:ant:Action.adoc#hidden[actions]
-* xref:applib:ant:Collection.adoc#hidden[collections].
+* xref:rg:ant:Action.adoc#hidden[actions]
+* xref:rg:ant:Collection.adoc#hidden[collections].
 
diff --git a/core/applib/_adoc/modules/ant/pages/PropertyLayout/labelPosition.adoc b/core/applib/_adoc/modules/ant/pages/PropertyLayout/labelPosition.adoc
index ea24edc..e5324ff 100644
--- a/core/applib/_adoc/modules/ant/pages/PropertyLayout/labelPosition.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PropertyLayout/labelPosition.adoc
@@ -10,7 +10,7 @@ include::_attributes.adoc[]
 The `labelPosition()` attribute determines the positioning of labels for properties.
 
 The positioning of labels is typically `LEFT`, but can be positioned to the `TOP`.
-The one exception is xref:applib:ant:ParameterLayout.adoc#multiLine[`multiLine()`] string properties, where the label defaults to `TOP` automatically (to provide as much real-estate for the multiline text field as possible).
+The one exception is xref:rg:ant:ParameterLayout.adoc#multiLine[`multiLine()`] string properties, where the label defaults to `TOP` automatically (to provide as much real-estate for the multiline text field as possible).
 
 For boolean properties a positioning of `RIGHT` is also allowed; this is ignored for all other types.
 
@@ -64,7 +64,7 @@ image::reference-annotations/PropertyLayout/labelPosition-boolean-RIGHT.png[widt
 ====
 If you want a consistent look-n-feel throughout the app, eg all property labels to the top, then it'd be rather frustrating to have to annotate every property.
 
-Instead, a default can be specified using a xref:cfg:ROOT:configuring-core.adoc[configuration property] in `isis.properties`:
+Instead, a default can be specified using a xref:rg:cfg:configuring-core.adoc[configuration property] in `isis.properties`:
 
 [source,ini]
 ----
@@ -90,5 +90,5 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 
 == See also
 
-This attribute can also be specified for xref:applib:ant:ParameterLayout.adoc#labelPosition[parameters].
+This attribute can also be specified for xref:rg:ant:ParameterLayout.adoc#labelPosition[parameters].
 
diff --git a/core/applib/_adoc/modules/ant/pages/PropertyLayout/multiLine.adoc b/core/applib/_adoc/modules/ant/pages/PropertyLayout/multiLine.adoc
index 21c1f64..afd7493 100644
--- a/core/applib/_adoc/modules/ant/pages/PropertyLayout/multiLine.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PropertyLayout/multiLine.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-The `multiLine()` attribute specifies that the text field for a string property should span multiple lines.  It is ignored for other property types.  The attribute is also supported for xref:applib:ant:ParameterLayout.adoc#multiLine[parameters].
+The `multiLine()` attribute specifies that the text field for a string property should span multiple lines.  It is ignored for other property types.  The attribute is also supported for xref:rg:ant:ParameterLayout.adoc#multiLine[parameters].
 
 For example:
 
@@ -26,7 +26,7 @@ Here the `stepsToReproduce` will be displayed in a text area of 10 rows.
 
 [NOTE]
 ====
-If set > 1 (as would normally be the case), then the default xref:applib:ant:PropertyLayout.adoc#labelPosition[`labelPosition`] defaults to `TOP` (rather than `LEFT`, as would normally be the case).
+If set > 1 (as would normally be the case), then the default xref:rg:ant:PropertyLayout.adoc#labelPosition[`labelPosition`] defaults to `TOP` (rather than `LEFT`, as would normally be the case).
 ====
 
 == Alternatives
diff --git a/core/applib/_adoc/modules/ant/pages/PropertyLayout/named.adoc b/core/applib/_adoc/modules/ant/pages/PropertyLayout/named.adoc
index b3a69cc..918e27b 100644
--- a/core/applib/_adoc/modules/ant/pages/PropertyLayout/named.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PropertyLayout/named.adoc
@@ -45,10 +45,10 @@ The framework also provides a separate, powerful mechanism for xref:ug:btb:i18n.
 
 This attribute can also be specified for:
 
-* xref:applib:ant:ActionLayout.adoc#named[actions]
-* xref:applib:ant:CollectionLayout.adoc#named[collections]
-* xref:applib:ant:ParameterLayout.adoc#named[parameters]
-* xref:applib:ant:DomainObjectLayout.adoc#named[domain objects]
-* xref:applib:ant:ViewModelLayout.adoc#named[view models]
-* xref:applib:ant:DomainServiceLayout.adoc#named[domain services].
+* xref:rg:ant:ActionLayout.adoc#named[actions]
+* xref:rg:ant:CollectionLayout.adoc#named[collections]
+* xref:rg:ant:ParameterLayout.adoc#named[parameters]
+* xref:rg:ant:DomainObjectLayout.adoc#named[domain objects]
+* xref:rg:ant:ViewModelLayout.adoc#named[view models]
+* xref:rg:ant:DomainServiceLayout.adoc#named[domain services].
 
diff --git a/core/applib/_adoc/modules/ant/pages/PropertyLayout/renderedAsDayBefore.adoc b/core/applib/_adoc/modules/ant/pages/PropertyLayout/renderedAsDayBefore.adoc
index 03a8281..e78347b 100644
--- a/core/applib/_adoc/modules/ant/pages/PropertyLayout/renderedAsDayBefore.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PropertyLayout/renderedAsDayBefore.adoc
@@ -42,5 +42,5 @@ As an alternative to using the annotation, the dynamic xref:vw:ROOT:layout/file-
 
 == See also
 
-This attribute is also supported for xref:applib:ant:ParameterLayout.adoc#renderedAsDayBefore[parameters].
+This attribute is also supported for xref:rg:ant:ParameterLayout.adoc#renderedAsDayBefore[parameters].
 
diff --git a/core/applib/_adoc/modules/ant/pages/PropertyLayout/typicalLength.adoc b/core/applib/_adoc/modules/ant/pages/PropertyLayout/typicalLength.adoc
index 1fcbe72..71c4570 100644
--- a/core/applib/_adoc/modules/ant/pages/PropertyLayout/typicalLength.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PropertyLayout/typicalLength.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 
 The `typicalLength()` attribute indicates the typical length of a string property.
 It is ignored for properties of other types.
-The attribute is also supported for xref:applib:ant:ParameterLayout.adoc#typicalLength[parameters].
+The attribute is also supported for xref:rg:ant:ParameterLayout.adoc#typicalLength[parameters].
 
 The information is intended as a hint to the UI to determine the space that should be given to render a particular string property.
 That said, note that the xref:vw:ROOT:about.adoc[Wicket viewer] uses the maximum space available for all fields, so in effect ignores this attribute.
diff --git a/core/applib/_adoc/modules/ant/pages/PropertyLayout/unchanging.adoc b/core/applib/_adoc/modules/ant/pages/PropertyLayout/unchanging.adoc
index 17ead0e..c63eaaa 100644
--- a/core/applib/_adoc/modules/ant/pages/PropertyLayout/unchanging.adoc
+++ b/core/applib/_adoc/modules/ant/pages/PropertyLayout/unchanging.adoc
@@ -15,7 +15,7 @@ Note that for this to work, the viewer will also ensure that none of the propert
 
 [NOTE]
 ====
-Design note: we considered implementing this an "immutable" flag on the xref:applib:ant:Property.adoc[`@Property`] annotation (because this flag is typically appropriate for immutable/unchanging properties of a domain object).
+Design note: we considered implementing this an "immutable" flag on the xref:rg:ant:Property.adoc[`@Property`] annotation (because this flag is typically appropriate for immutable/unchanging properties of a domain object).
 However, we decided not to do that, on the basis that it might be interpreted as having a deeper impact within the framework than simply a hint for rendering.
 ====
 
diff --git a/core/applib/_adoc/modules/ant/pages/RequestScoped.adoc b/core/applib/_adoc/modules/ant/pages/RequestScoped.adoc
index 2c1c8a2..6b0c869 100644
--- a/core/applib/_adoc/modules/ant/pages/RequestScoped.adoc
+++ b/core/applib/_adoc/modules/ant/pages/RequestScoped.adoc
@@ -5,11 +5,11 @@ include::_attributes.adoc[]
 
 
 
-The `@javax.enterprise.context.RequestScoped` link:https://jcp.org/en/jsr/detail?id=299[JSR-299] CDI annotation is used to specify that a xref:applib:ant:DomainService.adoc[domain service] should be request-scoped rather than a singleton.
+The `@javax.enterprise.context.RequestScoped` link:https://jcp.org/en/jsr/detail?id=299[JSR-299] CDI annotation is used to specify that a xref:rg:ant:DomainService.adoc[domain service] should be request-scoped rather than a singleton.
 
 Although Apache Isis does not (currently) leverage CDI, the semantics are the same as request-scoped service; a new instance is created for each HTTP request, reserved for the exclusive use of all objects interacted with during that request.
 
-One of the built-in domain services that uses this annotation is xref:applib:svc:core-domain-api/Scratchpad.adoc[`Scratchpad`], intended to allow the arbitrary sharing of data between objects.  Here is the full source code of this service is:
+One of the built-in domain services that uses this annotation is xref:rg:svc:core-domain-api/Scratchpad.adoc[`Scratchpad`], intended to allow the arbitrary sharing of data between objects.  Here is the full source code of this service is:
 
 
 [source,java]
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModel.adoc b/core/applib/_adoc/modules/ant/pages/ViewModel.adoc
index a2505d3..9c1c0f6 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModel.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModel.adoc
@@ -25,7 +25,7 @@ public class CustomerViewModel {
 ----
 
 Although there are several ways to instantiate a view model, we recommend that they are instantiated using an N-arg constructor that initializes all relevant state.
-The xref:applib:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] can then be used to inject dependencies into the view model.
+The xref:rg:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] can then be used to inject dependencies into the view model.
 For example:
 
 [source,java]
@@ -43,10 +43,10 @@ See this xref:ug:btb:about.adoc#view-model-instantiation[tip] for further discus
 View models must have a no-arg constructor; this is used internally by the framework for subsequent "recreation".
 
 The view model's memento will be derived from the value of the view model object's properties.
-Any xref:applib:ant:Property.adoc#notPersisted[`@Property#notPersisted()`] properties will be excluded from the memento, as will any xref:applib:ant:Programmatic.adoc[`@Programmatic`] properties.
-Properties that are merely xref:applib:ant:Property.adoc#hidden[hidden] _are_ included in the memento.
+Any xref:rg:ant:Property.adoc#notPersisted[`@Property#notPersisted()`] properties will be excluded from the memento, as will any xref:rg:ant:Programmatic.adoc[`@Programmatic`] properties.
+Properties that are merely xref:rg:ant:Property.adoc#hidden[hidden] _are_ included in the memento.
 
-Only properties supported by the configured xref:applib:svc:integration-api/MementoService.adoc[`MementoService`] can be used. The default implementation supports all the value types and persisted entities.
+Only properties supported by the configured xref:rg:svc:integration-api/MementoService.adoc[`MementoService`] can be used. The default implementation supports all the value types and persisted entities.
 
 View models, as defined by `@ViewModel` (or `@DomainObject(nature=VIEW_MODEL)` for that matter) have some limitations:
 
@@ -60,9 +60,9 @@ If you are using view models heavily, you may wish to restrict yourself to just
 
 [NOTE]
 ====
-The `@ViewModel` does not allow the objectType to be specified, meaning that it is incompatible with the metamodel validation check ennabled by the xref:cfg:ROOT:configuring-core.adoc#metamodel-validation[`explicitObjectType`] configuration property.
+The `@ViewModel` does not allow the objectType to be specified, meaning that it is incompatible with the metamodel validation check ennabled by the xref:rg:cfg:configuring-core.adoc#metamodel-validation[`explicitObjectType`] configuration property.
 
-Instead, use xref:applib:ant:DomainObject.adoc#nature[`@DomainObject#nature()`] with `Nature.VIEW_MODEL`, and specify xref:applib:ant:DomainObject.adoc#objectType[`@DomainObject#objectType()`].
+Instead, use xref:rg:ant:DomainObject.adoc#nature[`@DomainObject#nature()`] with `Nature.VIEW_MODEL`, and specify xref:rg:ant:DomainObject.adoc#objectType[`@DomainObject#objectType()`].
 ====
 
 
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModel/objectType.adoc b/core/applib/_adoc/modules/ant/pages/ViewModel/objectType.adoc
index 9d82c90..a9af453 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModel/objectType.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModel/objectType.adoc
@@ -11,12 +11,12 @@ This value is used internally to generate a string representation of an objects
 This can appear in several contexts, including:
 
 * as the value of `Bookmark#getObjectType()` and in the `toString()` value of `Bookmark`
- (see xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
+ (see xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
  ** and thus in the "table-of-two-halves" pattern, as per the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s poly module
-* in the serialization of `OidDto` in the xref:schema:ROOT:cmd[command] and xref:schema:ROOT:about.adoc#ixn.adoc[interaction] schemas
+* in the serialization of `OidDto` in the xref:rg:schema:cmd[command] and xref:rg:schema:about.adoc#ixn.adoc[interaction] schemas
 * in the URLs of the xref:vro:ROOT:about.adoc[RestfulObjects viewer]
 * in the URLs of the xref:vw:ROOT:about.adoc[Wicket viewer] (in general and in particular if xref:vw:ROOT:features/hints-and-copy-url.adoc[copying URLs])
-* in XML snapshots generated by the xref:applib:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`]
+* in XML snapshots generated by the xref:rg:svc:integration-api/XmlSnapshotService.adoc[`XmlSnapshotService`]
 
 
 
@@ -39,9 +39,9 @@ public class Order {
 
 The rules of precedence are:
 
-1. xref:applib:ant:Discriminator.adoc[`@Discriminator`]
-2. `@DomainObject#objectType`, or xref:applib:ant:ViewModel.adoc#objectType[`@ViewModel#objectType()`]
-3. xref:applib:ant:PersistenceCapable.adoc[`@PersistenceCapable`], if at least the `schema` attribute is defined.
+1. xref:rg:ant:Discriminator.adoc[`@Discriminator`]
+2. `@DomainObject#objectType`, or xref:rg:ant:ViewModel.adoc#objectType[`@ViewModel#objectType()`]
+3. xref:rg:ant:PersistenceCapable.adoc[`@PersistenceCapable`], if at least the `schema` attribute is defined.
 +
 If both `schema` and `table` are defined, then the value is "`schema.table`".
 If only `schema` is defined, then the value is "`schema.className`".
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout.adoc
index 490db70..1a3b13d 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout.adoc
@@ -3,8 +3,8 @@
 include::_attributes.adoc[]
 
 
-The `@ViewModelLayout` annotation is identical to the xref:applib:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`], but is provided
-for symmetry with domain objects that have been annotated using xref:applib:ant:ViewModel.adoc[`@ViewModel`] (rather than xref:applib:ant:DomainObject.adoc#nature[`@DomainObject(nature=VIEW_MODEL)`]).
+The `@ViewModelLayout` annotation is identical to the xref:rg:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`], but is provided
+for symmetry with domain objects that have been annotated using xref:rg:ant:ViewModel.adoc[`@ViewModel`] (rather than xref:rg:ant:DomainObject.adoc#nature[`@DomainObject(nature=VIEW_MODEL)`]).
 
 
 The table below summarizes the annotation's attributes.
@@ -18,12 +18,12 @@ The table below summarizes the annotation's attributes.
 | Description
 
 
-|xref:applib:ant:ViewModelLayout.adoc#cssclass[`cssClass()`]
+|xref:rg:ant:ViewModelLayout.adoc#cssclass[`cssClass()`]
 |Any string valid as a CSS class
-|the css class that a domain class (type) should have, to allow more targetted styling in xref:cfg:ROOT:application-specific/application-css.adoc[`application.css`]
+|the css class that a domain class (type) should have, to allow more targetted styling in xref:rg:cfg:application-specific/application-css.adoc[`application.css`]
 
 
-|xref:applib:ant:ViewModelLayout.adoc#cssClassFa[`cssClassFa()`]
+|xref:rg:ant:ViewModelLayout.adoc#cssClassFa[`cssClassFa()`]
 |Any valid link:http://fortawesome.github.io/Font-Awesome/[Font awesome] icon name
 |specify a font awesome icon for the action's menu link or icon. +
 
@@ -34,47 +34,47 @@ The table below summarizes the annotation's attributes.
 |Currently unused.
 
 
-|xref:applib:ant:ViewModelLayout.adoc#cssClassUiEvent[`cssClassUiEvent()`]
+|xref:rg:ant:ViewModelLayout.adoc#cssClassUiEvent[`cssClassUiEvent()`]
 |subtype of `CssClassUiEvent` +
 (`CssClassUiEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain a CSS class for the domain object.
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain a CSS class for the domain object.
 
 
-|xref:applib:ant:ViewModelLayout.adoc#describedAs[`describedAs()`]
+|xref:rg:ant:ViewModelLayout.adoc#describedAs[`describedAs()`]
 |String.
 |description of this class, eg to be rendered in a tooltip.
 
-|xref:applib:ant:ViewModelLayout.adoc#iconUiEvent[`iconUiEvent()`]
+|xref:rg:ant:ViewModelLayout.adoc#iconUiEvent[`iconUiEvent()`]
 |subtype of `IconUiEvent` +
 (`IconUiEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the icon (name) for the domain object.
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the icon (name) for the domain object.
 
-|xref:applib:ant:ViewModelLayout.adoc#layoutUiEvent[`layoutUiEvent()`]
+|xref:rg:ant:ViewModelLayout.adoc#layoutUiEvent[`layoutUiEvent()`]
 |subtype of `LayoutUiEvent` +
 (`LayoutUiEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the layout (name) for the domain object.
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the layout (name) for the domain object.
 
-|xref:applib:ant:ViewModelLayout.adoc#named[`named()`]
+|xref:rg:ant:ViewModelLayout.adoc#named[`named()`]
 |String.
 |to override the name inferred from the action's name in code. +
 
 A typical use case is if the desired name is a reserved Java keyword, such as `default` or `package`.
 
 
-|xref:applib:ant:ViewModelLayout.adoc#paged[`paged()`]
+|xref:rg:ant:ViewModelLayout.adoc#paged[`paged()`]
 |Positive integer
 |the page size for instances of this class when rendered within a table (as returned from an action invocation)
 
 
-|xref:applib:ant:ViewModelLayout.adoc#plural[`plural()`]
+|xref:rg:ant:ViewModelLayout.adoc#plural[`plural()`]
 |String.
 |the plural name of the class
 
 
-|xref:applib:ant:ViewModelLayout.adoc#titleUiEvent[`titleUiEvent()`]
+|xref:rg:ant:ViewModelLayout.adoc#titleUiEvent[`titleUiEvent()`]
 |subtype of `TitleUiEvent` +
 (`TitleUiEvent.Default`)
-|the event type to be posted to the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the title for the domain object.
+|the event type to be posted to the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] to obtain the title for the domain object.
 
 |===
 
@@ -95,7 +95,7 @@ For example:
 public class CategoryPieChart { /* ... */ }
 ----
 <1> this annotation is intended for use with `@ViewModel`.
-If a view model has been specified using the equivalent xref:applib:ant:DomainObject.adoc#nature[`@DomainObject(nature=Nature.VIEW_MODEL)`], then we recommend you use xref:applib:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`] instead.
+If a view model has been specified using the equivalent xref:rg:ant:DomainObject.adoc#nature[`@DomainObject(nature=Nature.VIEW_MODEL)`], then we recommend you use xref:rg:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`] instead.
 
 
 [NOTE]
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/bookmarking.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/bookmarking.adoc
index 892fad8..f1c55fa 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/bookmarking.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/bookmarking.adoc
@@ -8,5 +8,5 @@ include::_attributes.adoc[]
 
 The `bookmarking()` attribute indicates that a view model is automatically bookmarked.
 
-This is equivalent to xref:applib:ant:DomainObjectLayout.adoc#bookmarking[`@DomainObjectLayout#bookmarking()`], but for view models instead of entities.
+This is equivalent to xref:rg:ant:DomainObjectLayout.adoc#bookmarking[`@DomainObjectLayout#bookmarking()`], but for view models instead of entities.
 
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClass.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClass.adoc
index 0429f2e..b5d9b5f 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClass.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClass.adoc
@@ -6,6 +6,6 @@ include::_attributes.adoc[]
 
 
 
-The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the view model.   xref:cfg:ROOT:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
+The `cssClass()` attribute can be used to render additional CSS classes in the HTML (a wrapping `<div>`) that represents the view model.   xref:rg:cfg:application-specific/application-css.adoc[Application-specific CSS] can then be used to target and adjust the UI representation of that particular element.
 
-This is equivalent to xref:applib:ant:DomainObjectLayout.adoc#cssClass[`@DomainObjectLayout#cssClass()`], but for view models instead of entities.
+This is equivalent to xref:rg:ant:DomainObjectLayout.adoc#cssClass[`@DomainObjectLayout#cssClass()`], but for view models instead of entities.
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClassFa.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClassFa.adoc
index 8fae764..f85252b 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClassFa.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClassFa.adoc
@@ -9,5 +9,5 @@ include::_attributes.adoc[]
 
 The `cssClassFa()` attribute is used to specify the name of a link:http://fortawesome.github.io/Font-Awesome/icons/[Font Awesome icon] name, to be rendered as the domain object's icon.
 
-This is equivalent to xref:applib:ant:DomainObjectLayout.adoc#cssClassFa[`@DomainObjectLayout#cssClassFa()`], but for view models instead of entities.
+This is equivalent to xref:rg:ant:DomainObjectLayout.adoc#cssClassFa[`@DomainObjectLayout#cssClassFa()`], but for view models instead of entities.
 
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClassUiEvent.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClassUiEvent.adoc
index d5cf1e7..42b51b8 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClassUiEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/cssClassUiEvent.adoc
@@ -7,6 +7,6 @@ include::_attributes.adoc[]
 
 Whenever a view model is to be rendered, the framework fires off an CSS class UI event to obtain a CSS class to use in any wrapping ``<div>``s and ``<span>``s that render the domain object.
 
-This attribute is the same as xref:applib:ant:DomainObjectLayout.adoc#cssClass[`@DomainObjectLayout#cssClass()`], but for view models instead of entities.
+This attribute is the same as xref:rg:ant:DomainObjectLayout.adoc#cssClass[`@DomainObjectLayout#cssClass()`], but for view models instead of entities.
 
 A default event that is emitted if none specified, unless the `isis.reflector.facet.viewModelLayoutAnnotation.cssClassUiEvent.postForDefault` configuration property is set to "false".
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/describedAs.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/describedAs.adoc
index 161033d..d31ee91 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/describedAs.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/describedAs.adoc
@@ -7,5 +7,5 @@ include::_attributes.adoc[]
 
 The `describedAs()` attribute is used to provide a short description of the view model to the user; in the xref:vw:ROOT:about.adoc[Wicket viewer] it is displayed as a 'tool tip'.
 
-This attribute is the same as xref:applib:ant:DomainObjectLayout.adoc#describedAs[`@DomainObjectLayout#describedAs()`], but for view models instead of entities.
+This attribute is the same as xref:rg:ant:DomainObjectLayout.adoc#describedAs[`@DomainObjectLayout#describedAs()`], but for view models instead of entities.
 
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/iconUiEvent.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/iconUiEvent.adoc
index 41d3d1c..0daeee9 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/iconUiEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/iconUiEvent.adoc
@@ -6,10 +6,10 @@ include::_attributes.adoc[]
 
 
 Whenever a view model is to be rendered, the framework fires off an icon UI event to obtain an icon (name) for the object (if possible).
-This is as an alternative to implementing xref:applib:cms:methods.adoc#iconName[`iconName()`] reserved method.
+This is as an alternative to implementing xref:rg:cms:methods.adoc#iconName[`iconName()`] reserved method.
 (If `iconName()` is present, then it will take precedence).
 
-This attribute is the same as xref:applib:ant:DomainObjectLayout.adoc#iconUiEvent[`@DomainObjectLayout#iconUiEvent()`], but for view models instead of entities.
+This attribute is the same as xref:rg:ant:DomainObjectLayout.adoc#iconUiEvent[`@DomainObjectLayout#iconUiEvent()`], but for view models instead of entities.
 
 A default event that is emitted if none specified, unless the `isis.reflector.facet.viewModelLayoutAnnotation.iconUiEvent.postForDefault` configuration property is set to "false".
 
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/layoutUiEvent.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/layoutUiEvent.adoc
index 2d7fd47..178caa2 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/layoutUiEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/layoutUiEvent.adoc
@@ -7,6 +7,6 @@ include::_attributes.adoc[]
 
 Whenever a view model is to be rendered, the framework fires off an layout UI event to obtain an alternative layout name with which to render the domain object.
 
-This attribute is the same as xref:applib:ant:DomainObjectLayout.adoc#layoutUiEvent[`@DomainObjectLayout#layoutUiEvent()`], but for view models instead of entities.
+This attribute is the same as xref:rg:ant:DomainObjectLayout.adoc#layoutUiEvent[`@DomainObjectLayout#layoutUiEvent()`], but for view models instead of entities.
 
 A default event that is emitted if none specified, unless the `isis.reflector.facet.viewModelLayoutAnnotation.layoutUiEvent.postForDefault` configuration property is set to "false".
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/named.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/named.adoc
index 3ef9f1b..b52ba9a 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/named.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/named.adoc
@@ -7,5 +7,5 @@ include::_attributes.adoc[]
 
 The `named()` attribute explicitly specifies the view model's name, overriding the name that would normally be inferred from the Java source code.
 
-This attribute is the same as xref:applib:ant:DomainObjectLayout.adoc#named[`@DomainObjectLayout#named()`], but for view models instead of entities.
+This attribute is the same as xref:rg:ant:DomainObjectLayout.adoc#named[`@DomainObjectLayout#named()`], but for view models instead of entities.
 
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/paged.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/paged.adoc
index d269b61..b52e1ad 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/paged.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/paged.adoc
@@ -7,4 +7,4 @@ include::_attributes.adoc[]
 
 The `paged()` attribute specifies the number of rows to display in a standalone collection, as returned from an action invocation.
 
-This attribute is the same as xref:applib:ant:DomainObjectLayout.adoc#paged[`@DomainObjectLayout#paged()`], but for view models instead of entities.
+This attribute is the same as xref:rg:ant:DomainObjectLayout.adoc#paged[`@DomainObjectLayout#paged()`], but for view models instead of entities.
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/plural.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/plural.adoc
index 26c4cf8..7c19d51 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/plural.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/plural.adoc
@@ -10,6 +10,6 @@ When Apache Isis displays a standalone collection of several objects, it will la
 By default the plural name will be derived from the end of the singular name, with support for some basic English language defaults (eg using "ies" for names ending with a "y").
 The `plural()` attribute allows the plural form of the class name to be specified explicitly.
 
-This attribute is the same as xref:applib:ant:DomainObjectLayout.adoc#plural[`@DomainObjectLayout#plural()`], but for view models instead of entities.
+This attribute is the same as xref:rg:ant:DomainObjectLayout.adoc#plural[`@DomainObjectLayout#plural()`], but for view models instead of entities.
 
 
diff --git a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/titleUiEvent.adoc b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/titleUiEvent.adoc
index bc9cbaa..57131fb 100644
--- a/core/applib/_adoc/modules/ant/pages/ViewModelLayout/titleUiEvent.adoc
+++ b/core/applib/_adoc/modules/ant/pages/ViewModelLayout/titleUiEvent.adoc
@@ -7,6 +7,6 @@ include::_attributes.adoc[]
 
 Whenever a view model is to be rendered, the framework fires off a title UI event to obtain a title for the object.
 
-This attribute is the same as xref:applib:ant:DomainObjectLayout.adoc#titleUiEvent[`@DomainObjectLayout#titleUiEvent()`], but for view models instead of entities.
+This attribute is the same as xref:rg:ant:DomainObjectLayout.adoc#titleUiEvent[`@DomainObjectLayout#titleUiEvent()`], but for view models instead of entities.
 
 A default event that is emitted if none specified, unless the `isis.reflector.facet.viewModelLayoutAnnotation.titleUiEvent.postForDefault` configuration property is set to "false".
diff --git a/core/applib/_adoc/modules/ant/pages/XmlJavaTypeAdapter.adoc b/core/applib/_adoc/modules/ant/pages/XmlJavaTypeAdapter.adoc
index 9c4968d..af3ee22 100644
--- a/core/applib/_adoc/modules/ant/pages/XmlJavaTypeAdapter.adoc
+++ b/core/applib/_adoc/modules/ant/pages/XmlJavaTypeAdapter.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 The JAXB `@XmlJavaTypeAdapter` annotation is used with the framework-provided
 `PersistentEntityAdapter` to instruct JAXB to serialize references to persistent entities using the canonical
 `OidDto` complex type: the object's type and its identifier.  This is the formal XML equivalent to the `Bookmark`
-provided by the xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`].
+provided by the xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`].
 
 For example:
 
diff --git a/core/applib/_adoc/modules/ant/pages/XmlRootElement.adoc b/core/applib/_adoc/modules/ant/pages/XmlRootElement.adoc
index dd8be2a..5e25a18 100644
--- a/core/applib/_adoc/modules/ant/pages/XmlRootElement.adoc
+++ b/core/applib/_adoc/modules/ant/pages/XmlRootElement.adoc
@@ -10,10 +10,10 @@ In the case of a JAXB-annotated object this memento is its XML representation.
 JAXB generally requires that the root element of the XML representation is annotated with `@XmlRootElement`.
 Apache Isis makes this a mandatory requirement.
 
-In comparison to using either the xref:applib:cms:classes/super.adoc#ViewModel[`ViewModel`] interface or the xref:applib:ant:ViewModel.adoc[`@ViewModel`] annotation, using `@XmlRootElement` has a couple of significant advantages:
+In comparison to using either the xref:rg:cms:classes/super.adoc#ViewModel[`ViewModel`] interface or the xref:rg:ant:ViewModel.adoc[`@ViewModel`] annotation, using `@XmlRootElement` has a couple of significant advantages:
 
 * the view model can be used as a "canonical" DTO, for example when accessing data using the xref:vro:ROOT:about.adoc[RestfulObjects viewer] in combination with the
-xref:applib:svc:presentation-layer-spi/ContentMappingService.adoc[`ContentMappingService`].
+xref:rg:svc:presentation-layer-spi/ContentMappingService.adoc[`ContentMappingService`].
 +
 This provides a stable and versioned API to access data in XML format using whatever client-side technology may be appropriate.
 
@@ -22,13 +22,13 @@ This provides a stable and versioned API to access data in XML format using what
 In contrast, if the `@ViewModel` annotation is used then only the state of the properties (not collections) is captured.
 If using `ViewModel` interface then arbitrary state (including that of collections), however the programmer must write all the code by hand
 
-The main disadvantages of using JAXB-annotated view models is that any referenced persistent entity must be annotated with the xref:applib:ant:XmlJavaTypeAdapter.adoc[`@XmlJavaTypeAdapter`], using the framework-provided `PersistentEntityAdapter`.
-This adapter converts any references to such domain entities using the `oidDto` complex type (as defined by the Apache Isis xref:schema:ROOT:common.adoc[common schema]): the object's type and its identifier.
+The main disadvantages of using JAXB-annotated view models is that any referenced persistent entity must be annotated with the xref:rg:ant:XmlJavaTypeAdapter.adoc[`@XmlJavaTypeAdapter`], using the framework-provided `PersistentEntityAdapter`.
+This adapter converts any references to such domain entities using the `oidDto` complex type (as defined by the Apache Isis xref:rg:schema:common.adoc[common schema]): the object's type and its identifier.
 
 [TIP]
 ====
 The memento string for view models is converted into a form compatible with use within a URL.
-This is performed by the xref:applib:svc:presentation-layer-spi/UrlEncodingService.adoc[`UrlEncodingService`], the default implementation of which simply encodes to base 64.
+This is performed by the xref:rg:svc:presentation-layer-spi/UrlEncodingService.adoc[`UrlEncodingService`], the default implementation of which simply encodes to base 64.
 If the view model XML graph is too large to be serialized to a string, then an alternative implementation (eg which maps XML strings to a GUID, say) can be configured using the technique described in xref:ug:btb:about.adoc#replacing-default-service-implementations[here] in the user guide.
 ====
 
@@ -60,7 +60,7 @@ public class ToDoItemDto implements Dto {
 
 Although (like any other viewmodel) a JAXB-annotated can have behaviour (actions) and UI hints, you may wish to keep the DTO "clean", just focused on specifying the data contract.
 
-Behaviour can therefore be provided using xref:ug:fun:building-blocks.adoc#mixins[mixins] (annotated with xref:applib:ant:Mixin.adoc[`@Mixin`]), while xref:applib:cms:classes/uievent.adoc[UI events] can be used to obtain title, icons and so on.
+Behaviour can therefore be provided using xref:ug:fun:building-blocks.adoc#mixins[mixins] (annotated with xref:rg:ant:Mixin.adoc[`@Mixin`]), while xref:rg:cms:classes/uievent.adoc[UI events] can be used to obtain title, icons and so on.
 
 For a more complete discussion of writing JAXB view models/DTOs, see xref:ug:fun:building-blocks.adoc#view-models[this topic] in the user guide.
 
diff --git a/core/applib/_adoc/modules/ant/pages/aaa/jdo.adoc b/core/applib/_adoc/modules/ant/pages/aaa/jdo.adoc
index 692524f..905ddae 100644
--- a/core/applib/_adoc/modules/ant/pages/aaa/jdo.adoc
+++ b/core/applib/_adoc/modules/ant/pages/aaa/jdo.adoc
@@ -26,7 +26,7 @@ The table below lists the JDO annotations currently recognized by Apache Isis.
 |Applies to
 
 
-|xref:applib:ant:Column.adoc[`@javax.jdo.annotations.` +
+|xref:rg:ant:Column.adoc[`@javax.jdo.annotations.` +
 `Column`]
 |Used to determine whether a property is mandatory or optional.  For `String` and `BigDecimal` properties, used to determine length/precision/scale.
 
@@ -34,16 +34,16 @@ The table below lists the JDO annotations currently recognized by Apache Isis.
 |Property
 
 
-|xref:applib:ant:Discriminator.adoc[`@javax.jdo.annotations.` +
+|xref:rg:ant:Discriminator.adoc[`@javax.jdo.annotations.` +
 `Discriminator`]
 |Override for the object type, as used in `Bookmark`s, URLs for xref:vro:ROOT:about.adoc[RestfulObjects viewer] and elsewhere. +
 
-Note that the discriminator overrides the object type that may otherwise be inferred from the xref:applib:ant:PersistenceCapable.adoc[`@PersistenceCapable`] annotation.
+Note that the discriminator overrides the object type that may otherwise be inferred from the xref:rg:ant:PersistenceCapable.adoc[`@PersistenceCapable`] annotation.
 |Domain / persistence
 |Class
 
 
-|xref:applib:ant:NotPersistent.adoc[`@javax.jdo.annotations.` +
+|xref:rg:ant:NotPersistent.adoc[`@javax.jdo.annotations.` +
 `NotPersistent`]
 |Used to determine whether to enforce or skip some xref:ug:btb:about.adoc#custom-validator[metamodel validation] for `@Column` versus equivalent Isis annotations.
 
@@ -52,17 +52,17 @@ Note that the discriminator overrides the object type that may otherwise be infe
 
 
 
-|xref:applib:ant:PersistenceCapable.adoc[`@javax.jdo.annotations.` +
+|xref:rg:ant:PersistenceCapable.adoc[`@javax.jdo.annotations.` +
 `PersistenceCapable`]
 |Used to build Apache Isis' own internal identifier for objects. +
 
-If the `schema()` attribute is specified (and if xref:applib:ant:Discriminator.adoc[`@Discriminator`] __hasn't__ been specified), is also used to derive the object type, as used in `Bookmark`s, URLs for xref:vro:ROOT:about.adoc[RestfulObjects viewer] and elsewhere.
+If the `schema()` attribute is specified (and if xref:rg:ant:Discriminator.adoc[`@Discriminator`] __hasn't__ been specified), is also used to derive the object type, as used in `Bookmark`s, URLs for xref:vro:ROOT:about.adoc[RestfulObjects viewer] and elsewhere.
 
 |Domain / persistence
 |Class
 
 
-|xref:applib:ant:PrimaryKey.adoc[`@javax.jdo.annotations.` +
+|xref:rg:ant:PrimaryKey.adoc[`@javax.jdo.annotations.` +
 `PrimaryKey`]
 |Used to ensure Apache Isis does not overwrite application-defined primary keys, and to ensure is read-only in the UI.
 
diff --git a/core/applib/_adoc/modules/ant/pages/aaa/jee.adoc b/core/applib/_adoc/modules/ant/pages/aaa/jee.adoc
index ffcdda9..1fb7dea 100644
--- a/core/applib/_adoc/modules/ant/pages/aaa/jee.adoc
+++ b/core/applib/_adoc/modules/ant/pages/aaa/jee.adoc
@@ -18,64 +18,64 @@ The table below lists the JEE annotations currently recognized.  Expect to see m
 |Layer
 |xref:vw:ROOT:layout/file-based.adoc[File-based layout]?
 
-|xref:applib:ant:Digits.adoc[`@javax.validation.` +
+|xref:rg:ant:Digits.adoc[`@javax.validation.` +
 `constraints.` +
 `Digits`]
 |Precision/scale for BigDecimal values.
 |Domain
 |
 
-|xref:applib:ant:Pattern.adoc[`@javax.validation.` +
+|xref:rg:ant:Pattern.adoc[`@javax.validation.` +
 `constraints.` +
 `Pattern`]
 |Regular expressions for strings
 |Domain
 |
 
-|xref:applib:ant:Inject.adoc[`@javax.inject.` +
+|xref:rg:ant:Inject.adoc[`@javax.inject.` +
 `Inject`]
 |Inject domain service into a domain object (entity or view model) or another domain service.
 |Domain
 |
 
-|xref:applib:ant:Digits.adoc[`@javax.annotation.` +
+|xref:rg:ant:Digits.adoc[`@javax.annotation.` +
 `Nullable`]
 |Specify that a property/parameter is optional.
 |Domain
 |
 
-|xref:applib:ant:PostConstruct.adoc[`@javax.annotation.` +
+|xref:rg:ant:PostConstruct.adoc[`@javax.annotation.` +
 `PostConstruct`]
-|Callback for domain services (either singleton or xref:applib:ant:RequestScoped.adoc[request-scoped]) to initialize themselves once instantiated.
+|Callback for domain services (either singleton or xref:rg:ant:RequestScoped.adoc[request-scoped]) to initialize themselves once instantiated.
 
 |Domain
 |
 
-|xref:applib:ant:PreDestroy.adoc[`@javax.annotation.` +
+|xref:rg:ant:PreDestroy.adoc[`@javax.annotation.` +
 `PreDestroy`]
-|Callback for domain services (either singleton or xref:applib:ant:RequestScoped.adoc[request-scoped]) to clean up resources prior to destruction.
+|Callback for domain services (either singleton or xref:rg:ant:RequestScoped.adoc[request-scoped]) to clean up resources prior to destruction.
 
 |Domain
 |
 
-|xref:applib:ant:RequestScoped.adoc[`@javax.enterprise.` +
+|xref:rg:ant:RequestScoped.adoc[`@javax.enterprise.` +
 `context.` +
 `RequestScoped`]
 |Specify that a domain service has request-scope (rather than a singleton).
 |Domain
 |
 
-|xref:applib:ant:XmlRootElement.adoc[`javax.xml.bind` +
+|xref:rg:ant:XmlRootElement.adoc[`javax.xml.bind` +
 `.annotation` +
 `XmlRootElement`]
 |JAXB annotation indicating the XML root element when serialized to XML; also used by the framework for view models (whose memento is the XML), often also acting as a DTO.
 |Application
 |
 
-|xref:applib:ant:XmlJavaTypeAdapter.adoc[`javax.xml.bind` +
+|xref:rg:ant:XmlJavaTypeAdapter.adoc[`javax.xml.bind` +
 `.annotation` +
 `XmlJavaTypeAdapter`]
-|JAXB annotation defining how to serialize an entity.  Used in conjunction with the (framework provided) `PersistentEntityAdapter` class to serialize persistent entities into a canonical OID (equivalent to the `Bookmark` provided by the xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`]).
+|JAXB annotation defining how to serialize an entity.  Used in conjunction with the (framework provided) `PersistentEntityAdapter` class to serialize persistent entities into a canonical OID (equivalent to the `Bookmark` provided by the xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`]).
 |Domain
 |
 
diff --git a/core/applib/_adoc/modules/ant/pages/aaa/main.adoc b/core/applib/_adoc/modules/ant/pages/aaa/main.adoc
index f9b93c4..02cbe60 100644
--- a/core/applib/_adoc/modules/ant/pages/aaa/main.adoc
+++ b/core/applib/_adoc/modules/ant/pages/aaa/main.adoc
@@ -26,72 +26,72 @@ The table below summarizes these most commonly used annotations in Apache Isis.
 |Layer
 |xref:vw:ROOT:layout/file-based.adoc[File-based layout]?
 
-|xref:applib:ant:Action.adoc[`@Action`]
+|xref:rg:ant:Action.adoc[`@Action`]
 |Domain semantics for actions
 |Domain
 |
 
-|xref:applib:ant:ActionLayout.adoc[`@ActionLayout`]
+|xref:rg:ant:ActionLayout.adoc[`@ActionLayout`]
 |User interface hints for actions
 |UI
 |Yes
 
-|xref:applib:ant:Collection.adoc[`@Collection`]
+|xref:rg:ant:Collection.adoc[`@Collection`]
 |Domain semantics for collections
 |Domain
 |
 
-|xref:applib:ant:CollectionLayout.adoc[`@CollectionLayout`]
+|xref:rg:ant:CollectionLayout.adoc[`@CollectionLayout`]
 |User interface hints for collections
 |UI
 |Yes
 
-|xref:applib:ant:DomainObject.adoc[`@DomainObject`]
+|xref:rg:ant:DomainObject.adoc[`@DomainObject`]
 |Domain semantics for domain object (entities and optionally view models, see also `@ViewModel)`
 |Domain
 |
 
-|xref:applib:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`]
+|xref:rg:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`]
 |User interface hints for domain object (entities and optionally view models, see also `@ViewModelLayout)`
 |UI
 |Yes
 
-|xref:applib:ant:DomainService.adoc[`@DomainService`]
+|xref:rg:ant:DomainService.adoc[`@DomainService`]
 |Class is a domain service (rather than an entity or view model)
 |Domain
 |
 
-|xref:applib:ant:DomainServiceLayout.adoc[`@DomainServiceLayout`]
+|xref:rg:ant:DomainServiceLayout.adoc[`@DomainServiceLayout`]
 |User interface hints for domain services
 |UI
 |
 
-|xref:applib:ant:Parameter.adoc[`@Parameter`]
+|xref:rg:ant:Parameter.adoc[`@Parameter`]
 |Domain semantics for action parameters
 |Domain
 |
 
-|xref:applib:ant:ParameterLayout.adoc[`@ParameterLayout`]
+|xref:rg:ant:ParameterLayout.adoc[`@ParameterLayout`]
 |Layout hints for an action parameter (currently: its label position either to top or the left).
 |UI
 |Yes
 
-|xref:applib:ant:Property.adoc[`@Property`]
+|xref:rg:ant:Property.adoc[`@Property`]
 |Domain semantics for properties
 |Domain
 |
 
-|xref:applib:ant:PropertyLayout.adoc[`@PropertyLayout`]
+|xref:rg:ant:PropertyLayout.adoc[`@PropertyLayout`]
 |Layout hints for a property
 |UI
 |Yes
 
-|xref:applib:ant:ViewModel.adoc[`@ViewModel`]
+|xref:rg:ant:ViewModel.adoc[`@ViewModel`]
 |Specify that a class is a view model (as opposed to an entity or domain service); equivalent to `@DomainObject(nature`=VIEW_MODEL).
 |Domain, Persistence
 |
 
-|xref:applib:ant:ViewModelLayout.adoc[`@ViewModelLayout`]
+|xref:rg:ant:ViewModelLayout.adoc[`@ViewModelLayout`]
 |User interface hints for view models.
 For use with `@ViewModel`. If specifying view models using `@DomainObject(nature=VIEW_MODEL)` then use `@DomainObjectLayout`)
 |UI
diff --git a/core/applib/_adoc/modules/ant/pages/aaa/other.adoc b/core/applib/_adoc/modules/ant/pages/aaa/other.adoc
index bb7dee8..2f497b4 100644
--- a/core/applib/_adoc/modules/ant/pages/aaa/other.adoc
+++ b/core/applib/_adoc/modules/ant/pages/aaa/other.adoc
@@ -15,34 +15,34 @@ These annotations are also commonly used, but relate _not_ to objects or object
 |Layer
 |xref:vw:ROOT:layout/file-based.adoc[File-based layout]?
 
-|xref:applib:ant:Facets.adoc[`@Facets`]
+|xref:rg:ant:Facets.adoc[`@Facets`]
 |Install arbitrary facets within the Apache Isis metamodel.
 |(any)
 |
 
-|xref:applib:ant:HomePage.adoc[`@HomePage`]
+|xref:rg:ant:HomePage.adoc[`@HomePage`]
 |Query-only action (on domain service) to be invoked, result of which is rendered as the user's home page.
 |UI
 |
 
-|xref:applib:ant:MemberOrder.adoc[`@MemberOrder`]
+|xref:rg:ant:MemberOrder.adoc[`@MemberOrder`]
 |Ordering of properties, collections and actions, and also associating actions with either a property or a collection.
 |UI
 |Yes
 
 
-|xref:applib:ant:MinLength.adoc[`@MinLength`]
+|xref:rg:ant:MinLength.adoc[`@MinLength`]
 |Minimum number of characters required for an auto-complete search argument.
 |UI
 |
 
 
-|xref:applib:ant:Programmatic.adoc[`@Programmatic`]
+|xref:rg:ant:Programmatic.adoc[`@Programmatic`]
 |Ignore a public method, excluded from the Apache Isis metamodel.
 |Domain
 |
 
-|xref:applib:ant:Title.adoc[`@Title`]
+|xref:rg:ant:Title.adoc[`@Title`]
 |Indicates which of the object's properties should be used to build up a title for the object.
 |UI
 
diff --git a/core/applib/_adoc/modules/ant/partials/module-nav.adoc b/core/applib/_adoc/modules/ant/partials/module-nav.adoc
new file mode 100644
index 0000000..848d4b5
--- /dev/null
+++ b/core/applib/_adoc/modules/ant/partials/module-nav.adoc
@@ -0,0 +1,40 @@
+* xref:rg:ant:about.adoc[Annotations]
+
+** xref:rg:ant:aaa.adoc[Summary]
+** xref:rg:ant:Action.adoc[Action]
+** xref:rg:ant:ActionLayout.adoc[ActionLayout]
+** xref:rg:ant:Collection.adoc[Collection]
+** xref:rg:ant:CollectionLayout.adoc[CollectionLayout]
+** xref:rg:ant:Column.adoc[Column]
+** xref:rg:ant:Digits.adoc[Digits]
+** xref:rg:ant:Discriminator.adoc[Discriminator]
+** xref:rg:ant:DomainObject.adoc[DomainObject]
+** xref:rg:ant:DomainObjectLayout.adoc[DomainObjectLayout]
+** xref:rg:ant:DomainService.adoc[DomainService]
+** xref:rg:ant:DomainServiceLayout.adoc[DomainServiceLayout]
+** xref:rg:ant:Facets.adoc[Facets]
+** xref:rg:ant:HomePage.adoc[HomePage]
+** xref:rg:ant:Inject.adoc[Inject]
+** xref:rg:ant:MemberGroupLayout.adoc[MemberGroupLayout]
+** xref:rg:ant:MemberOrder.adoc[MemberOrder]
+** xref:rg:ant:Mixin.adoc[Mixin]
+** xref:rg:ant:NotPersistent.adoc[NotPersistent.]
+** xref:rg:ant:Nullable.adoc[Nullable]
+** xref:rg:ant:MinLength.adoc[MinLength]
+** xref:rg:ant:Parameter.adoc[Parameter]
+** xref:rg:ant:ParameterLayout.adoc[ParameterLayout]
+** xref:rg:ant:Pattern.adoc[Pattern]
+** xref:rg:ant:PersistenceCapable.adoc[PersistenceCapable]
+** xref:rg:ant:PostConstruct.adoc[PostConstruct]
+** xref:rg:ant:PreDestroy.adoc[PreDestroy]
+** xref:rg:ant:PrimaryKey.adoc[PrimaryKey]
+** xref:rg:ant:Programmatic.adoc[Programmatic]
+** xref:rg:ant:Property.adoc[Property]
+** xref:rg:ant:PropertyLayout.adoc[PropertyLayout]
+** xref:rg:ant:RequestScoped.adoc[RequestScoped]
+** xref:rg:ant:Title.adoc[Title]
+** xref:rg:ant:ViewModel.adoc[ViewModel]
+** xref:rg:ant:ViewModelLayout.adoc[ViewModelLayout]
+** xref:rg:ant:XmlJavaTypeAdapter.adoc[XmlJavaTypeAdapter]
+** xref:rg:ant:XmlRootElement.adoc[XmlRootElement]
+
diff --git a/core/applib/_adoc/modules/ant/partials/nav.adoc b/core/applib/_adoc/modules/ant/partials/nav.adoc
deleted file mode 100644
index f052a9f..0000000
--- a/core/applib/_adoc/modules/ant/partials/nav.adoc
+++ /dev/null
@@ -1,40 +0,0 @@
-* xref:applib:ant:about.adoc[Annotations]
-
-** xref:applib:ant:aaa.adoc[Summary]
-** xref:applib:ant:Action.adoc[Action]
-** xref:applib:ant:ActionLayout.adoc[ActionLayout]
-** xref:applib:ant:Collection.adoc[Collection]
-** xref:applib:ant:CollectionLayout.adoc[CollectionLayout]
-** xref:applib:ant:Column.adoc[Column]
-** xref:applib:ant:Digits.adoc[Digits]
-** xref:applib:ant:Discriminator.adoc[Discriminator]
-** xref:applib:ant:DomainObject.adoc[DomainObject]
-** xref:applib:ant:DomainObjectLayout.adoc[DomainObjectLayout]
-** xref:applib:ant:DomainService.adoc[DomainService]
-** xref:applib:ant:DomainServiceLayout.adoc[DomainServiceLayout]
-** xref:applib:ant:Facets.adoc[Facets]
-** xref:applib:ant:HomePage.adoc[HomePage]
-** xref:applib:ant:Inject.adoc[Inject]
-** xref:applib:ant:MemberGroupLayout.adoc[MemberGroupLayout]
-** xref:applib:ant:MemberOrder.adoc[MemberOrder]
-** xref:applib:ant:Mixin.adoc[Mixin]
-** xref:applib:ant:NotPersistent.adoc[NotPersistent.]
-** xref:applib:ant:Nullable.adoc[Nullable]
-** xref:applib:ant:MinLength.adoc[MinLength]
-** xref:applib:ant:Parameter.adoc[Parameter]
-** xref:applib:ant:ParameterLayout.adoc[ParameterLayout]
-** xref:applib:ant:Pattern.adoc[Pattern]
-** xref:applib:ant:PersistenceCapable.adoc[PersistenceCapable]
-** xref:applib:ant:PostConstruct.adoc[PostConstruct]
-** xref:applib:ant:PreDestroy.adoc[PreDestroy]
-** xref:applib:ant:PrimaryKey.adoc[PrimaryKey]
-** xref:applib:ant:Programmatic.adoc[Programmatic]
-** xref:applib:ant:Property.adoc[Property]
-** xref:applib:ant:PropertyLayout.adoc[PropertyLayout]
-** xref:applib:ant:RequestScoped.adoc[RequestScoped]
-** xref:applib:ant:Title.adoc[Title]
-** xref:applib:ant:ViewModel.adoc[ViewModel]
-** xref:applib:ant:ViewModelLayout.adoc[ViewModelLayout]
-** xref:applib:ant:XmlJavaTypeAdapter.adoc[XmlJavaTypeAdapter]
-** xref:applib:ant:XmlRootElement.adoc[XmlRootElement]
-
diff --git a/core/applib/_adoc/modules/cms/nav.adoc b/core/applib/_adoc/modules/cms/nav.adoc
index de2a49c..053a7ac 100644
--- a/core/applib/_adoc/modules/cms/nav.adoc
+++ b/core/applib/_adoc/modules/cms/nav.adoc
@@ -1 +1 @@
-include::rg:ROOT:partial$nav.adoc[]
+include::rg:ROOT:partial$component-nav.adoc[]
diff --git a/core/applib/_adoc/modules/cms/pages/about.adoc b/core/applib/_adoc/modules/cms/pages/about.adoc
index b59b7a4..29c2918 100644
--- a/core/applib/_adoc/modules/cms/pages/about.adoc
+++ b/core/applib/_adoc/modules/cms/pages/about.adoc
@@ -2,9 +2,9 @@
 include::_attributes.adoc[]
 
 
-This reference guide lists and describes various elements of the the Apache Isis Programming Model, specifically reserved and prefix xref:applib:cms:methods.adoc[methods] (such as `title()` and `validate...()`) and various utility and supporting xref:applib:cms:classes.adoc[classes].
+This reference guide lists and describes various elements of the the Apache Isis Programming Model, specifically reserved and prefix xref:rg:cms:methods.adoc[methods] (such as `title()` and `validate...()`) and various utility and supporting xref:rg:cms:classes.adoc[classes].
 
-It also describes the xref:schema:ROOT:about.adoc[XSD schema] defined by Apache Isis.
+It also describes the xref:rg:schema:about.adoc[XSD schema] defined by Apache Isis.
 One use case is for the JAXB serialization of view models.
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes.adoc b/core/applib/_adoc/modules/cms/pages/classes.adoc
index 53fe9bf..3e7ae32 100644
--- a/core/applib/_adoc/modules/cms/pages/classes.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes.adoc
@@ -3,7 +3,7 @@
 include::_attributes.adoc[]
 
 
-This chapter describes the usage of various classes and interfaces that are not otherwise associated with xref:applib:svc:about.adoc[domain services], xref:vw:ROOT:layout.adoc[object layout] or xref:cfg:ROOT:about[configuration].
+This chapter describes the usage of various classes and interfaces that are not otherwise associated with xref:rg:svc:about.adoc[domain services], xref:vw:ROOT:layout.adoc[object layout] or xref:rg:cfg:about[configuration].
 
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/AppManifest-bootstrapping.adoc b/core/applib/_adoc/modules/cms/pages/classes/AppManifest-bootstrapping.adoc
index 790c798..499e8db 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/AppManifest-bootstrapping.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/AppManifest-bootstrapping.adoc
@@ -8,7 +8,7 @@ This section describes how to implement the `AppManifest` interface to bootstrap
 
 [TIP]
 ====
-The framework-provided `AppManifestAbstract2` and `AppManifestAbstract2.Builder` makes it easy to write an `AppManifest`, defined by a set of xref:applib:cms:classes/Module.adoc[`Module`] implementations.
+The framework-provided `AppManifestAbstract2` and `AppManifestAbstract2.Builder` makes it easy to write an `AppManifest`, defined by a set of xref:rg:cms:classes/Module.adoc[`Module`] implementations.
 The app manifest can then be used both to bootstrap the application "proper", or for integration tests.
 ====
 
@@ -46,7 +46,7 @@ The following sections describe each of these methods in a little more detail.
 === `getModules()`
 
 The most significant method (the only one which must return a non-`null` value) is the `getModules()` method.
-Each module is identified by a class; the framework simply uses that class' package as the root to search for domain services (annotated with xref:applib:ant:DomainService.adoc[`@DomainService`]) and entities (annotated with xref:applib:ant:PersistenceCapable.adoc[`@PersistenceCapable`]).
+Each module is identified by a class; the framework simply uses that class' package as the root to search for domain services (annotated with xref:rg:ant:DomainService.adoc[`@DomainService`]) and entities (annotated with xref:rg:ant:PersistenceCapable.adoc[`@PersistenceCapable`]).
 Generally there is one such module class per Maven module.
 
 A module class for a domain module might for example be defined as:
@@ -92,7 +92,7 @@ As can be seen, the various (non-ASF) link:https://platform.incode.org[Incode Pl
 === `getAdditionalServices()`
 
 We normally we recommend that services are defined exclusively through `getModules()`, and that this method should therefore return an empty list.
-However, there are certain use cases where the a service must be explicitly specified either because the service required does not (for whatever reason) have a xref:applib:ant:DomainService.adoc[`@DomainService`] annotation.
+However, there are certain use cases where the a service must be explicitly specified either because the service required does not (for whatever reason) have a xref:rg:ant:DomainService.adoc[`@DomainService`] annotation.
 
 For example, the xref:ext-secman:ROOT:about.adoc[SecMan extension] allows the policy to evaluate conflicting permissions to be specified by explicitly registering either the `PermissionsEvaluationServiceAllowBeatsVeto` domain service or the `PermissionsEvaluationServiceVetoBeatsAllow` domain service:
 
@@ -185,7 +185,7 @@ public Map<String, String> getConfigurationProperties() {
 
 [NOTE]
 ====
-The recommendations in this section no longer apply if using the xref:applib:cms:classes.adoc#bootstrapping[`AppManifest2`] interface and ``Module``s to bootstrap your application.
+The recommendations in this section no longer apply if using the xref:rg:cms:classes.adoc#bootstrapping[`AppManifest2`] interface and ``Module``s to bootstrap your application.
 ====
 
 One of the primary goals of the `AppManifest` is to unify the bootstrapping of both integration tests and the webapp.
@@ -237,7 +237,7 @@ The next section describes some helper classes that the framework provides to he
 
 [IMPORTANT]
 ====
-The framework-provided `AppManifestAbstract2` and `AppManifestAbstract2.Builder` supercede `AppManifestAbstract`, making it easy to write an `AppManifest` defined by a set of xref:applib:cms:classes/Module.adoc[`Module`] implementations.
+The framework-provided `AppManifestAbstract2` and `AppManifestAbstract2.Builder` supercede `AppManifestAbstract`, making it easy to write an `AppManifest` defined by a set of xref:rg:cms:classes/Module.adoc[`Module`] implementations.
 ====
 
 The `AppManifestAbstract` and its associated builder (`AppManifestAbstract.Builder`) make it easy to bootstrap the application both as a webapp and also as an integration test.
diff --git a/core/applib/_adoc/modules/cms/pages/classes/AppManifest2-bootstrapping.adoc b/core/applib/_adoc/modules/cms/pages/classes/AppManifest2-bootstrapping.adoc
index dc965d2..855f96c 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/AppManifest2-bootstrapping.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/AppManifest2-bootstrapping.adoc
@@ -4,7 +4,7 @@
 include::_attributes.adoc[]
 
 
-The bootstrapping of an Apache Isis application has been modularized using the `Module` interface, with `AppManifest2` (an extension of the original xref:applib:cms:classes/AppManifest-bootstrapping.adoc[`AppManifest`] interface) defined in terms of ``Module``s also.
+The bootstrapping of an Apache Isis application has been modularized using the `Module` interface, with `AppManifest2` (an extension of the original xref:rg:cms:classes/AppManifest-bootstrapping.adoc[`AppManifest`] interface) defined in terms of ``Module``s also.
 
 A `Module` represents a collection of entities and domain services that provide a set of coherent functionality under a single package (and subpackages underneath), with the module class itself residing at the top-level package.
 
@@ -12,7 +12,7 @@ Each `Module` can express its immediate dependencies (using `Module#getDependenc
 
 Each `Module` can also optionally define additional dependencies on "legacy" modules (that is, those that do not implement `Module`) using `Module#getAdditionalModules()` method.
 These legacy modules simply define a package to search for entities and domain services.
-Legacy domain services can also be explicitly identified using `Module#getAdditionalServices()` method; such services do _not_ need to be annotated with xref:applib:ant:DomainService.adoc[`@DomainService`].
+Legacy domain services can also be explicitly identified using `Module#getAdditionalServices()` method; such services do _not_ need to be annotated with xref:rg:ant:DomainService.adoc[`@DomainService`].
 
 A `Module` can also declare additional configuration properties (using either `Module#getIndividualConfigProps()` or `Module#getPropertyResources()`) that should be      contributed to the overall set of configuration properties used to bootstrap the application.
 
@@ -41,7 +41,7 @@ Specifically, only the `Builder` can specify the authentication mechanism, and o
 
 == API
 
-The `AppManifest2` interface extends xref:applib:cms:classes.adoc#api[`AppManifest`], additionally declaring the top-level `Module` that was used to create the app manifest, and fixtures for reference data setup and for teardown:
+The `AppManifest2` interface extends xref:rg:cms:classes.adoc#api[`AppManifest`], additionally declaring the top-level `Module` that was used to create the app manifest, and fixtures for reference data setup and for teardown:
 
 [source,java]
 ----
@@ -75,7 +75,7 @@ public abstract class AppManifestAbstract2 extends AppManifestAbstract implement
 }
 ----
 
-Additional `withXxx(...)` builder methods are inherited from xref:applib:cms:classes.adoc#bootstrapping[`AppManifestAbstract.Builder`].
+Additional `withXxx(...)` builder methods are inherited from xref:rg:cms:classes.adoc#bootstrapping[`AppManifestAbstract.Builder`].
 
 
 For example:
@@ -118,10 +118,10 @@ public interface Module {
 The framework calculates a full set of transitive dependencies from this.
 <2> Support for "legacy" modules that do not implement `Module`.
 These are added to the set of packages to scan for entities and domain services.
-<3> Each `Module` can define additional "legacy" domain services that have not been defined within modules,or that have not been annotated with xref:applib:ant:DomainService.adoc[`@DomainService`].
-<4> Optionally each `Module` can define a xref:applib:cms:classes.adoc#FixtureScript[`FixtureScript`] which holds immutable "reference data".
+<3> Each `Module` can define additional "legacy" domain services that have not been defined within modules,or that have not been annotated with xref:rg:ant:DomainService.adoc[`@DomainService`].
+<4> Optionally each `Module` can define a xref:rg:cms:classes.adoc#FixtureScript[`FixtureScript`] which holds immutable "reference data".
 These are automatically executed whenever running integration tests (but are ignored when bootstrapping the runtime as a webapp.
-<5> Similarly, optionally each `Module` can define a tear-down xref:applib:cms:classes.adoc#FixtureScript[`FixtureScript`], used to remove the contents of _all_ entities (both reference data and operational/transactional data).
+<5> Similarly, optionally each `Module` can define a tear-down xref:rg:cms:classes.adoc#FixtureScript[`FixtureScript`], used to remove the contents of _all_ entities (both reference data and operational/transactional data).
 <6> Optionally each module can define additional configuration properties.
 These can either be specified as key-value pair, or by way of the `PropertyResource` class.
 The `PropertyResource` class identifies a property configuration file to load from the classpath, with respect to some other context class.
@@ -177,7 +177,7 @@ Alternatively, could override `getAdditonalServices()`.
 == Bootstrapping
 
 One of the overarching goals is to ensure that integration tests and the webapp are bootstrapped in as similar a way as possible.
-xref:applib:cms:classes.adoc#bootstrapping[Previously] this was done by using a single `AppManifest` for both the tests and the webapp.
+xref:rg:cms:classes.adoc#bootstrapping[Previously] this was done by using a single `AppManifest` for both the tests and the webapp.
 
 However, this approach does have a significant drawback.
 The `AppManifest` implementation must (necessarily) reference all the modules wthin the application, and this therefore means that the integration tests are also scoped (or at least, have access to) the entire application.
diff --git a/core/applib/_adoc/modules/cms/pages/classes/contributee/HasTransactionId.adoc b/core/applib/_adoc/modules/cms/pages/classes/contributee/HasTransactionId.adoc
index 8d6080a..269e634 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/contributee/HasTransactionId.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/contributee/HasTransactionId.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 The `HasTransactionId` interface is a mix-in for any domain objects that reference a transaction id, such as
-auditing entries or commands, or for xref:applib:svc:application-layer-api/InteractionContext.adoc[``Interaction``]s persisted as published events.
+auditing entries or commands, or for xref:rg:svc:application-layer-api/InteractionContext.adoc[``Interaction``]s persisted as published events.
 
 [NOTE]
 ====
@@ -43,11 +43,11 @@ public interface RepresentsInteractionMemberExecution extends HasTransactionId {
 }
 ----
 
-Here the (inherited) `getTransactionId()` is intended to be interpreted as an interaction (cf xref:schema:ROOT:ixn[`InteractionDto`]) that has at least one member execution (cf xref:schema:ROOT:about.adoc#ixn/memberExecutionDto.adoc[`memberExecutionDto`]).
+Here the (inherited) `getTransactionId()` is intended to be interpreted as an interaction (cf xref:rg:schema:ixn[`InteractionDto`]) that has at least one member execution (cf xref:rg:schema:about.adoc#ixn/memberExecutionDto.adoc[`memberExecutionDto`]).
 
-If the interaction (almost certainly an action) calls other actions by way of xref:applib:svc:WrapperFactory.adoc[`WrapperFactory`]), then there may be several member executions, each with a unique sequence number, within the same transaction Id.
+If the interaction (almost certainly an action) calls other actions by way of xref:rg:svc:WrapperFactory.adoc[`WrapperFactory`]), then there may be several member executions, each with a unique sequence number, within the same transaction Id.
 
 The purpose of this interface is to allow mixins to be defined, though the framework itself defines none.
 
-Currently the only implementation of this interface is that for `PublishedObjects` applib interface as defined by the xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
+Currently the only implementation of this interface is that for `PublishedObjects` applib interface as defined by the xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/domainevent.adoc b/core/applib/_adoc/modules/cms/pages/classes/domainevent.adoc
index 9b5fe1e..2ba02e9 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/domainevent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/domainevent.adoc
@@ -6,8 +6,8 @@ include::_attributes.adoc[]
 
 This section catalogues the various domain event classes defined by Apache Isis.
 
-These events are broadcast on the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`].
-The domain events are broadcast as a result of being specified in the xref:applib:ant:Action.adoc#domainEvent[`@Action#domainEvent()`],  xref:applib:ant:Property.adoc#domainEvent[`@Property#domainEvent()`] or xref:applib:ant:Collection.adoc#domainEvent[`@Collection#domainEvent()`] attributes.
+These events are broadcast on the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`].
+The domain events are broadcast as a result of being specified in the xref:rg:ant:Action.adoc#domainEvent[`@Action#domainEvent()`],  xref:rg:ant:Property.adoc#domainEvent[`@Property#domainEvent()`] or xref:rg:ant:Collection.adoc#domainEvent[`@Collection#domainEvent()`] attributes.
 
 They are listed in the table below.
 
@@ -22,7 +22,7 @@ Impl'n (g: a:)
 |Notes
 
 
-|xref:applib:cms:classes.adoc#AbstractDomainEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#AbstractDomainEvent[`o.a.i.applib.` +
 `AbstractDomainEvent`]
 |``o.a.i.core`` +
 ``events.domain`` +
@@ -31,7 +31,7 @@ Impl'n (g: a:)
 |Superclass of the other domain events, listed below in this table.
 
 
-|xref:applib:cms:classes.adoc#ActionDomainEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#ActionDomainEvent[`o.a.i.applib.` +
 `ActionDomainEvent`]
 |``o.a.i.core`` +
 ``events.domain`` +
@@ -41,7 +41,7 @@ Impl'n (g: a:)
 |Broadcast whenever there is an interaction (hide/disable/validate/pre-execute/post-execute) with an object's action.
 
 
-|xref:applib:cms:classes.adoc#CollectionDomainEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#CollectionDomainEvent[`o.a.i.applib.` +
 `CollectionDomainEvent`]
 |``o.a.i.core`` +
 ``events.domain`` +
@@ -52,7 +52,7 @@ is specified.
 |Broadcast whenever there is an interaction (hide/disable/validate/access) with an object's collection.
 
 
-|xref:applib:cms:classes.adoc#PropertyDomainEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#PropertyDomainEvent[`o.a.i.applib.` +
 `PropertyDomainEvent`]
 |``o.a.i.core`` +
 ``events.domain`` +
diff --git a/core/applib/_adoc/modules/cms/pages/classes/domainevent/AbstractDomainEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/domainevent/AbstractDomainEvent.adoc
index 6389d00..69b504e 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/domainevent/AbstractDomainEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/domainevent/AbstractDomainEvent.adoc
@@ -10,9 +10,9 @@ properties or collections.
 
 Its immediate subclasses are:
 
-* xref:applib:cms:classes.adoc#ActionDomainEvent[`ActionDomainEvent`]
-* xref:applib:cms:classes.adoc#PropertyDomainEvent[`PropertyDomainEvent`]
-* xref:applib:cms:classes.adoc#CollectionDomainEvent[`CollectionDomainEvent`]
+* xref:rg:cms:classes.adoc#ActionDomainEvent[`ActionDomainEvent`]
+* xref:rg:cms:classes.adoc#PropertyDomainEvent[`PropertyDomainEvent`]
+* xref:rg:cms:classes.adoc#CollectionDomainEvent[`CollectionDomainEvent`]
 
 The main purpose of the class is to define the protocol by which subscribers can influence an interaction (eg hide a
 collection, disable a property, validate action arguments).  It class also provides a simple mechanism to allow
diff --git a/core/applib/_adoc/modules/cms/pages/classes/domainevent/ActionDomainEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/domainevent/ActionDomainEvent.adoc
index 7738c2b..8d81ddb 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/domainevent/ActionDomainEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/domainevent/ActionDomainEvent.adoc
@@ -5,14 +5,14 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-Subclass of xref:applib:cms:classes.adoc#AbstractDomainEvent[`AbstractDomainEvent`] for actions.
+Subclass of xref:rg:cms:classes.adoc#AbstractDomainEvent[`AbstractDomainEvent`] for actions.
 
 The class has a number of responsibilities (in addition to those it inherits):
 
 * capture the target object being interacted with
 * capture the arguments for each of the action's parameters
 * provide selected metadata about the action parameters from the metamodel (names, types)
-* link back to the xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service's `Command` object
+* link back to the xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service's `Command` object
 
 The class itself is instantiated automatically by the framework whenever interacting with a rendered object's action.
 
@@ -41,12 +41,12 @@ public abstract class ActionDomainEvent<S> extends AbstractDomainEvent<S> {
     public void setReturnValue();                                         // <7>
 }
 ----
-<1> The `Default` nested static class is the default for the xref:applib:ant:Action.adoc#domainEvent[`@Action#domainEvent()`]
+<1> The `Default` nested static class is the default for the xref:rg:ant:Action.adoc#domainEvent[`@Action#domainEvent()`]
 annotation attribute.
 Whether this raises an event or not depends upon the `isis.reflector.facet.actionAnnotation.domainEvent.postForDefault` configuration property.
 <2> The `Noop` class is provided as a convenience to indicate that an event should _not_ be posted (irrespective of the configuration property setting).
 <3> Similarly, the `Doop` class is provided as a convenience to indicate that an event _should_ be raised (irrespective of the configuration property setting).
-<4> Deprecated, use xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] or (better)  xref:applib:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`]instead.
+<4> Deprecated, use xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] or (better)  xref:rg:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`]instead.
 <5> The arguments being used to invoke the action; populated during validate phase and subsequent phases.
 <6> The value returned by the action; populated only in the executed phase.
 <7> Allows the subscriber to effectively change the value returned by the action; may only be called in the executed phase.
diff --git a/core/applib/_adoc/modules/cms/pages/classes/domainevent/CollectionDomainEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/domainevent/CollectionDomainEvent.adoc
index eb06164..b5e4310 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/domainevent/CollectionDomainEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/domainevent/CollectionDomainEvent.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-Subclass of xref:applib:cms:classes.adoc#AbstractDomainEvent[`AbstractDomainEvent`] for collections.
+Subclass of xref:rg:cms:classes.adoc#AbstractDomainEvent[`AbstractDomainEvent`] for collections.
 
 The class has a couple of responsibilities (in addition to those it inherits):
 
@@ -38,7 +38,7 @@ public abstract class CollectionDomainEvent<S,T> extends AbstractDomainEvent<S>
     public Of getOf();                                          // <5>
 }
 ----
-<1> The `Default` nested static class is the default for the xref:applib:ant:Collection.adoc#domainEvent[`@Collection#domainEvent()`] annotation attribute.
+<1> The `Default` nested static class is the default for the xref:rg:ant:Collection.adoc#domainEvent[`@Collection#domainEvent()`] annotation attribute.
 Whether this raises an event or not depends upon the
 `isis.reflector.facet.collectionAnnotation.domainEvent.postForDefault` configuration property.
 <2> The `Noop` class is provided as a convenience to indicate that an event should _not_ be posted (irrespective of the configuration property setting).
diff --git a/core/applib/_adoc/modules/cms/pages/classes/domainevent/PropertyDomainEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/domainevent/PropertyDomainEvent.adoc
index 3c19abe..ad0c349 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/domainevent/PropertyDomainEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/domainevent/PropertyDomainEvent.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-Subclass of xref:applib:cms:classes.adoc#AbstractDomainEvent[`AbstractDomainEvent`] for properties.
+Subclass of xref:rg:cms:classes.adoc#AbstractDomainEvent[`AbstractDomainEvent`] for properties.
 
 The class has a couple of responsibilities (in addition to those it inherits):
 
@@ -36,7 +36,7 @@ public abstract class PropertyDomainEvent<S,T> extends AbstractDomainEvent<S> {
     public T getNewValue();                                     // <5>
 }
 ----
-<1> The `Default` nested static class is the default for the xref:applib:ant:Property.adoc#domainEvent[`@Property#domainEvent()`] annotation attribute.
+<1> The `Default` nested static class is the default for the xref:rg:ant:Property.adoc#domainEvent[`@Property#domainEvent()`] annotation attribute.
 Whether this raises an event or not depends upon the
 `isis.reflector.facet.propertyAnnotation.domainEvent.postForDefault` configuration property.
 <2> The `Noop` class is provided as a convenience to indicate that an event should _not_ be posted (irrespective of the configuration property setting).
diff --git a/core/applib/_adoc/modules/cms/pages/classes/layout.adoc b/core/applib/_adoc/modules/cms/pages/classes/layout.adoc
index b7e2fab..391611e 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/layout.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/layout.adoc
@@ -16,10 +16,10 @@ The framework provides an implementation of the grid classes modelled closely on
 In principle it is also possible to extend the layout architecture for other grid systems.
 The component classes, though, are intended to be reusable across all grid systems.
 
-The component classes, meanwhile, are broadly equivalent to the "layout" annotations (xref:applib:ant:PropertyLayout.adoc[`@PropertyLayout`], xref:applib:ant:CollectionLayout.adoc[`@CollectionLayout`], xref:applib:ant:ActionLayout.adoc[`@ActionLayout`] and xref:applib:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`]
+The component classes, meanwhile, are broadly equivalent to the "layout" annotations (xref:rg:ant:PropertyLayout.adoc[`@PropertyLayout`], xref:rg:ant:CollectionLayout.adoc[`@CollectionLayout`], xref:rg:ant:ActionLayout.adoc[`@ActionLayout`] and xref:rg:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`]
 
 All of the classes in this package are JAXB-annotated, meaning that they can be serialized to/from XML (the `component` classes in the `http://isis.apache.org/applib/layout/component` XSD namespace, the bootstrap 3 grid classes in the `http://isis.apache.org/applib/layout/grid/bootstrap3` XSD namespace).
-This ability to serialize to/from XML is used by the xref:applib:svc:presentation-layer-spi/GridLoaderService.adoc[`GridLoaderService`], the default implementation of which reads the grid layout for a domain class from a `.layout.xml` file on the classpath.
+This ability to serialize to/from XML is used by the xref:rg:svc:presentation-layer-spi/GridLoaderService.adoc[`GridLoaderService`], the default implementation of which reads the grid layout for a domain class from a `.layout.xml` file on the classpath.
 It also allows the grid to be exposed through the REST API provided by the xref:vro:ROOT:about.adoc[Restful Objects viewer], as either XML or JSON.
 
 The various components (properties, collections, actions and domain object) also allow a link to be associated with each.
@@ -37,13 +37,13 @@ A fieldset (sometimes also called a property group or member group) of a number
 
 * layout data classes, which correspond to the similarly named annotations:
 
-** `PropertyLayoutData`, corresponding to the xref:applib:ant:PropertyLayout.adoc[`@PropertyLayout`] annotation;
+** `PropertyLayoutData`, corresponding to the xref:rg:ant:PropertyLayout.adoc[`@PropertyLayout`] annotation;
 
-** `CollectionLayoutData`, corresponding to the xref:applib:ant:CollectionLayout.adoc[`@CollectionLayout`] annotation;
+** `CollectionLayoutData`, corresponding to the xref:rg:ant:CollectionLayout.adoc[`@CollectionLayout`] annotation;
 
-** `ActionLayoutData`, corresponding to the xref:applib:ant:ActionLayout.adoc[`@ActionLayout`] annotation;
+** `ActionLayoutData`, corresponding to the xref:rg:ant:ActionLayout.adoc[`@ActionLayout`] annotation;
 
-** `DomainObjectLayoutData`, corresponding to the xref:applib:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`] annotation.
+** `DomainObjectLayoutData`, corresponding to the xref:rg:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`] annotation.
 
 In addition, the component package includes `Grid`, representing the top level container for a custom layout for a domain object.
 `Grid` itself is merely an interface, but it also defines the visitor pattern to make it easy for validate and normalize the grid layouts.
diff --git a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent.adoc b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent.adoc
index e0affd4..5ceb9d2 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent.adoc
@@ -21,7 +21,7 @@ Impl'n (g: a:)
 |Notes
 
 
-|xref:applib:cms:classes.adoc#AbstractLifecycleEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#AbstractLifecycleEvent[`o.a.i.applib.` +
 `AbstractLifecycleEvent`]
 |``o.a.i.core`` +
 ``events.lifecycle`` +
@@ -30,18 +30,18 @@ Impl'n (g: a:)
 |Superclass of the other lifecycle events, listed below in this table.
 
 
-|xref:applib:cms:classes.adoc#ObjectCreatedDomainEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#ObjectCreatedDomainEvent[`o.a.i.applib.` +
 `ObjectCreatedEvent`]
 |``o.a.i.core`` +
 ``events.lifecycle`` +
 ``isis-core-applib``
 |(abstract class). +
 `ObjectCreatedEvent.Default` is the concrete implementation that is used.
-|Broadcast when an object is first instantiated using the xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService`]'s
+|Broadcast when an object is first instantiated using the xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService`]'s
 `#instantiate(...)` method.
 
 
-|xref:applib:cms:classes.adoc#ObjectLoadedDomainEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#ObjectLoadedDomainEvent[`o.a.i.applib.` +
 `ObjectLoadedEvent`]
 |``o.a.i.core`` +
 ``events.lifecycle`` +
@@ -51,40 +51,40 @@ Impl'n (g: a:)
 |Broadcast when an object is retrieved from the database.
 
 
-|xref:applib:cms:classes.adoc#ObjectPersistedDomainEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#ObjectPersistedDomainEvent[`o.a.i.applib.` +
 `ObjectPersistedEvent`]
 |``o.a.i.core`` +
 ``events.lifecycle`` +
 ``isis-core-applib``
 |(abstract class). +
 `ObjectPersistedEvent.Default` is the concrete implementation that is used.
-|Broadcast when an object is first saved (inserted) into the database using the xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s
+|Broadcast when an object is first saved (inserted) into the database using the xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s
 `#persist(...)` method.
 
 
-|xref:applib:cms:classes.adoc#ObjectPersistingDomainEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#ObjectPersistingDomainEvent[`o.a.i.applib.` +
 `ObjectPersistingEvent`]
 |``o.a.i.core`` +
 ``events.lifecycle`` +
 ``isis-core-applib``
 |(abstract class). +
 `ObjectPersistingEvent.Default` is the concrete implementation that is used.
-|Broadcast when an object is about to be saved (inserted) into the database using the xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s
+|Broadcast when an object is about to be saved (inserted) into the database using the xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s
 `#persist(...)` method.
 
 
-|xref:applib:cms:classes.adoc#ObjectRemovingDomainEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#ObjectRemovingDomainEvent[`o.a.i.applib.` +
 `ObjectRemovingEvent`]
 |``o.a.i.core`` +
 ``events.lifecycle`` +
 ``isis-core-applib``
 |(abstract class). +
 `ObjectRemovingEvent.Default` is the concrete implementation that is used.
-|Broadcast when an object is about to be deleted from the database using the xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s
+|Broadcast when an object is about to be deleted from the database using the xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s
 `#remove(...)` method.
 
 
-|xref:applib:cms:classes.adoc#ObjectUpdatedDomainEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#ObjectUpdatedDomainEvent[`o.a.i.applib.` +
 `ObjectUpdatedEvent`]
 |``o.a.i.core`` +
 ``events.lifecycle`` +
@@ -92,10 +92,10 @@ Impl'n (g: a:)
 |(abstract class). +
 `ObjectUpdatedEvent.Default` is the concrete implementation that is used.
 |Broadcast when an object has just been updated in the database.
-This is done either explicitly when the current transaction is flushed using the xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+This is done either explicitly when the current transaction is flushed using the xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
 
 
-|xref:applib:cms:classes.adoc#ObjectUpdatingDomainEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#ObjectUpdatingDomainEvent[`o.a.i.applib.` +
 `ObjectUpdatingEvent`]
 |``o.a.i.core`` +
 ``events.lifecycle`` +
@@ -103,7 +103,7 @@ This is done either explicitly when the current transaction is flushed using the
 |(abstract class). +
 `ObjectUpdatingEvent.Default` is the concrete implementation that is used.
 |Broadcast when an object is about to be updated in the database.
-This is done either explicitly when the current transaction is flushed using the xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+This is done either explicitly when the current transaction is flushed using the xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
 
 
 |===
diff --git a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/AbstractLifecycleEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/AbstractLifecycleEvent.adoc
index 16db744..a33bacb 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/AbstractLifecycleEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/AbstractLifecycleEvent.adoc
@@ -10,12 +10,12 @@ or deleting objects from the database.
 
 Its immediate subclasses are:
 
-* xref:applib:cms:classes.adoc#ObjectCreatedEvent[`ObjectCreatedEvent`]
-* xref:applib:cms:classes.adoc#ObjectLoadedEvent[`ObjectLoadedEvent`]
-* xref:applib:cms:classes.adoc#ObjectPersistedEvent[`ObjectPersistedEvent`]
-* xref:applib:cms:classes.adoc#ObjectPersistingEvent[`ObjectPersistingEvent`]
-* xref:applib:cms:classes.adoc#ObjectRemovingEvent[`ObjectRemovingEvent`]
-* xref:applib:cms:classes.adoc#ObjectUpdatedEvent[`ObjectUpdatedEvent`]
-* xref:applib:cms:classes.adoc#ObjectUpdatingEvent[`ObjectUpdatingEvent`]
+* xref:rg:cms:classes.adoc#ObjectCreatedEvent[`ObjectCreatedEvent`]
+* xref:rg:cms:classes.adoc#ObjectLoadedEvent[`ObjectLoadedEvent`]
+* xref:rg:cms:classes.adoc#ObjectPersistedEvent[`ObjectPersistedEvent`]
+* xref:rg:cms:classes.adoc#ObjectPersistingEvent[`ObjectPersistingEvent`]
+* xref:rg:cms:classes.adoc#ObjectRemovingEvent[`ObjectRemovingEvent`]
+* xref:rg:cms:classes.adoc#ObjectUpdatedEvent[`ObjectUpdatedEvent`]
+* xref:rg:cms:classes.adoc#ObjectUpdatingEvent[`ObjectUpdatingEvent`]
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectCreatedEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectCreatedEvent.adoc
index ddc0501..bb4bc62 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectCreatedEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectCreatedEvent.adoc
@@ -6,9 +6,9 @@ include::_attributes.adoc[]
 
 
 
-Subclass of xref:applib:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is first instantiated using the xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryServuce`]'s `#instantiate(...)` method.
+Subclass of xref:rg:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is first instantiated using the xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryServuce`]'s `#instantiate(...)` method.
 
-`ObjectCreatedEvent.Default` is the implementation that is used by default, but this can be overridden using xref:applib:ant:DomainObject.adoc#createdLifecycleEvent[`@DomainObject#createdLifecycleEvent()`].
+`ObjectCreatedEvent.Default` is the implementation that is used by default, but this can be overridden using xref:rg:ant:DomainObject.adoc#createdLifecycleEvent[`@DomainObject#createdLifecycleEvent()`].
 
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectLoadedEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectLoadedEvent.adoc
index f7fb54a..1f7cc32 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectLoadedEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectLoadedEvent.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 
-Subclass of xref:applib:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is retrieved from the database.
+Subclass of xref:rg:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is retrieved from the database.
 
 `ObjectLoadedEvent.Default` is the concrete implementation that is used.
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectPersistedEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectPersistedEvent.adoc
index 39fb0ea..fbf6c5b 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectPersistedEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectPersistedEvent.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-Subclass of xref:applib:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is first saved (inserted) into the database using the xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#persist(...)` method.
+Subclass of xref:rg:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is first saved (inserted) into the database using the xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#persist(...)` method.
 
 
-`ObjectPersistedEvent.Default` is the implementation that is used by default, but this can be overridden using xref:applib:ant:DomainObject.adoc#persistedLifecycleEvent[`@DomainObject#persistedLifecycleEvent()`].
+`ObjectPersistedEvent.Default` is the implementation that is used by default, but this can be overridden using xref:rg:ant:DomainObject.adoc#persistedLifecycleEvent[`@DomainObject#persistedLifecycleEvent()`].
diff --git a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectPersistingEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectPersistingEvent.adoc
index b333f15..db62147 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectPersistingEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectPersistingEvent.adoc
@@ -5,8 +5,8 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-Subclass of xref:applib:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is about to be saved (inserted) into the database using the xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#persist(...)` method.
+Subclass of xref:rg:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is about to be saved (inserted) into the database using the xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#persist(...)` method.
 
 
-`ObjectPersistingEvent.Default` is the implementation that is used by default, but this can be overridden using xref:applib:ant:DomainObject.adoc#persistingLifecycleEvent[`@DomainObject#persistingLifecycleEvent()`].
+`ObjectPersistingEvent.Default` is the implementation that is used by default, but this can be overridden using xref:rg:ant:DomainObject.adoc#persistingLifecycleEvent[`@DomainObject#persistingLifecycleEvent()`].
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectRemovingEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectRemovingEvent.adoc
index d8e8e29..3034b2e 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectRemovingEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectRemovingEvent.adoc
@@ -5,8 +5,8 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-Subclass of xref:applib:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is about to be deleted from the database using the xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#remove(...)` method.
+Subclass of xref:rg:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is about to be deleted from the database using the xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#remove(...)` method.
 
 
-`ObjectRemovingEvent.Default` is the implementation that is used by default, but this can be overridden using xref:applib:ant:DomainObject.adoc#removingLifecycleEvent[`@DomainObject#removingLifecycleEvent()`].
+`ObjectRemovingEvent.Default` is the implementation that is used by default, but this can be overridden using xref:rg:ant:DomainObject.adoc#removingLifecycleEvent[`@DomainObject#removingLifecycleEvent()`].
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectUpdatedEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectUpdatedEvent.adoc
index b0d45e1..bad0357 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectUpdatedEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectUpdatedEvent.adoc
@@ -6,8 +6,8 @@ include::_attributes.adoc[]
 
 
 
-Subclass of xref:applib:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object has just been updated in the database.
-This is done either explicitly when the current transaction is flushed using the xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+Subclass of xref:rg:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object has just been updated in the database.
+This is done either explicitly when the current transaction is flushed using the xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
 
-`ObjectUpdatedEvent.Default` is the implementation that is used by default, but this can be overridden using xref:applib:ant:DomainObject.adoc#updatedLifecycleEvent[`@DomainObject#updatedLifecycleEvent()`].
+`ObjectUpdatedEvent.Default` is the implementation that is used by default, but this can be overridden using xref:rg:ant:DomainObject.adoc#updatedLifecycleEvent[`@DomainObject#updatedLifecycleEvent()`].
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectUpdatingEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectUpdatingEvent.adoc
index 9d1ddda..bef48e0 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectUpdatingEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/lifecycleevent/ObjectUpdatingEvent.adoc
@@ -6,8 +6,8 @@ include::_attributes.adoc[]
 
 
 
-Subclass of xref:applib:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is about to be updated in the database.
-This is done either explicitly when the current transaction is flushed using the xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
+Subclass of xref:rg:cms:classes.adoc#AbstractLifecycleEvent[`AbstractLifecycleEvent`], broadcast when an object is about to be updated in the database.
+This is done either explicitly when the current transaction is flushed using the xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService`]'s `#flush(...)` method, else is done implicitly when the transaction commits at the end of the user request.
 
 
-`ObjectUpdatingEvent.Default` is the implementation that is used by default, but this can be overridden using xref:applib:ant:DomainObject.adoc#updatingLifecycleEvent[`@DomainObject#updatingLifecycleEvent()`].
\ No newline at end of file
+`ObjectUpdatingEvent.Default` is the implementation that is used by default, but this can be overridden using xref:rg:ant:DomainObject.adoc#updatingLifecycleEvent[`@DomainObject#updatingLifecycleEvent()`].
\ No newline at end of file
diff --git a/core/applib/_adoc/modules/cms/pages/classes/menubars.adoc b/core/applib/_adoc/modules/cms/pages/classes/menubars.adoc
index 5c503ad..6642203 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/menubars.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/menubars.adoc
@@ -7,14 +7,14 @@ include::_attributes.adoc[]
 The `org.apache.isis.applib.layout.menubars` package and subpackages define a number of interfaces classes that allow the layout of domain service actions to be organised across menu bars, menus and menu sections.
 
 The classes define a hierarchical structure of menu bars, menus and menu sections.
-Similar to the xref:applib:cms:classes/layout.adoc[object layout] classes, the concrete menu classes support bootstrap3; support for other layout systems is possible.
+Similar to the xref:rg:cms:classes/layout.adoc[object layout] classes, the concrete menu classes support bootstrap3; support for other layout systems is possible.
 
-The component class `ServiceActionLayoutData` defines action metadata, being broadly equivalent to the "layout" annotations for actions, ie xref:applib:ant:ActionLayout.adoc[`@ActionLayout`].
+The component class `ServiceActionLayoutData` defines action metadata, being broadly equivalent to the "layout" annotations for actions, ie xref:rg:ant:ActionLayout.adoc[`@ActionLayout`].
 This is similar to the `ActionLayoutData` component class used for object layouts, but also captures the identity of the "owning" domain service.
 Service actions are grouped into menu sections.
 
 All of the classes in this package are JAXB-annotated, meaning that they can be serialized to/from XML (in the `http://isis.apache.org/applib/layout/menubars/bootstrap3` XSD namespace).
-This ability to serialize to/from XML is used by the xref:applib:svc:presentation-layer-spi/MenuBarsLoaderService.adoc[`MenuBarsLoaderService`], the default implementation of which reads the grid layout for a domain class from a `.layout.xml` file on the classpath.
+This ability to serialize to/from XML is used by the xref:rg:svc:presentation-layer-spi/MenuBarsLoaderService.adoc[`MenuBarsLoaderService`], the default implementation of which reads the grid layout for a domain class from a `.layout.xml` file on the classpath.
 It also allows the menu bars to be exposed through the REST API provided by the xref:vro:ROOT:about.adoc[Restful Objects viewer], as either XML or JSON.
 
 The service action component also allows a link to be associated with it.
@@ -56,9 +56,9 @@ The service action class reside in the `org.apache.isis.applib.layout.component`
 * `ServiceActionLayoutData` class
 
 +
-which correspond to the xref:applib:ant:ActionLayout.adoc[`@ActionLayout`] annotation.
+which correspond to the xref:rg:ant:ActionLayout.adoc[`@ActionLayout`] annotation.
 
-This is similar to `ActionLayoutData` (of the xref:applib:cms:classes/layout.adoc[object layout] classes), however it also identifies the domain service to which it belongs.
+This is similar to `ActionLayoutData` (of the xref:rg:cms:classes/layout.adoc[object layout] classes), however it also identifies the domain service to which it belongs.
 (This isn't required for the object layouts because the owner in that case is implicit).
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/mixins/Dto.adoc b/core/applib/_adoc/modules/cms/pages/classes/mixins/Dto.adoc
index 59504ac..20bb109 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/mixins/Dto.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/mixins/Dto.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 
 The `Dto` role interface is intended to be implemented by JAXB-annotated view models, that is, annotated using
-xref:applib:ant:XmlRootElement.adoc[`@XmlRootElement`].
+xref:rg:ant:XmlRootElement.adoc[`@XmlRootElement`].
 It enables the ability to download the XML and XSD schema of those objects using two xref:ug:fun:building-blocks.adoc#mixins[mixins], `Dto_downloadXml` and `Dto_downloadXsd`.
 
 The interface is just a marker interface (with no members), and is defined as:
@@ -30,7 +30,7 @@ public class Dto_downloadXml {
 <1> provided as an action to any class that (trivially) implements the `Dto` interface
 <2> The action's name is derived from the class name.
 
-This will return the XML text wrapped up in a xref:applib:cms:classes.adoc#Clob[`Clob`].
+This will return the XML text wrapped up in a xref:rg:cms:classes.adoc#Clob[`Clob`].
 
 The `Dto_downloadXsd` mixin is similar:
 
@@ -45,12 +45,12 @@ public class Dto_downloadXsd {
 <1> provided as an action to any class that (trivially) implements the `Dto` interface
 <2> The action's name be derived from the class name.
 
-If the domain object's JAXB annotations reference only a single XSD schema then this will return that XML text as a xref:applib:cms:classes.adoc#Clob[`Clob`] of that XSD.
-If there are multiple XSD schemas referenced then the action will return a zip of those schemas, wrapped up in a xref:applib:cms:classes.adoc#Blob[`Blob`].
-The `IsisSchemas` parameter to the action can be used to optionally ignore the common xref:schema:ROOT:about.adoc[Apache Isis schemas] (useful if there is only one other XSD schema referenced by the DTO).
+If the domain object's JAXB annotations reference only a single XSD schema then this will return that XML text as a xref:rg:cms:classes.adoc#Clob[`Clob`] of that XSD.
+If there are multiple XSD schemas referenced then the action will return a zip of those schemas, wrapped up in a xref:rg:cms:classes.adoc#Blob[`Blob`].
+The `IsisSchemas` parameter to the action can be used to optionally ignore the common xref:rg:schema:about.adoc[Apache Isis schemas] (useful if there is only one other XSD schema referenced by the DTO).
 
 
 
 == Related Services
 
-The `Dto_downloadXml` and `Dto_downloadXsd` delegate to the xref:applib:svc:integration-api/JaxbService.adoc[`JaxbService`] to actually generate the XML/XSD.
\ No newline at end of file
+The `Dto_downloadXml` and `Dto_downloadXsd` delegate to the xref:rg:svc:integration-api/JaxbService.adoc[`JaxbService`] to actually generate the XML/XSD.
\ No newline at end of file
diff --git a/core/applib/_adoc/modules/cms/pages/classes/mixins/Object.adoc b/core/applib/_adoc/modules/cms/pages/classes/mixins/Object.adoc
index 445e805..c4f2053 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/mixins/Object.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/mixins/Object.adoc
@@ -9,7 +9,7 @@ The framework provides a single mixin that contributes to simply `java.lang.Obje
 It provides the ability to download the layout XML for any domain object (in practical terms: entities and view models).
 
 These mixin actions are all associated with the "Metadata" fieldset.
-A number of other xref:applib:cms:classes.adoc#Persistable[mixins] also contribute properties or actions to the "Metadata" fieldset.
+A number of other xref:rg:cms:classes.adoc#Persistable[mixins] also contribute properties or actions to the "Metadata" fieldset.
 
 
 
@@ -32,7 +32,7 @@ public void clearHints() {
 
 === Related Services
 
-This mixin uses the xref:applib:svc:presentation-layer-spi/HintStore.adoc[`HintStore`] service to store and retrieve UI hints for each rendered object, per user.
+This mixin uses the xref:rg:svc:presentation-layer-spi/HintStore.adoc[`HintStore`] service to store and retrieve UI hints for each rendered object, per user.
 
 
 
@@ -53,12 +53,12 @@ public Object downloadLayoutXml(
 <1> either current, complete, normalized or minimal.
 
 See the documentation on xref:vw:ROOT:layout/file-based.adoc[layout XML] and also
-the xref:applib:svc:metadata-api/LayoutService.adoc[`LayoutService`] for more information on these styles
+the xref:rg:svc:metadata-api/LayoutService.adoc[`LayoutService`] for more information on these styles
 
 
 === Related Services
 
-This mixin calls xref:applib:svc:metadata-api/LayoutService.adoc[`LayoutService`] to obtain the layout XML.
+This mixin calls xref:rg:svc:metadata-api/LayoutService.adoc[`LayoutService`] to obtain the layout XML.
 
 
 
@@ -78,7 +78,7 @@ public void rebuildMetamodel() {
 
 === Related Services
 
-This mixin calls xref:applib:svc:metadata-api/MetamodelService.adoc[`MetaModelService`] and the xref:applib:svc:presentation-layer-spi/GridService.adoc[`GridService`] to invalidate their caches.
+This mixin calls xref:rg:svc:metadata-api/MetamodelService.adoc[`MetaModelService`] and the xref:rg:svc:presentation-layer-spi/GridService.adoc[`GridService`] to invalidate their caches.
 
 
 
@@ -99,12 +99,12 @@ public Object downloadLayoutXml(
 <1> either current, complete, normalized or minimal.
 
 See the documentation on xref:vw:ROOT:layout/file-based.adoc[layout XML] and also
-the xref:applib:svc:metadata-api/LayoutService.adoc[`LayoutService`] for more information on these styles
+the xref:rg:svc:metadata-api/LayoutService.adoc[`LayoutService`] for more information on these styles
 
 
 === Related Services
 
-This mixin calls xref:applib:svc:metadata-api/LayoutService.adoc[`LayoutService`] to obtain the layout XML.
+This mixin calls xref:rg:svc:metadata-api/LayoutService.adoc[`LayoutService`] to obtain the layout XML.
 
 
 
@@ -121,7 +121,7 @@ public URL openRestApi() { /* ... */ }
 
 === Related Services
 
-This mixin calls xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`] to build the URL.
+This mixin calls xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`] to build the URL.
 
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/mixins/Persistable.adoc b/core/applib/_adoc/modules/cms/pages/classes/mixins/Persistable.adoc
index 4e441fa..92ca74c 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/mixins/Persistable.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/mixins/Persistable.adoc
@@ -9,7 +9,7 @@ All domain entities automatically implement the DataNucleus `Persistable` role i
 So as a developer you do not need to write any code to obtain the mixins that contribute to this interface.
 
 These mixin properties/actions are all associated with the "Metadata" fieldset.
-A number of other xref:applib:cms:classes.adoc#Object[mixins] also contribute properties or actions to the "Metadata" fieldset.
+A number of other xref:rg:cms:classes.adoc#Object[mixins] also contribute properties or actions to the "Metadata" fieldset.
 
 
 
@@ -26,13 +26,13 @@ public Clob downloadJdoMetadata(                    // <1>
     ...
 }
 ----
-<1> returns the XML text wrapped up in a xref:applib:cms:classes.adoc#Clob[`Clob`].
+<1> returns the XML text wrapped up in a xref:rg:cms:classes.adoc#Clob[`Clob`].
 
 
 
 === Related Services
 
-The mixin delegates to the xref:applib:svc:persistence-layer-api/IsisJdoSupport.adoc[`IsisJdoSupport`] service to obtain a reference to the JDO `PersistenceManagerFactory`.
+The mixin delegates to the xref:rg:svc:persistence-layer-api/IsisJdoSupport.adoc[`IsisJdoSupport`] service to obtain a reference to the JDO `PersistenceManagerFactory`.
 
 
 == `datanucleusXxx`
diff --git a/core/applib/_adoc/modules/cms/pages/classes/roles/HoldsUpdatedAt.adoc b/core/applib/_adoc/modules/cms/pages/classes/roles/HoldsUpdatedAt.adoc
index b010174..4dcabb3 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/roles/HoldsUpdatedAt.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/roles/HoldsUpdatedAt.adoc
@@ -16,9 +16,9 @@ public interface HoldsUpdatedAt {
 }
 ----
 
-The current time is obtained from the xref:applib:svc:core-domain-api/ClockService.adoc[`ClockService`].
+The current time is obtained from the xref:rg:svc:core-domain-api/ClockService.adoc[`ClockService`].
 
-Entities that implement this interface often also implement xref:applib:cms:classes.adoc#HoldsUpdatedBy[`HoldsUpdatedBy`] role interface; as a convenience the xref:applib:cms:classes.adoc#Timestampable[`Timestampable`] interface combines the two roles.
+Entities that implement this interface often also implement xref:rg:cms:classes.adoc#HoldsUpdatedBy[`HoldsUpdatedBy`] role interface; as a convenience the xref:rg:cms:classes.adoc#Timestampable[`Timestampable`] interface combines the two roles.
 
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/roles/HoldsUpdatedBy.adoc b/core/applib/_adoc/modules/cms/pages/classes/roles/HoldsUpdatedBy.adoc
index 34a5eb2..aeb8301 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/roles/HoldsUpdatedBy.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/roles/HoldsUpdatedBy.adoc
@@ -16,6 +16,6 @@ public interface HoldsUpdatedBy {
 }
 ----
 
-Entities that implement this interface often also implement xref:applib:cms:classes.adoc#HoldsUpdatedAt[`HoldsUpdatedAt`] role interface; as a convenience the xref:applib:cms:classes.adoc#Timestampable[`Timestampable`] interface combines the two roles.
+Entities that implement this interface often also implement xref:rg:cms:classes.adoc#HoldsUpdatedAt[`HoldsUpdatedAt`] role interface; as a convenience the xref:rg:cms:classes.adoc#Timestampable[`Timestampable`] interface combines the two roles.
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/roles/Timestampable.adoc b/core/applib/_adoc/modules/cms/pages/classes/roles/Timestampable.adoc
index c2e2ee8..9bab86c 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/roles/Timestampable.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/roles/Timestampable.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-The `Timestampable` role interface is a convenience that combines the xref:applib:cms:classes.adoc#HoldsUpdatedAt[`HoldsUpdatedAt`] and xref:applib:cms:classes.adoc#HoldsUpdatedBy[`HoldsUpdatedBy`] interfaces.
+The `Timestampable` role interface is a convenience that combines the xref:rg:cms:classes.adoc#HoldsUpdatedAt[`HoldsUpdatedAt`] and xref:rg:cms:classes.adoc#HoldsUpdatedBy[`HoldsUpdatedBy`] interfaces.
 It is defined as:
 
 [source,java]
@@ -23,4 +23,4 @@ The interface no additional methods of its own.
 
 An alternative way to maintain a timestamp is to use JDO's `@Version` annotation.
 With this approach, it is the JDO/DataNucleus that maintains the version, rather than the framework's `TimestampService`.
-See xref:applib:cms:classes.adoc#HoldsUpdatedBy[`HoldsUpdatedBy`] for further details.
+See xref:rg:cms:classes.adoc#HoldsUpdatedBy[`HoldsUpdatedBy`] for further details.
diff --git a/core/applib/_adoc/modules/cms/pages/classes/spec.adoc b/core/applib/_adoc/modules/cms/pages/classes/spec.adoc
index 74d666a..92ff6ad 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/spec.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/spec.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 The interfaces and classes listed in this chapter provide support for the  `Specification` pattern, as described in Eric Evans' book _Domain Driven Design_, p224.
 
-Apache Isis will automatically apply such specifications as validation rules on properties (as per xref:applib:ant:Property.adoc#mustSatisfy[`@Property#mustSatisfy()`]) and on action parameters (as per xref:applib:ant:Parameter.adoc#mustSatisfy[`@Parameter#mustSatisfy()`]).
+Apache Isis will automatically apply such specifications as validation rules on properties (as per xref:rg:ant:Property.adoc#mustSatisfy[`@Property#mustSatisfy()`]) and on action parameters (as per xref:rg:ant:Parameter.adoc#mustSatisfy[`@Parameter#mustSatisfy()`]).
 
 
 
@@ -50,7 +50,7 @@ public class Customer {
 == `Specification2`
 
 The `Specification2` interface extends the `Specification` API to add support for i18n.
-This is done by defining an additional method that returns a xref:applib:cms:classes.adoc#TranslatableString[translatable string]:
+This is done by defining an additional method that returns a xref:rg:cms:classes.adoc#TranslatableString[translatable string]:
 
 [source,java]
 ----
diff --git a/core/applib/_adoc/modules/cms/pages/classes/super.adoc b/core/applib/_adoc/modules/cms/pages/classes/super.adoc
index 52af0ef..69ca598 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/super.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/super.adoc
@@ -19,7 +19,7 @@ Impl'n (g: a:)
 |Notes
 
 
-|xref:applib:cms:classes.adoc#AbstractService[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#AbstractService[`o.a.i.applib.` +
 `AbstractService`]
 |``o.a.i.core`` +
 ``isis-core-applib``
@@ -27,7 +27,7 @@ Impl'n (g: a:)
 |
 
 
-|xref:applib:cms:classes.adoc#AbstractSubscriber[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#AbstractSubscriber[`o.a.i.applib.` +
 `AbstractSubscriber`]
 |``o.a.i.core`` +
 ``isis-core-applib``
@@ -35,7 +35,7 @@ Impl'n (g: a:)
 |
 
 
-|xref:applib:cms:classes.adoc#AbstractViewModel[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#AbstractViewModel[`o.a.i.applib.` +
 `AbstractViewModel`]
 |``o.a.i.core`` +
 ``isis-core-applib``
@@ -43,7 +43,7 @@ Impl'n (g: a:)
 |
 
 
-|xref:applib:cms:classes.adoc#FixtureScript[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#FixtureScript[`o.a.i.applib.` +
 `fixturescript` +
 `FixtureScript`]
 |``o.a.i.core`` +
@@ -52,13 +52,13 @@ Impl'n (g: a:)
 |
 
 
-|xref:applib:cms:classes.adoc#FixtureScripts[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#FixtureScripts[`o.a.i.applib.` +
 `fixturescripts` +
 `FixtureScripts`]
 |``o.a.i.core`` +
 ``isis-core-applib``
 |(abstract class). +
-`FixtureScriptsDefault` is a default implementation that is used when the alternative xref:applib:svc:testing/FixtureScriptsSpecificationProvider.adoc[`FixtureScriptsSpecificationProvider`] is provided
+`FixtureScriptsDefault` is a default implementation that is used when the alternative xref:rg:svc:testing/FixtureScriptsSpecificationProvider.adoc[`FixtureScriptsSpecificationProvider`] is provided
   (and no other implementation of `FixtureScripts` was found).
 |depends on: +
 `ClassDiscoveryService`
diff --git a/core/applib/_adoc/modules/cms/pages/classes/super/AbstractService.adoc b/core/applib/_adoc/modules/cms/pages/classes/super/AbstractService.adoc
index c6305cf..1f13db4 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/super/AbstractService.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/super/AbstractService.adoc
@@ -7,4 +7,4 @@ include::_attributes.adoc[]
 This class provides an implementation of the optional `getId()` method for domain services, based upon the classes name.
 
 In practice there is little to gain from subclassing.
-Instead annotate with xref:applib:ant:DomainService.adoc[`@DomainService`] and specify its xref:applib:ant:DomainService.adoc#objectType[`#objectType()`]
+Instead annotate with xref:rg:ant:DomainService.adoc[`@DomainService`] and specify its xref:rg:ant:DomainService.adoc#objectType[`#objectType()`]
diff --git a/core/applib/_adoc/modules/cms/pages/classes/super/AbstractSubscriber.adoc b/core/applib/_adoc/modules/cms/pages/classes/super/AbstractSubscriber.adoc
index 0fdb85a..35dbf66 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/super/AbstractSubscriber.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/super/AbstractSubscriber.adoc
@@ -5,11 +5,11 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-This is a convenience superclass for creating subscriber domain services on the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`].
-It uses xref:applib:ant:PostConstruct.adoc[`@PostConstruct`] and xref:applib:ant:PreDestroy.adoc[`@PreDestroy`] callbacks to automatically register/unregister itself with the `EventBusService`.
+This is a convenience superclass for creating subscriber domain services on the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`].
+It uses xref:rg:ant:PostConstruct.adoc[`@PostConstruct`] and xref:rg:ant:PreDestroy.adoc[`@PreDestroy`] callbacks to automatically register/unregister itself with the `EventBusService`.
 
-It's important that subscribers register before any domain services that might emit events on the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`].
-For example, the xref:ext-secman:ROOT:about.adoc[SecMan extension] provides a domain service that automatically seeds certain domain entities; these will generate xref:applib:cms:classes/lifecycleevent.adoc[lifecycle events] and so any subscribers must be registered before such seed services.
-The easiest way to do this is to use the xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] attribute.
+It's important that subscribers register before any domain services that might emit events on the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`].
+For example, the xref:ext-secman:ROOT:about.adoc[SecMan extension] provides a domain service that automatically seeds certain domain entities; these will generate xref:rg:cms:classes/lifecycleevent.adoc[lifecycle events] and so any subscribers must be registered before such seed services.
+The easiest way to do this is to use the xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] attribute.
 
 As a convenience, the `AbstractSubscriber` specifies this attribute.
\ No newline at end of file
diff --git a/core/applib/_adoc/modules/cms/pages/classes/super/AbstractViewModel.adoc b/core/applib/_adoc/modules/cms/pages/classes/super/AbstractViewModel.adoc
index c17e319..6ce091c 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/super/AbstractViewModel.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/super/AbstractViewModel.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-This class simply implements the xref:applib:cms:classes.adoc#ViewModel[`ViewModel`] interface, however the methods are still abstract.
+This class simply implements the xref:rg:cms:classes.adoc#ViewModel[`ViewModel`] interface, however the methods are still abstract.
 In and of itself it provides no new behaviour.
 
 [TIP]
diff --git a/core/applib/_adoc/modules/cms/pages/classes/super/FixtureScripts.adoc b/core/applib/_adoc/modules/cms/pages/classes/super/FixtureScripts.adoc
index aa545fb..a59e819 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/super/FixtureScripts.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/super/FixtureScripts.adoc
@@ -4,8 +4,8 @@
 include::_attributes.adoc[]
 :page-partial:
 
-This abstract class constitutes the API of a domain service to execute xref:applib:cms:classes.adoc#FixtureScript[`FixtureScript`]s.
+This abstract class constitutes the API of a domain service to execute xref:rg:cms:classes.adoc#FixtureScript[`FixtureScript`]s.
 
-For more information, see xref:applib:svc:testing/FixtureScripts.adoc[`FixtureScripts`] in the domain services guide.
+For more information, see xref:rg:svc:testing/FixtureScripts.adoc[`FixtureScripts`] in the domain services guide.
 
 See the see the xref:ext-fixtures:ROOT:about.adoc[testing guide] for further discussion on the use of fixture scripts, in particular xref:ext-fixtures:ROOT:about.adoc#api-and-usage[fixture scripts' API and usage].
diff --git a/core/applib/_adoc/modules/cms/pages/classes/uievent.adoc b/core/applib/_adoc/modules/cms/pages/classes/uievent.adoc
index 185cec7..9a50c66 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/uievent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/uievent.adoc
@@ -6,8 +6,8 @@ include::_attributes.adoc[]
 
 This section catalogues the various UI event classes defined by Apache Isis.
 
-These events are broadcast on the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`].  The domain
-events are broadcast as a result of being specified in the xref:applib:ant:DomainObjectLayout.adoc#titleUiEvent[`@DomainObjectLayout#titleUiEvent()`],  xref:applib:ant:DomainObjectLayout.adoc#iconUiEvent[`@DomainObjectLayout#iconUiEvent()`] or xref:applib:ant:DomainObjectLayout.adoc#cssClassUiEvent[`@DomainObjectLayout#cssClassUiEvent()`] attributes.
+These events are broadcast on the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`].  The domain
+events are broadcast as a result of being specified in the xref:rg:ant:DomainObjectLayout.adoc#titleUiEvent[`@DomainObjectLayout#titleUiEvent()`],  xref:rg:ant:DomainObjectLayout.adoc#iconUiEvent[`@DomainObjectLayout#iconUiEvent()`] or xref:rg:ant:DomainObjectLayout.adoc#cssClassUiEvent[`@DomainObjectLayout#cssClassUiEvent()`] attributes.
 
 They are listed in the table below.
 
@@ -22,32 +22,32 @@ Impl'n (g: a:)
 |Notes
 
 
-|xref:applib:cms:classes.adoc#TitleUiEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#TitleUiEvent[`o.a.i.applib.` +
 `TitleUiEvent`]
 |``o.a.i.core`` +
 ``events.ui`` +
 ``isis-core-applib``
 |(abstract class). +
 `TitleUiEvent.Default` is the concrete implementation used if no `@DomainObjectLayout#titleUiEvent` attribute is specified
-|Broadcast whenever there is a requirement to obtain a title for a domain object.  Note that if the domain object defines its own xref:applib:cms:methods.adoc#title[`title()`] supporting method, or has xref:applib:ant:Title.adoc[`@Title`] annotation(s) on its properties, then these will take precedence.
+|Broadcast whenever there is a requirement to obtain a title for a domain object.  Note that if the domain object defines its own xref:rg:cms:methods.adoc#title[`title()`] supporting method, or has xref:rg:ant:Title.adoc[`@Title`] annotation(s) on its properties, then these will take precedence.
 
-|xref:applib:cms:classes.adoc#IconUiEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#IconUiEvent[`o.a.i.applib.` +
 `IconUiEvent`]
 |``o.a.i.core`` +
 ``events.ui`` +
 ``isis-core-applib``
 |(abstract class). +
 `IconUiEvent.Default` is the concrete implementation used if no `@DomainObjectLayout#iconUiEvent` attribute is specified
-|Broadcast whenever there is a requirement to obtain an icon (or rather, the name of an icon) for a domain object.  Note that if the domain object defines its own xref:applib:cms:methods.adoc#iconName[`iconName()`] supporting method, or if it has the xref:applib:ant:DomainObjectLayout#cssClassFa.adoc[`@DomainObjectLayout#cssClassFa()`] attribute, then these will take precedence.
+|Broadcast whenever there is a requirement to obtain an icon (or rather, the name of an icon) for a domain object.  Note that if the domain object defines its own xref:rg:cms:methods.adoc#iconName[`iconName()`] supporting method, or if it has the xref:rg:ant:DomainObjectLayout#cssClassFa.adoc[`@DomainObjectLayout#cssClassFa()`] attribute, then these will take precedence.
 
-|xref:applib:cms:classes.adoc#CssClassUiEvent[`o.a.i.applib.` +
+|xref:rg:cms:classes.adoc#CssClassUiEvent[`o.a.i.applib.` +
 `CssClassUiEvent`]
 |``o.a.i.core`` +
 ``events.ui`` +
 ``isis-core-applib``
 |(abstract class). +
 `CssClassUiEvent.Default` is the concrete implementation used if no `@DomainObjectLayout#cssClassUiEvent` attribute is specified
-|Broadcast whenever there is a requirement to obtain a CSS class hint for a domain object.  Note that if the domain object defines its own xref:applib:cms:methods.adoc#cssClass[`cssClass()`] supporting method then this
+|Broadcast whenever there is a requirement to obtain a CSS class hint for a domain object.  Note that if the domain object defines its own xref:rg:cms:methods.adoc#cssClass[`cssClass()`] supporting method then this
 will take precedence.
 
 |===
diff --git a/core/applib/_adoc/modules/cms/pages/classes/uievent/CssClassUiEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/uievent/CssClassUiEvent.adoc
index 318c260..978a4f9 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/uievent/CssClassUiEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/uievent/CssClassUiEvent.adoc
@@ -17,6 +17,6 @@ The class itself is instantiated automatically by the framework whenever interac
 
 [NOTE]
 ====
-if the domain object defines its own xref:applib:cms:methods.adoc#cssClass[`cssClass()`] supporting
+if the domain object defines its own xref:rg:cms:methods.adoc#cssClass[`cssClass()`] supporting
 method then this will take precedence.
 ====
diff --git a/core/applib/_adoc/modules/cms/pages/classes/uievent/IconUiEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/uievent/IconUiEvent.adoc
index ff433e8..69064b2 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/uievent/IconUiEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/uievent/IconUiEvent.adoc
@@ -16,8 +16,8 @@ The class itself is instantiated automatically by the framework whenever interac
 
 [NOTE]
 ====
-If the domain object defines its own xref:applib:cms:methods.adoc#iconName[`iconName()`] supporting method,
+If the domain object defines its own xref:rg:cms:methods.adoc#iconName[`iconName()`] supporting method,
 or if it has the
-xref:applib:ant:DomainObjectLayout#cssClassFa.adoc[`@DomainObjectLayout#cssClassFa()`] attribute, then
+xref:rg:ant:DomainObjectLayout#cssClassFa.adoc[`@DomainObjectLayout#cssClassFa()`] attribute, then
 these will take precedence.
 ====
diff --git a/core/applib/_adoc/modules/cms/pages/classes/uievent/TitleUiEvent.adoc b/core/applib/_adoc/modules/cms/pages/classes/uievent/TitleUiEvent.adoc
index e0fa12e..1e561e5 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/uievent/TitleUiEvent.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/uievent/TitleUiEvent.adoc
@@ -16,7 +16,7 @@ The class itself is instantiated automatically by the framework whenever interac
 
 [NOTE]
 ====
-If the domain object defines its own xref:applib:cms:methods.adoc#title[`title()`] supporting method, or
-has xref:applib:ant:Title.adoc[`@Title`] annotation(s) on its properties, then these will take
+If the domain object defines its own xref:rg:cms:methods.adoc#title[`title()`] supporting method, or
+has xref:rg:ant:Title.adoc[`@Title`] annotation(s) on its properties, then these will take
 precedence.
 ====
diff --git a/core/applib/_adoc/modules/cms/pages/classes/utility/TitleBuffer.adoc b/core/applib/_adoc/modules/cms/pages/classes/utility/TitleBuffer.adoc
index f736560..80d77c4 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/utility/TitleBuffer.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/utility/TitleBuffer.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-The `TitleBuffer` utility class is intended to make it easy to construct title strings (returned from the xref:applib:cms:methods.adoc#title[`title()`] method).
+The `TitleBuffer` utility class is intended to make it easy to construct title strings (returned from the xref:rg:cms:methods.adoc#title[`title()`] method).
 
 For example, it has overloaded versions of methods called `append()` and `concat()`.
 
diff --git a/core/applib/_adoc/modules/cms/pages/classes/value-types/Blob.adoc b/core/applib/_adoc/modules/cms/pages/classes/value-types/Blob.adoc
index 4bc5a1a..f19d003 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/value-types/Blob.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/value-types/Blob.adoc
@@ -45,5 +45,5 @@ private Blob someImage;
 
 [TIP]
 ====
-For character large objects, use xref:applib:cms:classes.adoc#Clob[`Clob`] value type.
+For character large objects, use xref:rg:cms:classes.adoc#Clob[`Clob`] value type.
 ====
diff --git a/core/applib/_adoc/modules/cms/pages/classes/value-types/Clob.adoc b/core/applib/_adoc/modules/cms/pages/classes/value-types/Clob.adoc
index 475ed66..963114f 100644
--- a/core/applib/_adoc/modules/cms/pages/classes/value-types/Clob.adoc
+++ b/core/applib/_adoc/modules/cms/pages/classes/value-types/Clob.adoc
@@ -49,7 +49,7 @@ private Clob someClob;
 
 [TIP]
 ====
-For binary large objects, use xref:applib:cms:classes.adoc#Blob[`Blob`] value type.
+For binary large objects, use xref:rg:cms:classes.adoc#Blob[`Blob`] value type.
 ====
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods.adoc b/core/applib/_adoc/modules/cms/pages/methods.adoc
index 4f532f5..b6d5bd8 100644
--- a/core/applib/_adoc/modules/cms/pages/methods.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods.adoc
@@ -4,7 +4,7 @@ include::_attributes.adoc[]
 
 
 
-The Apache Isis metamodel is built up from declaratively (ie, xref:applib:ant:about.adoc[annotations]) and imperatively, from "supporting" methods and other reserved methods.
+The Apache Isis metamodel is built up from declaratively (ie, xref:rg:ant:about.adoc[annotations]) and imperatively, from "supporting" methods and other reserved methods.
 
 This chapter documents the supporting methods and the reserved methods.  It also documents (separately) the reserved methods that act as callback hooks into the persistence lifecycle of domain entities.
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/lifecycle.adoc b/core/applib/_adoc/modules/cms/pages/methods/lifecycle.adoc
index 8768dbb..30eb6d2 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/lifecycle.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/lifecycle.adoc
@@ -11,7 +11,7 @@ For example, the entity is notified immediately prior to being persisted, or whe
 [WARNING]
 ====
 Note that these callbacks are fired by Apache Isis rather than JDO.
-In the future we may deprecate them because there are better mechanisms available using a subscriber for the xref:applib:cms:classes/lifecycleevent.adoc[lifecycle event]s.
+In the future we may deprecate them because there are better mechanisms available using a subscriber for the xref:rg:cms:classes/lifecycleevent.adoc[lifecycle event]s.
 ====
 
 The lifecycle callback methods supported by Apache Isis are:
@@ -23,28 +23,28 @@ The lifecycle callback methods supported by Apache Isis are:
 |Method
 |Description
 
-|xref:applib:cms:methods.adoc#created[`created()`]
-|called when an object has just been created using xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(..)`] or xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService#instantiate(...)`]
+|xref:rg:cms:methods.adoc#created[`created()`]
+|called when an object has just been created using xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(..)`] or xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService#instantiate(...)`]
 
-|xref:applib:cms:methods.adoc#loaded[`loaded()`]
+|xref:rg:cms:methods.adoc#loaded[`loaded()`]
 |called when a (persistent) object has just been loaded from the object store.
 
-|xref:applib:cms:methods.adoc#persisted[`persisted()`]
+|xref:rg:cms:methods.adoc#persisted[`persisted()`]
 |called when object has just been persisted from the object store.
 
-|xref:applib:cms:methods.adoc#persisting[`persisting()`]
+|xref:rg:cms:methods.adoc#persisting[`persisting()`]
 |called when a (not-yet-persistent) object is just about to be persisted from the object store
 
-|xref:applib:cms:methods.adoc#removed[`removed()`]
+|xref:rg:cms:methods.adoc#removed[`removed()`]
 |called when a (persistent) object has just been deleted from the object store
 
-|xref:applib:cms:methods.adoc#removing[`removing()`]
+|xref:rg:cms:methods.adoc#removing[`removing()`]
 |called when a (persistent) object is just about to be deleted from the object store
 
-|xref:applib:cms:methods.adoc#updated[`updated()`]
+|xref:rg:cms:methods.adoc#updated[`updated()`]
 |called when a (persistent) object has just been updated in the object store
 
-|xref:applib:cms:methods.adoc#updating[`updating()`]
+|xref:rg:cms:methods.adoc#updating[`updating()`]
 |called when a (persistent) object is just about to be updated in the object store
 
 |===
diff --git a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/created.adoc b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/created.adoc
index 9de6444..0a1203b 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/created.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/created.adoc
@@ -4,12 +4,12 @@
 include::_attributes.adoc[]
 
 
-The `created()` lifecycle callback method is called when an object has just been created using xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService#instantiate(...)`] or xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(...)`]
+The `created()` lifecycle callback method is called when an object has just been created using xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService#instantiate(...)`] or xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(...)`]
 
 
 [TIP]
 ====
-Alternatively, consider using a xref:applib:svc:core-domain-api/EventBusService.adoc[event bus] xref:applib:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:applib:cms:classes.adoc#ObjectCreatedEvent[`ObjectCreatedEvent`].
+Alternatively, consider using a xref:rg:svc:core-domain-api/EventBusService.adoc[event bus] xref:rg:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:rg:cms:classes.adoc#ObjectCreatedEvent[`ObjectCreatedEvent`].
 ====
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/jdo-api.adoc b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/jdo-api.adoc
index 8cd1f66..109ad75 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/jdo-api.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/jdo-api.adoc
@@ -12,7 +12,7 @@ As an alternative to relying on Apache Isis to call lifecycle callback methods,
 We may decide to deprecate the Apache Isis callbacks in the future because they merely duplicate this functionality already available in JDO.
 ====
 
-You can gain access to the relevant JDO API using the xref:applib:svc:persistence-layer-api/IsisJdoSupport.adoc[`IsisJdoSupport`] domain service.
+You can gain access to the relevant JDO API using the xref:rg:svc:persistence-layer-api/IsisJdoSupport.adoc[`IsisJdoSupport`] domain service.
 
 For example:
 
@@ -45,7 +45,7 @@ public class ObjectChangedListenerService
 ----
 <1> must be `@RequestScoped` because we register on the `PersistenceManager`, which is different for each request.
 <2> implement whichever callback lifecycle listeners are of interest
-<3> use the injected xref:applib:svc:persistence-layer-api/IsisJdoSupport.adoc[`IsisJdoSupport`] service to obtain the `PersistenceManager`.
+<3> use the injected xref:rg:svc:persistence-layer-api/IsisJdoSupport.adoc[`IsisJdoSupport`] service to obtain the `PersistenceManager`.
 
 Note that it isn't possible to register on the `PersistenceManagerFactory` because listeners cannot be attached once a persistence session has been created (which it will have been when the service's `@PostConstruct` method is called).
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/loaded.adoc b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/loaded.adoc
index 0400e6e..ccd992c 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/loaded.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/loaded.adoc
@@ -10,5 +10,5 @@ The `loaded()` lifecycle callback method is called when a (persistent) object ha
 
 [TIP]
 ====
-Alternatively, consider using a xref:applib:svc:core-domain-api/EventBusService.adoc[event bus] xref:applib:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:applib:cms:classes.adoc#ObjectLoadedEvent[`ObjectLoadedEvent`].
+Alternatively, consider using a xref:rg:svc:core-domain-api/EventBusService.adoc[event bus] xref:rg:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:rg:cms:classes.adoc#ObjectLoadedEvent[`ObjectLoadedEvent`].
 ====
diff --git a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/persisted.adoc b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/persisted.adoc
index 083a93f..f5a85a7 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/persisted.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/persisted.adoc
@@ -7,9 +7,9 @@ include::_attributes.adoc[]
 
 The `persisted()` lifecycle callback method is called when object has just been persisted from the object store.
 
-See also xref:applib:cms:methods.adoc#persisting[`persisting()`].
+See also xref:rg:cms:methods.adoc#persisting[`persisting()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:applib:svc:core-domain-api/EventBusService.adoc[event bus] xref:applib:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:applib:cms:classes.adoc#ObjectPersistedEvent[`ObjectPersistedEvent`].
+Alternatively, consider using a xref:rg:svc:core-domain-api/EventBusService.adoc[event bus] xref:rg:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:rg:cms:classes.adoc#ObjectPersistedEvent[`ObjectPersistedEvent`].
 ====
diff --git a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/persisting.adoc b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/persisting.adoc
index b3a5cb6..bf4c142 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/persisting.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/persisting.adoc
@@ -7,9 +7,9 @@ include::_attributes.adoc[]
 
 The `persisting()` lifecycle callback method is called when a (not-yet-persistent) object is just about to be persisted from the object store
 
-See also xref:applib:cms:methods.adoc#persisted[`persisted()`].
+See also xref:rg:cms:methods.adoc#persisted[`persisted()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:applib:svc:core-domain-api/EventBusService.adoc[event bus] xref:applib:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:applib:cms:classes.adoc#ObjectPersistingEvent[`ObjectPersistingEvent`].
+Alternatively, consider using a xref:rg:svc:core-domain-api/EventBusService.adoc[event bus] xref:rg:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:rg:cms:classes.adoc#ObjectPersistingEvent[`ObjectPersistingEvent`].
 ====
diff --git a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/removed.adoc b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/removed.adoc
index 791e024..1ae44cd 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/removed.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/removed.adoc
@@ -7,9 +7,9 @@ include::_attributes.adoc[]
 
 The `removed()` lifecycle callback method is called when a (persistent) object has just been deleted from the object store
 
-See also xref:applib:cms:methods.adoc#removing[`removing()`].
+See also xref:rg:cms:methods.adoc#removing[`removing()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:applib:svc:core-domain-api/EventBusService.adoc[event bus] xref:applib:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:applib:cms:classes.adoc#ObjectRemovedEvent[`ObjectRemovedEvent`].
+Alternatively, consider using a xref:rg:svc:core-domain-api/EventBusService.adoc[event bus] xref:rg:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:rg:cms:classes.adoc#ObjectRemovedEvent[`ObjectRemovedEvent`].
 ====
diff --git a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/removing.adoc b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/removing.adoc
index 2dcd350..731861d 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/removing.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/removing.adoc
@@ -7,9 +7,9 @@ include::_attributes.adoc[]
 
 The `removing()` lifecycle callback method is called when a (persistent) object is just about to be deleted from the object store
 
-See also xref:applib:cms:methods.adoc#removed[`removed()`].
+See also xref:rg:cms:methods.adoc#removed[`removed()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:applib:svc:core-domain-api/EventBusService.adoc[event bus] xref:applib:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:applib:cms:classes.adoc#ObjectRemovingEvent[`ObjectRemovingEvent`].
+Alternatively, consider using a xref:rg:svc:core-domain-api/EventBusService.adoc[event bus] xref:rg:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:rg:cms:classes.adoc#ObjectRemovingEvent[`ObjectRemovingEvent`].
 ====
diff --git a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/updated.adoc b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/updated.adoc
index 7e509f5..546869b 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/updated.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/updated.adoc
@@ -9,9 +9,9 @@ include::_attributes.adoc[]
 
 The `updated()` lifecycle callback method is called when a (persistent) object has just been updated in the object store
 
-See also xref:applib:cms:methods.adoc#updating[`updating()`].
+See also xref:rg:cms:methods.adoc#updating[`updating()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:applib:svc:core-domain-api/EventBusService.adoc[event bus] xref:applib:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:applib:cms:classes.adoc#ObjectUpdatedEvent[`ObjectUpdatedEvent`].
+Alternatively, consider using a xref:rg:svc:core-domain-api/EventBusService.adoc[event bus] xref:rg:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:rg:cms:classes.adoc#ObjectUpdatedEvent[`ObjectUpdatedEvent`].
 ====
diff --git a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/updating.adoc b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/updating.adoc
index 657cfa3..cada87a 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/lifecycle/updating.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/lifecycle/updating.adoc
@@ -6,9 +6,9 @@ include::_attributes.adoc[]
 
 The `updating()` lifecycle callback method is called when a (persistent) object is just about to be updated in the object store
 
-See also xref:applib:cms:methods.adoc#updated[`updated()`].
+See also xref:rg:cms:methods.adoc#updated[`updated()`].
 
 [TIP]
 ====
-Alternatively, consider using a xref:applib:svc:core-domain-api/EventBusService.adoc[event bus] xref:applib:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:applib:cms:classes.adoc#ObjectUpdatingEvent[`ObjectUpdatingEvent`].
+Alternatively, consider using a xref:rg:svc:core-domain-api/EventBusService.adoc[event bus] xref:rg:cms:classes.adoc#AbstractSubscriber[subscriber] on the xref:rg:cms:classes.adoc#ObjectUpdatingEvent[`ObjectUpdatingEvent`].
 ====
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes.adoc
index 5130d08..72c2cf3 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes.adoc
@@ -32,7 +32,7 @@ The table below lists the method prefixes that are recognized as part of Apache
 Param
 |Description
 
-|xref:applib:cms:methods.adoc#addTo[`addTo...()`]
+|xref:rg:cms:methods.adoc#addTo[`addTo...()`]
 |
 |
 |Y
@@ -45,10 +45,10 @@ Param
 Directly mutable collections are not currently supported by the xref:vw:ROOT:about.adoc[Wicket viewer].
 ====
 
-See also xref:applib:cms:methods.adoc#removeFrom[`removeFrom...()`]`
+See also xref:rg:cms:methods.adoc#removeFrom[`removeFrom...()`]`
 
 
-|xref:applib:cms:methods.adoc#autoComplete[`autoComplete...()`]
+|xref:rg:cms:methods.adoc#autoComplete[`autoComplete...()`]
 |
 |Y
 |
@@ -56,12 +56,12 @@ See also xref:applib:cms:methods.adoc#removeFrom[`removeFrom...()`]`
 |Y
 |Return a list of matching elements for a property or an action parameter. +
 
-Alternatively, can specify for a class using xref:applib:ant:DomainObject.adoc#autoCompleteRepository[`@DomainObject` +
+Alternatively, can specify for a class using xref:rg:ant:DomainObject.adoc#autoCompleteRepository[`@DomainObject` +
 `#autoCompleteRepository`] +
 
-See also xref:applib:cms:methods.adoc#choices[`choices...()`]
+See also xref:rg:cms:methods.adoc#choices[`choices...()`]
 
-|xref:applib:cms:methods.adoc#choices[`choices...()`]
+|xref:rg:cms:methods.adoc#choices[`choices...()`]
 |
 |Y
 |
@@ -69,9 +69,9 @@ See also xref:applib:cms:methods.adoc#choices[`choices...()`]
 |Y
 |Provide list of choices for a property or action parameter. +
 
-See also xref:applib:cms:methods.adoc#autoComplete[`autoComplete...()`].
+See also xref:rg:cms:methods.adoc#autoComplete[`autoComplete...()`].
 
-|xref:applib:cms:methods.adoc#clear[`clear...()`]
+|xref:rg:cms:methods.adoc#clear[`clear...()`]
 |
 |Y
 |
@@ -81,10 +81,10 @@ See also xref:applib:cms:methods.adoc#autoComplete[`autoComplete...()`].
 
 Allows business logic to be placed apart from the setter. +
 
-See also xref:applib:cms:methods.adoc#modify[`modify...()`]
+See also xref:rg:cms:methods.adoc#modify[`modify...()`]
 
 
-|xref:applib:cms:methods.adoc#default[`default...()`]
+|xref:rg:cms:methods.adoc#default[`default...()`]
 |
 |Y
 |
@@ -92,7 +92,7 @@ See also xref:applib:cms:methods.adoc#modify[`modify...()`]
 |Y
 |Default value for a property or an action parameter.
 
-|xref:applib:cms:methods.adoc#disable[`disable...()`]
+|xref:rg:cms:methods.adoc#disable[`disable...()`]
 |Y
 |Y
 |Y
@@ -100,7 +100,7 @@ See also xref:applib:cms:methods.adoc#modify[`modify...()`]
 |
 |Disables (makes read-only) a property, a collection or an action.
 
-|xref:applib:cms:methods.adoc#get[`get...()`]
+|xref:rg:cms:methods.adoc#get[`get...()`]
 |
 |Y
 |Y
@@ -108,9 +108,9 @@ See also xref:applib:cms:methods.adoc#modify[`modify...()`]
 |
 |Access the value of a property or collection. +
 
-See also xref:applib:cms:methods.adoc#set[`set...()`].
+See also xref:rg:cms:methods.adoc#set[`set...()`].
 
-|xref:applib:cms:methods.adoc#hide[`hide...()`]
+|xref:rg:cms:methods.adoc#hide[`hide...()`]
 |
 |Y
 |Y
@@ -118,7 +118,7 @@ See also xref:applib:cms:methods.adoc#set[`set...()`].
 |
 |Hides a property, a collection or an action.
 
-|xref:applib:cms:methods.adoc#modify[`modify...()`]
+|xref:rg:cms:methods.adoc#modify[`modify...()`]
 |
 |Y
 |
@@ -128,9 +128,9 @@ See also xref:applib:cms:methods.adoc#set[`set...()`].
 
 Allows business logic to be placed apart from the setter. +
 
-See also xref:applib:cms:methods.adoc#clear[`clear...()`]`.
+See also xref:rg:cms:methods.adoc#clear[`clear...()`]`.
 
-|xref:applib:cms:methods.adoc#removeFrom[`removeFrom...()`]
+|xref:rg:cms:methods.adoc#removeFrom[`removeFrom...()`]
 |
 |
 |Y
@@ -143,10 +143,10 @@ See also xref:applib:cms:methods.adoc#clear[`clear...()`]`.
 Directly mutable collections are not currently supported by the xref:vw:ROOT:about.adoc[Wicket viewer].
 ====
 
-See also xref:applib:cms:methods.adoc#addTo[`addTo...()`]`
+See also xref:rg:cms:methods.adoc#addTo[`addTo...()`]`
 
 
-|xref:applib:cms:methods.adoc#set[`set...()`]
+|xref:rg:cms:methods.adoc#set[`set...()`]
 |
 |Y
 |Y
@@ -154,7 +154,7 @@ See also xref:applib:cms:methods.adoc#addTo[`addTo...()`]`
 |
 |Sets the value of a property or a collection.
 
-|xref:applib:cms:methods.adoc#validate[`validate...()`]
+|xref:rg:cms:methods.adoc#validate[`validate...()`]
 |Y
 |
 |
@@ -162,9 +162,9 @@ See also xref:applib:cms:methods.adoc#addTo[`addTo...()`]`
 |Y
 |Check that a proposed value of a property or a set of action parameters or a single action parameter is valid. +
 
-See also xref:applib:cms:methods.adoc#validateAddTo[`validateAddTo...()`] and xref:applib:cms:methods.adoc#validateRemoveFrom[`validateRemoveFrom...()`] to validate modifications to collections.
+See also xref:rg:cms:methods.adoc#validateAddTo[`validateAddTo...()`] and xref:rg:cms:methods.adoc#validateRemoveFrom[`validateRemoveFrom...()`] to validate modifications to collections.
 
-|xref:applib:cms:methods.adoc#validateAddTo[`validate +
+|xref:rg:cms:methods.adoc#validateAddTo[`validate +
 AddTo...()`]
 |
 |Y
@@ -178,9 +178,9 @@ AddTo...()`]
 Directly mutable collections are not currently supported by the xref:vw:ROOT:about.adoc[Wicket viewer].
 ====
 
-See also xref:applib:cms:methods.adoc#validateRemoveFrom[`validateRemoveFrom...()`], and xref:applib:cms:methods.adoc#validate[`validate...()`] for properties and actions.
+See also xref:rg:cms:methods.adoc#validateRemoveFrom[`validateRemoveFrom...()`], and xref:rg:cms:methods.adoc#validate[`validate...()`] for properties and actions.
 
-|xref:applib:cms:methods.adoc#validateRemoveFrom[`validate +
+|xref:rg:cms:methods.adoc#validateRemoveFrom[`validate +
 RemoveFrom...()`]
 |
 |Y
@@ -194,7 +194,7 @@ RemoveFrom...()`]
 Directly mutable collections are not currently supported by the xref:vw:ROOT:about.adoc[Wicket viewer].
 ====
 
-See also xref:applib:cms:methods.adoc#validateAddTo[`validateAddTo...()`], and xref:applib:cms:methods.adoc#validate[`validate...()`] for properties and actions.
+See also xref:rg:cms:methods.adoc#validateAddTo[`validateAddTo...()`], and xref:rg:cms:methods.adoc#validate[`validate...()`] for properties and actions.
 
 |===
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/addTo.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/addTo.adoc
index ebf66a8..1ba760f 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/addTo.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/addTo.adoc
@@ -33,4 +33,4 @@ public class LibraryMember {
 <2> perform some additional business logic
 
 
-See also xref:applib:cms:methods.adoc#removeFrom[`removeFrom...()`]`
+See also xref:rg:cms:methods.adoc#removeFrom[`removeFrom...()`]`
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/autoComplete.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/autoComplete.adoc
index c23e0de..05bb052 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/autoComplete.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/autoComplete.adoc
@@ -9,7 +9,7 @@ The `autoComplete...()` supporting method is called for action parameters and fo
 
 [TIP]
 ====
-If the number of candidate objects is comparatively small, then use xref:applib:cms:methods.adoc#choices[`choices...()`] supporting method instead.
+If the number of candidate objects is comparatively small, then use xref:rg:cms:methods.adoc#choices[`choices...()`] supporting method instead.
 ====
 
 The signature of the supporting method depends on whether it is for a parameter or a property.
@@ -57,7 +57,7 @@ public class ShoppingCartItem {
 }
 ----
 <1> `product` is the 0th argument of the action.
-<2> the xref:applib:ant:MinLength.adoc[`@MinLength`] annotation specifies the minimum number of characters that must be entered before a search is performed for matching objects
+<2> the xref:rg:ant:MinLength.adoc[`@MinLength`] annotation specifies the minimum number of characters that must be entered before a search is performed for matching objects
 
 
 
@@ -90,6 +90,6 @@ public class ShoppingCartItem {
     ...
 }
 ----
-<1> the xref:applib:ant:MinLength.adoc[`@MinLength`] annotation specifies the minimum number of characters that must be entered before a search is performed for matching objects
+<1> the xref:rg:ant:MinLength.adoc[`@MinLength`] annotation specifies the minimum number of characters that must be entered before a search is performed for matching objects
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/choices.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/choices.adoc
index 7235c33..73235b2 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/choices.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/choices.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 
 
 
-The `choices...()` supporting method is called for both action parameters and for properties, to find objects from a drop-down list box.  Unlike xref:applib:cms:methods.adoc#autoComplete[`autoComplete...()`], the use case is when the number of objects is comparatively small and can be selected from a drop-down without any additional filtering.
+The `choices...()` supporting method is called for both action parameters and for properties, to find objects from a drop-down list box.  Unlike xref:rg:cms:methods.adoc#autoComplete[`autoComplete...()`], the use case is when the number of objects is comparatively small and can be selected from a drop-down without any additional filtering.
 
 The signature of the supporting method depends on whether it is for an action parameter or a property.
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/clear.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/clear.adoc
index 85b00f1..07d41b7 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/clear.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/clear.adoc
@@ -33,4 +33,4 @@ public class LibraryMember {
 <2> perform some additional business logic
 
 
-See also xref:applib:cms:methods.adoc#modify[`modify...()`]`
+See also xref:rg:cms:methods.adoc#modify[`modify...()`]`
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/default.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/default.adoc
index 2eab685..aa0cc1d 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/default.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/default.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 The `default...()` supporting method is called for action parameters to return the initial argument value.
 This may be some sensible default (eg today's date, or 0 or 1), or -- for an action that is modifying the state of an object -- might default to the current value of a corresponding property.
 
-The method is _also_ called for properties in the case when an object is newly instantiated using xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService#instantiate(...)`] or xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(...)`].
+The method is _also_ called for properties in the case when an object is newly instantiated using xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService#instantiate(...)`] or xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(...)`].
 This is a much less common use case.
 If a default is not specified then properties are initialized to a default based on their type (eg 0 or `false`).
 
@@ -180,7 +180,7 @@ public class ShoppingCartItem {
 
 There are, in fact, two other ways to set properties of a newly instantiated object to default values.
 
-The first is to use the xref:applib:cms:methods.adoc#created[`created()`] callback, called by the framework when xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService#instantiate(...)`] or xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(...)`] is called.
+The first is to use the xref:rg:cms:methods.adoc#created[`created()`] callback, called by the framework when xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService#instantiate(...)`] or xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(...)`] is called.
 This method is called after any services have been injected into the domain object.
 
 The second is more straightforward: simply initialize properties in the constructor.
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/get.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/get.adoc
index ed05fee..f2ec208 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/get.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/get.adoc
@@ -14,5 +14,5 @@ All remaining `public` methods (that do not use one of the Apache Isis prefixes)
 Any methods "left over" that _do_ use one of the Apache Isis prefixes, are interpreted to be orphaned.  Apache Isis "fails-fast" and will not boot, instead printing an error message to the log so that the issue can be easily diagnosed.
 
 
-See also xref:applib:cms:methods.adoc#set[`set...()`].
+See also xref:rg:cms:methods.adoc#set[`set...()`].
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/hide.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/hide.adoc
index 3ea2322..36c6b91 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/hide.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/hide.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 The `hide...()` supporting method is called for properties, collections, actions and action parameters.
 It allows the property/collection to be completely hidden from view.
 
-It's comparatively rare for properties or collections to be imperatively hidden from view, but actions are sometimes hidden or shown visible (as opposed to being just xref:applib:cms:methods.adoc#disable[disabled], ie greyed out).
+It's comparatively rare for properties or collections to be imperatively hidden from view, but actions are sometimes hidden or shown visible (as opposed to being just xref:rg:cms:methods.adoc#disable[disabled], ie greyed out).
 
 
 The signature of the supporting method is simply:
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/modify.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/modify.adoc
index 3f32379..33eda13 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/modify.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/modify.adoc
@@ -37,6 +37,6 @@ public class LibraryMember {
 <3> perform some additional business logic
 
 
-See also xref:applib:cms:methods.adoc#clear[`clear...()`]`
+See also xref:rg:cms:methods.adoc#clear[`clear...()`]`
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/removeFrom.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/removeFrom.adoc
index 6d93e7d..45492c1 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/removeFrom.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/removeFrom.adoc
@@ -33,4 +33,4 @@ public class LibraryMember {
 <2> perform some additional business logic
 
 
-See also xref:applib:cms:methods.adoc#addTo[`addTo...()`]`
+See also xref:rg:cms:methods.adoc#addTo[`addTo...()`]`
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/set.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/set.adoc
index c7b1dea..e4459ff 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/set.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/set.adoc
@@ -9,4 +9,4 @@ include::_attributes.adoc[]
 The `set...()` prefix is simply the normal JavaBean setter prefix that denotes writeable properties or collections.
 
 
-See also xref:applib:cms:methods.adoc#get[`get...()`].
+See also xref:rg:cms:methods.adoc#get[`get...()`].
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/validateAddTo.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/validateAddTo.adoc
index a920659..ae17c54 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/validateAddTo.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/validateAddTo.adoc
@@ -41,5 +41,5 @@ public class LibraryMember {
 ----
 
 
-See also xref:applib:cms:methods.adoc#addTo[`addTo...()`] and  xref:applib:cms:methods.adoc#validateRemoveFrom[`validateRemoveFrom...()`]`
+See also xref:rg:cms:methods.adoc#addTo[`addTo...()`] and  xref:rg:cms:methods.adoc#validateRemoveFrom[`validateRemoveFrom...()`]`
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/prefixes/validateRemoveFrom.adoc b/core/applib/_adoc/modules/cms/pages/methods/prefixes/validateRemoveFrom.adoc
index bbd067b..18b7e75 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/prefixes/validateRemoveFrom.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/prefixes/validateRemoveFrom.adoc
@@ -41,5 +41,5 @@ public class LibraryMember {
 ----
 
 
-See also xref:applib:cms:methods.adoc#removeFrom[`removeFrom...()`] and  xref:applib:cms:methods.adoc#validateAddTo[`validateAddTo...()`]`
+See also xref:rg:cms:methods.adoc#removeFrom[`removeFrom...()`] and  xref:rg:cms:methods.adoc#validateAddTo[`validateAddTo...()`]`
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/reserved.adoc b/core/applib/_adoc/modules/cms/pages/methods/reserved.adoc
index a179030..35b11f8 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/reserved.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/reserved.adoc
@@ -13,29 +13,29 @@ The table below lists the reserved methods that are recognized as part of Apache
 |Method
 |Description
 
-|xref:applib:cms:methods.adoc#cssClass[`cssClass()`]
+|xref:rg:cms:methods.adoc#cssClass[`cssClass()`]
 |Provides a CSS class for this object instance.
-In conjunction with xref:cfg:ROOT:application-specific/application-css.adoc[`application.css`], can therefore provide custom styling of an object instance wherever it is rendered.
+In conjunction with xref:rg:cfg:application-specific/application-css.adoc[`application.css`], can therefore provide custom styling of an object instance wherever it is rendered.
 
-|xref:applib:cms:methods.adoc#disable[`disable(...)`]
+|xref:rg:cms:methods.adoc#disable[`disable(...)`]
 |Disable all or some of an object's properties
 
-|xref:applib:cms:methods.adoc#getId[`getId()`]
+|xref:rg:cms:methods.adoc#getId[`getId()`]
 |Provides an optional unique identifier of a service.
 
 If not provided, the service's fully-qualified class name is used.
 
-|xref:applib:cms:methods.adoc#reserved-hide[`hide(...)`]
+|xref:rg:cms:methods.adoc#reserved-hide[`hide(...)`]
 |Hide all or some of an object's properties
 
-|xref:applib:cms:methods.adoc#iconName[`iconName()`]
+|xref:rg:cms:methods.adoc#iconName[`iconName()`]
 |Provides the name of the image to render, usually alongside the title, to represent the object.
 If not provided, then the class name is used to locate an image.
 
-|xref:applib:cms:methods.adoc#title[`title()`]
+|xref:rg:cms:methods.adoc#title[`title()`]
 |Provides a title for the object. +
 
-|xref:applib:cms:methods.adoc#reserved-validate[`validate()`]
+|xref:rg:cms:methods.adoc#reserved-validate[`validate()`]
 |Validate the object's state prior to persisting.
 
 |===
diff --git a/core/applib/_adoc/modules/cms/pages/methods/reserved/cssClass.adoc b/core/applib/_adoc/modules/cms/pages/methods/reserved/cssClass.adoc
index c0baec0..639adc7 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/reserved/cssClass.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/reserved/cssClass.adoc
@@ -10,7 +10,7 @@ The `cssClass()` returns a CSS class for a particular object instance.
 The xref:vw:ROOT:about.adoc[Wicket viewer] wraps the object's representation in a containing `<div>` with the class added.
 This is done both for rendering the object either in a table or when rendering the object on its own page.
 
-In conjunction with xref:cfg:ROOT:application-specific/application-css.adoc[`application.css`], can therefore provide custom styling of an object instance wherever it is rendered. +
+In conjunction with xref:rg:cfg:application-specific/application-css.adoc[`application.css`], can therefore provide custom styling of an object instance wherever it is rendered. +
 
 
 For example, the (non-ASF) http://github.com/isisaddons/isis-app-todoapp[Isis addons' todoapp] uses this technique to add a strikethrough for completed todo items.
@@ -31,7 +31,7 @@ public class ToDoItem ... {
 }
 ----
 
-In the xref:cfg:ROOT:application-specific/application-css.adoc[application.css], the following styles were then added:
+In the xref:rg:cfg:application-specific/application-css.adoc[application.css], the following styles were then added:
 
 [source,css]
 ----
@@ -48,6 +48,6 @@ tr.done {
 
 See also:
 
-* xref:applib:cms:methods.adoc#title[`title()`]
-* xref:applib:cms:methods.adoc#iconName[`iconName()`]
-* xref:applib:cms:methods.adoc#layout[`layout()`]
+* xref:rg:cms:methods.adoc#title[`title()`]
+* xref:rg:cms:methods.adoc#iconName[`iconName()`]
+* xref:rg:cms:methods.adoc#layout[`layout()`]
diff --git a/core/applib/_adoc/modules/cms/pages/methods/reserved/disable.adoc b/core/applib/_adoc/modules/cms/pages/methods/reserved/disable.adoc
index cf9f9cb..0e8b93d 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/reserved/disable.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/reserved/disable.adoc
@@ -6,7 +6,7 @@ include::_attributes.adoc[]
 
 One use case that Apache Isis supports is that of a domain object with a lifecycle whereby at some stage it should become immutable: all its properties/collections should be disabled, and/or its actions become not invokable.
 
-It would be painful to have to write a separate xref:applib:cms:methods.adoc#reserved-disable[`disable...()`] method for each and every member, so instead Isis allows a single `disable...(...)` method to be implemented that is applied to all members.
+It would be painful to have to write a separate xref:rg:cms:methods.adoc#reserved-disable[`disable...()`] method for each and every member, so instead Isis allows a single `disable...(...)` method to be implemented that is applied to all members.
 
 The signature of the method is:
 
@@ -30,7 +30,7 @@ public String disabled(Identifier.Type identifierType) {
 }
 ----
 
-See also the similar methods to xref:applib:cms:methods.adoc#hide[`hide()`] object members en-masse.
+See also the similar methods to xref:rg:cms:methods.adoc#hide[`hide()`] object members en-masse.
 
 
 == Alternatives
diff --git a/core/applib/_adoc/modules/cms/pages/methods/reserved/getId.adoc b/core/applib/_adoc/modules/cms/pages/methods/reserved/getId.adoc
index 7c4b589..31b6516 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/reserved/getId.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/reserved/getId.adoc
@@ -10,8 +10,8 @@ This value is used internally to generate a string representation of an service
 This can appear in several contexts, including:
 
 * as the value of `Bookmark#getObjectType()` and in the `toString()` value of `Bookmark`
- (see xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
-* in the serialization of `OidDto` in the xref:schema:ROOT:cmd[command] and xref:schema:ROOT:about.adoc#ixn.adoc[interaction] schemas
+ (see xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`])
+* in the serialization of `OidDto` in the xref:rg:schema:cmd[command] and xref:rg:schema:about.adoc#ixn.adoc[interaction] schemas
 * in the URLs of the xref:vro:ROOT:about.adoc[RestfulObjects viewer]
 * in the URLs of the xref:vw:ROOT:about.adoc[Wicket viewer] (specifically, for bookmarked actions)
 
@@ -36,8 +36,8 @@ public class OrderMenu {
 
 The rules of precedence are:
 
-1. xref:applib:ant:DomainService.adoc#objectType[`@DomainService#objectType()`]
-2. xref:applib:cms:methods.adoc#getId[`getId()`]
+1. xref:rg:ant:DomainService.adoc#objectType[`@DomainService#objectType()`]
+2. xref:rg:cms:methods.adoc#getId[`getId()`]
 3. The fully qualified class name.
 
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/reserved/hide.adoc b/core/applib/_adoc/modules/cms/pages/methods/reserved/hide.adoc
index 5e191b5..fa2ef6d 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/reserved/hide.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/reserved/hide.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 One use case that Apache Isis supports is that of a domain object with a lifecycle whereby at some stage some number of the object's members should be hidden.
 For example, for an object that at some stage is logically immutable, we might want to make all its properties/collections unmodifiable and hide all its actions.
 
-While we could write a separate xref:applib:cms:methods.adoc#hide[`hide...()`] method for each and every action, this could become painful.  So instead Isis allows a single `hide...(...)` method to be implemented that is applied to all members.
+While we could write a separate xref:rg:cms:methods.adoc#hide[`hide...()`] method for each and every action, this could become painful.  So instead Isis allows a single `hide...(...)` method to be implemented that is applied to all members.
 
 The signature of the method is:
 
@@ -28,12 +28,12 @@ public boolean hide(Identifier.Type identifierType) {
 }
 ----
 
-See also the similar method to xref:applib:cms:methods.adoc#disable[`disable()`] object members en-masse.
+See also the similar method to xref:rg:cms:methods.adoc#disable[`disable()`] object members en-masse.
 
 
 == Alternatives
 
 An alternative design -- and one that could be easily argued is actually more flexible -- is to leverage domain events with vetoing subscribers.
 
-There is further discussion on this approach in xref:applib:cms:methods.adoc#disable[here].
+There is further discussion on this approach in xref:rg:cms:methods.adoc#disable[here].
 
diff --git a/core/applib/_adoc/modules/cms/pages/methods/reserved/iconName.adoc b/core/applib/_adoc/modules/cms/pages/methods/reserved/iconName.adoc
index a02819a..29e2f44 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/reserved/iconName.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/reserved/iconName.adoc
@@ -41,7 +41,7 @@ public class ToDoItem ... {
 
 See also:
 
-* xref:applib:cms:methods.adoc#title[`title()`]
-* xref:applib:cms:methods.adoc#iconName[`iconName()`]
-* xref:applib:cms:methods.adoc#cssClass[`cssClass()`]
-* xref:applib:cms:methods.adoc#layout[`layout()`]
+* xref:rg:cms:methods.adoc#title[`title()`]
+* xref:rg:cms:methods.adoc#iconName[`iconName()`]
+* xref:rg:cms:methods.adoc#cssClass[`cssClass()`]
+* xref:rg:cms:methods.adoc#layout[`layout()`]
diff --git a/core/applib/_adoc/modules/cms/pages/methods/reserved/layout.adoc b/core/applib/_adoc/modules/cms/pages/methods/reserved/layout.adoc
index cb4d69a..d1f3536 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/reserved/layout.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/reserved/layout.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 
 
 Every object has a xref:vw:ROOT:layout.adoc[layout] .
-This may be specified using annotations such as xref:applib:ant:MemberOrder.adoc[`@MemberOrder`], xref:applib:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`] and the like,  but it much more commonly specified using an xref:vw:ROOT:layout/file-based .adoc[XML layout file].
+This may be specified using annotations such as xref:rg:ant:MemberOrder.adoc[`@MemberOrder`], xref:rg:ant:DomainObjectLayout.adoc[`@DomainObjectLayout`] and the like,  but it much more commonly specified using an xref:vw:ROOT:layout/file-based .adoc[XML layout file].
 
 The `layout` method allows the domain object to specify an alternate layout to its usual layout.
 
@@ -42,6 +42,6 @@ If `switchToEditMode()` action is invoked, then the UI will attempt to render th
 
 See also:
 
-* xref:applib:cms:methods.adoc#title[`title()`]
-* xref:applib:cms:methods.adoc#iconName[`iconName()`]
-* xref:applib:cms:methods.adoc#cssClass[`cssClass()`]
+* xref:rg:cms:methods.adoc#title[`title()`]
+* xref:rg:cms:methods.adoc#iconName[`iconName()`]
+* xref:rg:cms:methods.adoc#cssClass[`cssClass()`]
diff --git a/core/applib/_adoc/modules/cms/pages/methods/reserved/title.adoc b/core/applib/_adoc/modules/cms/pages/methods/reserved/title.adoc
index c5f224e..311892e 100644
--- a/core/applib/_adoc/modules/cms/pages/methods/reserved/title.adoc
+++ b/core/applib/_adoc/modules/cms/pages/methods/reserved/title.adoc
@@ -43,14 +43,14 @@ public String title() {
     return buf.toString();
 }
 ----
-<1> simple xref:applib:cms:classes.adoc#TitleBuffer[utility class] to help construct the title string
+<1> simple xref:rg:cms:classes.adoc#TitleBuffer[utility class] to help construct the title string
 <2> imperative conditional logic
-<3> using the xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] to determine if the `dueBy` field is visible for this user ...
+<3> using the xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] to determine if the `dueBy` field is visible for this user ...
 <4> ... but ignore if not
 
 As the example above shows, the implementation can be as complex as you like.
 
-In many cases, though, you may be able to use the xref:applib:ant:Title.adoc[`@Title`] annotation.
+In many cases, though, you may be able to use the xref:rg:ant:Title.adoc[`@Title`] annotation.
 
 
 
@@ -59,7 +59,7 @@ In many cases, though, you may be able to use the xref:applib:ant:Title.adoc[`@T
 
 See also:
 
-* xref:applib:cms:methods.adoc#iconName[`iconName()`]
-* xref:applib:cms:methods.adoc#cssClass[`cssClass()`]
-* xref:applib:cms:methods.adoc#layout[`layout()`]
+* xref:rg:cms:methods.adoc#iconName[`iconName()`]
+* xref:rg:cms:methods.adoc#cssClass[`cssClass()`]
+* xref:rg:cms:methods.adoc#layout[`layout()`]
 
diff --git a/core/applib/_adoc/modules/cms/partials/module-nav.adoc b/core/applib/_adoc/modules/cms/partials/module-nav.adoc
new file mode 100644
index 0000000..529b1ef
--- /dev/null
+++ b/core/applib/_adoc/modules/cms/partials/module-nav.adoc
@@ -0,0 +1,6 @@
+* xref:rg:cms:about.adoc[Classes & Methods]
+
+** xref:rg:cms:methods.adoc[Methods]
+** xref:rg:cms:classes.adoc[Classes]
+
+
diff --git a/core/applib/_adoc/modules/cms/partials/nav.adoc b/core/applib/_adoc/modules/cms/partials/nav.adoc
deleted file mode 100644
index c3b7f84..0000000
--- a/core/applib/_adoc/modules/cms/partials/nav.adoc
+++ /dev/null
@@ -1,6 +0,0 @@
-* xref:applib:cms:about.adoc[Classes & Methods]
-
-** xref:applib:cms:methods.adoc[Methods]
-** xref:applib:cms:classes.adoc[Classes]
-
-
diff --git a/core/applib/_adoc/modules/svc/nav.adoc b/core/applib/_adoc/modules/svc/nav.adoc
index de2a49c..053a7ac 100644
--- a/core/applib/_adoc/modules/svc/nav.adoc
+++ b/core/applib/_adoc/modules/svc/nav.adoc
@@ -1 +1 @@
-include::rg:ROOT:partial$nav.adoc[]
+include::rg:ROOT:partial$component-nav.adoc[]
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-api.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-api.adoc
index 3a05693..8bc33df 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-api.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-api.adoc
@@ -20,7 +20,7 @@ It also lists their corresponding implementation, either a default implementatio
 |Implementation
 |Notes
 
-|xref:applib:svc:application-layer-api/ActionInvocationContext.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-api/ActionInvocationContext.adoc[`o.a.i.applib.` +
 `services.actinv` +
 `ActionInvocation-` +
 `Context`]
@@ -32,7 +32,7 @@ It also lists their corresponding implementation, either a default implementatio
 
 
 
-|xref:applib:svc:application-layer-api/BackgroundService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-api/BackgroundService.adoc[`o.a.i.applib.` +
 `services.background` +
 `BackgroundService`]
 |Programmatic persistence of commands to be persisted (so can be executed by a background mechanism, eg scheduler)
@@ -41,10 +41,10 @@ It also lists their corresponding implementation, either a default implementatio
 ``o.a.i.core`` +
 ``isis-core-runtime``
 |depends on: +
-xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommand-Service`]
+xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommand-Service`]
 
 
-|xref:applib:svc:application-layer-api/CommandContext.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-api/CommandContext.adoc[`o.a.i.applib.` +
 `services.command` +
 `CommandContext`]
 |Request-scoped access to capture the users's __intention__ to invoke an action or to edit a property.
@@ -53,12 +53,12 @@ xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundC
 ``isis-core-applib``
 |API is also a concrete class. +
 depends on: +
-xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] for persistent `Command`, else in-memory impl. used.
+xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] for persistent `Command`, else in-memory impl. used.
 
-The xref:applib:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`] manages the actual execution of the command.
+The xref:rg:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`] manages the actual execution of the command.
 
 
-|xref:applib:svc:application-layer-api/CommandExecutorService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-api/CommandExecutorService.adoc[`o.a.i.applib.` +
 `services.command` +
 `CommandExecutorService`]
 |Executes the specified `Command`.
@@ -69,7 +69,7 @@ The xref:applib:svc:application-layer-api/InteractionContext.adoc[`InteractionCo
 |
 
 
-|xref:applib:svc:application-layer-api/DtoMappingHelper.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-api/DtoMappingHelper.adoc[`o.a.i.applib.` +
 `services.dto` +
 `DtoMappingHelper`]
 |Maps domain objects internal identifier to an `OidDto` for use in serialized representations.
@@ -79,7 +79,7 @@ The xref:applib:svc:application-layer-api/InteractionContext.adoc[`InteractionCo
 |API is also a concrete class.
 
 
-|xref:applib:svc:application-layer-api/InteractionContext.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-api/InteractionContext.adoc[`o.a.i.applib.` +
 `services.iactn` +
 `InteractionContext`]
 |Request-scoped access to the current member execution (action invocation or property edit),
@@ -91,7 +91,7 @@ represented as the `Interaction` context.
 
 
 
-|xref:applib:svc:application-layer-api/MessageService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-api/MessageService.adoc[`o.a.i.applib.` +
 `services.message` +
 `MessageService`]
 |Methods to inform or warn the user, or to raise errors.
@@ -102,7 +102,7 @@ represented as the `Interaction` context.
 |
 
 
-|xref:applib:svc:application-layer-api/SessionManagementService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-api/SessionManagementService.adoc[`o.a.i.applib.` +
 `services.sessmgmt` +
 `SessionManagementService`]
 |Methods for batching long-running work (eg data migration) into multiple sessions.
@@ -113,7 +113,7 @@ represented as the `Interaction` context.
 |
 
 
-|xref:applib:svc:application-layer-api/TitleService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-api/TitleService.adoc[`o.a.i.applib.` +
 `services.title` +
 `TitleService`]
 |Methods to programmatically obtain the title or icon of a domain object.
@@ -125,7 +125,7 @@ represented as the `Interaction` context.
 
 
 
-|xref:applib:svc:application-layer-api/TransactionService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-api/TransactionService.adoc[`o.a.i.applib.` +
 `services.xactn` +
 `TransactionService`]
 |Methods for managing transactions.
@@ -137,7 +137,7 @@ represented as the `Interaction` context.
 
 
 
-|xref:applib:svc:application-layer-api/WrapperFactory.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-api/WrapperFactory.adoc[`o.a.i.applib.` +
 `services.wrapper` +
 `WrapperFactory`]
 |Interact with another domain object "as if" through the UI (enforcing business rules, firing domain events)
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-api/ActionInvocationContext.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-api/ActionInvocationContext.adoc
index f025779..9084ff2 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-api/ActionInvocationContext.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-api/ActionInvocationContext.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 // TODO: v2: remove this domain service
 
-The `ActionInvocationContext` domain service is a xref:applib:ant:RequestScoped.adoc[`@RequestScoped`] service intended to support the implementation of "bulk" actions annotated with xref:applib:ant:Action.adoc#invokeOn[`@Action#invokeOn()`].
+The `ActionInvocationContext` domain service is a xref:rg:ant:RequestScoped.adoc[`@RequestScoped`] service intended to support the implementation of "bulk" actions annotated with xref:rg:ant:Action.adoc#invokeOn[`@Action#invokeOn()`].
 This allows the user to select multiple objects in a table and then invoke the same action against all of them.
 
 When an action is invoked in this way, this service allows each object instance to "know where it is" in the collection; it acts a little like an iterator.
@@ -37,13 +37,13 @@ public static class ActionInvocationContext {
     public boolean isLast() { /* ... */ }
 }
 ----
-<1> is xref:applib:ant:RequestScoped.adoc[`@RequestScoped`], so this domain service instance is scoped to a particular request and is then destroyed
+<1> is xref:rg:ant:RequestScoped.adoc[`@RequestScoped`], so this domain service instance is scoped to a particular request and is then destroyed
 <2> an enum set to either `OBJECT` (if action has been invoked on a single object) or `COLLECTION` (if has been invoked on a collection).
 <3> returns the list of domain objects which are being acted upon
 <4> is the 0-based index to the object being acted upon.
 
 
-To provide an alternative implementation, subclass and use xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:applib:svc:intro/overriding-the-services.adoc[introduction] to this guide).
+To provide an alternative implementation, subclass and use xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:rg:svc:intro/overriding-the-services.adoc[introduction] to this guide).
 
 
 == Usage
@@ -51,7 +51,7 @@ To provide an alternative implementation, subclass and use xref:applib:ant:Domai
 For actions that are void or that return null, Apache Isis will return to the list once executed.
 But for bulk actions that are non-void, Apache Isis will render the returned object/value from the last object invoked (and simply discards the object/value of all actions except the last).
 
-One idiom is for the domain objects to also use the xref:applib:svc:core-domain-api/Scratchpad.adoc[`Scratchpad`] service to share information, for example to aggregate values.
+One idiom is for the domain objects to also use the xref:rg:svc:core-domain-api/Scratchpad.adoc[`Scratchpad`] service to share information, for example to aggregate values.
 The `ActionInvocationContext#isLast()` method can then be used to determine if all the information has been gathered, and then do something with it (eg derive variance across a range of values, render a graph etc).
 
 More prosaically, the `ActionInvocationContext` can be used to ensure that the action behaves appropriately depending on how it has been invoked (on a single object and/or a collection) whether it is called in bulk mode or regular mode.
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-api/BackgroundService.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-api/BackgroundService.adoc
index 5e6ed7d..dad9c13 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-api/BackgroundService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-api/BackgroundService.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-The `BackgroundService2` domain service (and its various supertypes), and also the companion xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService2`] SPI service, enable commands to be persisted such that they may be invoked in the background.
+The `BackgroundService2` domain service (and its various supertypes), and also the companion xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService2`] SPI service, enable commands to be persisted such that they may be invoked in the background.
 
 The `BackgroundService2` is responsible for capturing a memento representing the command in a typesafe way, and persisting it rather than executing it directly.
 
@@ -17,7 +17,7 @@ The persistence delegates the persistence of the memento to an appropriate imple
 One such implementation of `BackgroundCommandService` is provided by (non-ASF) http://github.com/isisaddons/isis-module-command[Isis addons' command] module.
 
 The persisting of commands is only half the story; there needs to be a separate process to read the commands and execute them.
-The `BackgroundCommandExecution` abstract class (discussed xref:applib:svc:application-layer-api/BackgroundService/BackgroundCommandExecution.adoc[below]) provides infrastructure to do this; the concrete implementation of this class depends on the configured `BackgroundCommandService` (in order to query for the persisted (background) ``Command``s.
+The `BackgroundCommandExecution` abstract class (discussed xref:rg:svc:application-layer-api/BackgroundService/BackgroundCommandExecution.adoc[below]) provides infrastructure to do this; the concrete implementation of this class depends on the configured `BackgroundCommandService` (in order to query for the persisted (background) ``Command``s.
 
 
 
@@ -32,12 +32,12 @@ public interface BackgroundService2 {
     <T> T executeMixin(Class<T> mixinClass, Object mixedIn);    // <2>
 }
 ----
-<1> returns a proxy around the domain object; any methods executed against this proxy will result in a command (to invoke the corresponding action) being persisted by xref:applib:svc:application-layer-spi/BackgroundCommandService2.adoc[`BackgroundCommandService2`]
-<2> Returns a proxy around the mixin; any methods executed against this proxy will result in a command (to invoke the corresponding mixin action) being persisted by xref:applib:svc:application-layer-spi/BackgroundCommandService2.adoc[`BackgroundCommandService2`].
+<1> returns a proxy around the domain object; any methods executed against this proxy will result in a command (to invoke the corresponding action) being persisted by xref:rg:svc:application-layer-spi/BackgroundCommandService2.adoc[`BackgroundCommandService2`]
+<2> Returns a proxy around the mixin; any methods executed against this proxy will result in a command (to invoke the corresponding mixin action) being persisted by xref:rg:svc:application-layer-spi/BackgroundCommandService2.adoc[`BackgroundCommandService2`].
 
 The default implementation is provided by core (`o.a.i.core.runtime.services.background.BackgroundServiceDefault`).
 
-To provide an alternative implementation, subclass and use xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:applib:svc:intro/overriding-the-services.adoc[introduction] to this guide).
+To provide an alternative implementation, subclass and use xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:rg:svc:intro/overriding-the-services.adoc[introduction] to this guide).
 
 
 == Usage
@@ -58,14 +58,14 @@ public void submitCustomerInvoices() {
 
 This will create a bunch of background commands executing the `submitInvoice()` action for each of the customers returned from the customer repository.
 
-The action method invoked must be part of the Apache Isis metamodel, which is to say it must be public, accept only scalar arguments, and must not be annotated with xref:applib:ant:Programmatic.adoc[`@Programmatic`] or `@Ignore`.
-However, it may be annotated with xref:applib:ant:Action.adoc#hidden[`@Action#hidden()`] or xref:applib:ant:ActionLayout.adoc#hidden[`@ActionLayout#hidden()`] and it will still be invoked.
+The action method invoked must be part of the Apache Isis metamodel, which is to say it must be public, accept only scalar arguments, and must not be annotated with xref:rg:ant:Programmatic.adoc[`@Programmatic`] or `@Ignore`.
+However, it may be annotated with xref:rg:ant:Action.adoc#hidden[`@Action#hidden()`] or xref:rg:ant:ActionLayout.adoc#hidden[`@ActionLayout#hidden()`] and it will still be invoked.
 
 In fact, when invoked by the background service, no business rules (hidden, disabled, validation) are enforced; the action method must take responsibility for performing appropriate validation and error checking.
 
 [TIP]
 ====
-If you want to check business rules, you can use xref:applib:ant:WrapperFactory.adoc[`@WrapperFactory#wrapNoExecute(...)`].
+If you want to check business rules, you can use xref:rg:ant:WrapperFactory.adoc[`@WrapperFactory#wrapNoExecute(...)`].
 ====
 
 
@@ -79,7 +79,7 @@ In the above example, this would be the `submitInvoice()` method called upon eac
 One could imagine more complex designs where only the final command executed notifies the user.
 
 However, an alternative is to rely on the fact that the `BackgroundService` will automatically hint that the `Command` representing the original interaction (to `submitCustomerInvoices()` in the example above) should be persisted.
-This will be available if the related xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] and xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] domain services are configured, and the `CommandService` supports persistent commands.
+This will be available if the related xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] and xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] domain services are configured, and the `CommandService` supports persistent commands.
 Note that (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module does indeed provide such an implementation of `CommandService` (as well as of the required `BackgroundCommandService`).
 
 Thus, the original action can run a query to obtain it corresponding `Command`, and return this to the user.
@@ -98,7 +98,7 @@ public Command submitCustomerInvoices() {
 @Inject
 CommandContext commandContext;  // <1>
 ----
-<1> the injected xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] domain service.
+<1> the injected xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] domain service.
 
 The user would be returned a domain object representing their action invocation.
 
@@ -107,15 +107,15 @@ The user would be returned a domain object representing their action invocation.
 
 == Related Services
 
-This service is closely related to the xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] and also that service's supporting xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] service.
+This service is closely related to the xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] and also that service's supporting xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] service.
 
 The `CommandContext` service is responsible for providing a parent `Command` with which the background ``Command``s can then be associated as children, while the `CommandService` is responsible for persisting those parent `Command`s.
 The latter is analogous to the way in which the `BackgroundCommandService` persists the child background `Command`s.
 
 The implementations of `CommandService` and `BackgroundCommandService` go together; typically both parent `Command`s and child background `Command`s will be persisted in the same way.
-The (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module provides implementations of both (see xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] and xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]).
+The (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module provides implementations of both (see xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] and xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]).
 
 The xref:runtime-services:ROOT:application-layer/CommandDtoServiceInternal.adoc[`CommandDtoServiceInternal`] is used to obtain a memento of the command such that it can be persisted.
-(In earlier versions, xref:applib:svc:integration-api/MementoService.adoc[`MementoService`] was used for this purpose).
+(In earlier versions, xref:rg:svc:integration-api/MementoService.adoc[`MementoService`] was used for this purpose).
 
 
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-api/CommandContext.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-api/CommandContext.adoc
index 8f07937..f740dbc 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-api/CommandContext.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-api/CommandContext.adoc
@@ -6,21 +6,21 @@ include::_attributes.adoc[]
 
 
 
-The `CommandContext` service is a xref:applib:ant:RequestScoped.adoc[request-scoped] service that reifies the invocation of an action on a domain object into an object itself. This reified information is encapsulated within the `Command` object.
+The `CommandContext` service is a xref:rg:ant:RequestScoped.adoc[request-scoped] service that reifies the invocation of an action on a domain object into an object itself. This reified information is encapsulated within the `Command` object.
 
 By default, the `Command` is held in-memory only; once the action invocation has completed, the `Command` object is gone.
-The optional supporting xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] enables the implementation of `Command` to be pluggable.
-With an appropriate implementation (eg as provided by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module's xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`]) the `Command` may then be persisted.
+The optional supporting xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] enables the implementation of `Command` to be pluggable.
+With an appropriate implementation (eg as provided by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module's xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`]) the `Command` may then be persisted.
 
-The primary use case for persistent ``Command``s is in support of background commands; they act as a parent to any background commands that can be persisted either explicitly using the xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`], or implicitly by way of the xref:applib:ant:Action.adoc#command[`@Action#command()`] annotation.
+The primary use case for persistent ``Command``s is in support of background commands; they act as a parent to any background commands that can be persisted either explicitly using the xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`], or implicitly by way of the xref:rg:ant:Action.adoc#command[`@Action#command()`] annotation.
 
 There are a number of related use cases:
 
 * to enable profiling of the running application (which actions are invoked then most often, what is their response time)
-* if a xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] is configured, they provide better traceability as the `Command` is also correlated with any published events, again through the unique `transactionId` GUID
-* if a xref:applib:svc:spi/AuderService.adoc[`AuditerService`] is configured, they provide better audit information, since the `Command` (the 'cause' of an action) can be correlated to the audit records (the "effect" of the action) through the `transactionId` GUID
+* if a xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] is configured, they provide better traceability as the `Command` is also correlated with any published events, again through the unique `transactionId` GUID
+* if a xref:rg:svc:spi/AuderService.adoc[`AuditerService`] is configured, they provide better audit information, since the `Command` (the 'cause' of an action) can be correlated to the audit records (the "effect" of the action) through the `transactionId` GUID
 
-However, while persistent ``Command``s _can_ be used for these use cases, it is recommended instead to use the xref:applib:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`] service and persistent implementations of the ``Interaction`` object, eg as provided by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s publishmq module.
+However, while persistent ``Command``s _can_ be used for these use cases, it is recommended instead to use the xref:rg:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`] service and persistent implementations of the ``Interaction`` object, eg as provided by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s publishmq module.
 
 
 
@@ -57,7 +57,7 @@ public class CommandContext {
 This class (`o.a.i.applib.services.CommandContext`) is also the default implementation.
 
 Under normal circumstances there shouldn't be any need to replace this implementation with another.
-But if you do need to for some reason, then subclass and use xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:applib:svc:intro/overriding-the-services.adoc[introduction] to this guide).
+But if you do need to for some reason, then subclass and use xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:rg:svc:intro/overriding-the-services.adoc[introduction] to this guide).
 
 
 The `Command` type referenced above is in fact an interface, defined as:
@@ -110,13 +110,13 @@ public interface Command extends HasTransactionId {
 <16> `getResult()` - bookmark to object returned by action, if any
 <17> `getException()` - exception stack trace if action threw exception
 <18> No longer used by the framework; see instead
-xref:applib:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`] and `Interaction#next()`.
+xref:rg:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`] and `Interaction#next()`.
 
 
 
 == Usage
 
-The typical way to indicate that an action should be treated as a command is to annotate it with the xref:applib:ant:Action.adoc#command[`@Action#command()`] annotation.
+The typical way to indicate that an action should be treated as a command is to annotate it with the xref:rg:ant:Action.adoc#command[`@Action#command()`] annotation.
 
 For example:
 
@@ -133,11 +133,11 @@ public class ToDoItem ... {
 ====
 As an alternative to annotating every action with `@Action#command()`, alternatively this can be configured as the default using `isis.services.command.actions` configuration property.
 
-See xref:applib:ant:Action.adoc#command[`@Action#command()`] and xref:cfg:ROOT:configuring-core.adoc[runtime configuration] for further details.
+See xref:rg:ant:Action.adoc#command[`@Action#command()`] and xref:rg:cfg:configuring-core.adoc[runtime configuration] for further details.
 ====
 
 
-The xref:applib:ant:Action.adoc#command[`@Action#command()`] annotation can also be used to specify whether the command should be performed in the background, for example:
+The xref:rg:ant:Action.adoc#command[`@Action#command()`] annotation can also be used to specify whether the command should be performed in the background, for example:
 
 [source,java]
 ----
@@ -152,8 +152,8 @@ public class ToDoItem ... {
 
 When a background command is invoked, the user is returned the command object itself (to provide a handle to the command being invoked).
 
-This requires that an implementation of xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] that persists the commands (such as the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module's `CommandService`) is configured.
-It also requires that a scheduler is configured to execute the background commands, see xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]).
+This requires that an implementation of xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] that persists the commands (such as the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module's `CommandService`) is configured.
+It also requires that a scheduler is configured to execute the background commands, see xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]).
 
 
 
@@ -189,7 +189,7 @@ public class ToDoItem ... {
 If run in the background, it might then notify the user (eg by email) if all work is done.
 
 This leads us onto a related point, distinguishing the current effective user vs the originating "real" user.
-When running in the foreground, the current user can be obtained from the xref:applib:svc:core-domain-api/UserService.adoc[`UserService`], using:
+When running in the foreground, the current user can be obtained from the xref:rg:svc:core-domain-api/UserService.adoc[`UserService`], using:
 
 [source,java]
 ----
@@ -211,12 +211,12 @@ String user = commandContext.getCommand().getUser();
 
 == Related Services
 
-The xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service is very similar in nature to the xref:applib:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`], in that the `Command` object accessed through it is very similar to the `Interaction` object obtained from the `InteractionContext`.
+The xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service is very similar in nature to the xref:rg:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`], in that the `Command` object accessed through it is very similar to the `Interaction` object obtained from the `InteractionContext`.
 The principle distinction is that while `Command` represents the __intention__ to invoke an action or edit a property, the `Interaction` (and contained ``Execution``s) represents the actual execution.
 
 Most of the time a `Command` will be followed directly by its corresponding `Interaction`.
-However, if the `Command` is annotated to run in the background (using xref:applib:ant:Action.adoc#command[`@Action#commandExecuteIn()`], or is explicitly created through the xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`], then the actual interaction/execution is deferred until some other mechanism invokes the command (eg as described xref:ug:btb:about.adoc#BackgroundCommandExecution[here]).
-The persistence of background commands requires a configured xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]) to actually persist such commands for execution.
+However, if the `Command` is annotated to run in the background (using xref:rg:ant:Action.adoc#command[`@Action#commandExecuteIn()`], or is explicitly created through the xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`], then the actual interaction/execution is deferred until some other mechanism invokes the command (eg as described xref:ug:btb:about.adoc#BackgroundCommandExecution[here]).
+The persistence of background commands requires a configured xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]) to actually persist such commands for execution.
 
-``Command``s - even if executed in the foreground - can also be persisted by way of the xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`].
-Implementations of `CommandService` and `BackgroundCommandService` are intended to go together, so that child ``Command``s persistent (to be executed in the background) can be associated with their parent ``Command``s (executed in the foreground, with the background `Command` created explicitly through the xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`]).
+``Command``s - even if executed in the foreground - can also be persisted by way of the xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`].
+Implementations of `CommandService` and `BackgroundCommandService` are intended to go together, so that child ``Command``s persistent (to be executed in the background) can be associated with their parent ``Command``s (executed in the foreground, with the background `Command` created explicitly through the xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`]).
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-api/CommandExecutorService.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-api/CommandExecutorService.adoc
index 092945a..32b6c01 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-api/CommandExecutorService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-api/CommandExecutorService.adoc
@@ -9,7 +9,7 @@ include::_attributes.adoc[]
 The `CommandExecutorService` domain service is provides the ability to execute a specified `Command`, optionally running the command with the identity of the user captured in that `Command`.
 
 In fact, the service requires that the implementation of the `Command` being executed implements the `CommandWithDto` sub-interface.
-This allows the xref:schema:ROOT:cmd.adoc[`CommandDto`] memento to be extracted, from which the action can be invoked/property edited.
+This allows the xref:rg:schema:cmd.adoc[`CommandDto`] memento to be extracted, from which the action can be invoked/property edited.
 
 The primary use case for this service is to allow the replay of commands, eg for regression testing.
 This is implemented by the (non-ASF) link:https://platform.incode.org/modules/spi/command/spi-command-replay.html[command replay module].
@@ -33,10 +33,10 @@ public interface CommandExecutorService {
 }
 ----
 <1> whether to switch the effective user for the duration of executing the `Command`.
-Behind the scenes this uses the xref:applib:svc:testing/SudoService.adoc[`SudoService`].
+Behind the scenes this uses the xref:rg:svc:testing/SudoService.adoc[`SudoService`].
 <2> provided `Command` must implement `CommandDto`.
 
-When the `Command` is executed, it will also be returned by xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`].
+When the `Command` is executed, it will also be returned by xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`].
 Any associated objects that implement `HasTransactionId` (audit entries and the like) will therefore have the correct transactionId and will correctly be associated with the `Command` being executed.
 
 The framework provides a default implementation of this service,
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-api/DtoMappingHelper.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-api/DtoMappingHelper.adoc
index 9ec33db..84e43a5 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-api/DtoMappingHelper.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-api/DtoMappingHelper.adoc
@@ -5,7 +5,7 @@ include::_attributes.adoc[]
 :page-partial:
 
 
-The `DtoMappingHelper` converts the domain object's internal identifier into a serializable `OidDto` for use in the xref:schema:ROOT:cmd[command] and xref:schema:ROOT:about.adoc#ixn.adoc[interaction] schemas.
+The `DtoMappingHelper` converts the domain object's internal identifier into a serializable `OidDto` for use in the xref:rg:schema:cmd[command] and xref:rg:schema:about.adoc#ixn.adoc[interaction] schemas.
 
 
 == API and Usage
@@ -19,7 +19,7 @@ public class DtoMappingHelper {
     public OidDto oidDtoFor(final Object object) { /* ... */ }    // <1>
 }
 ----
-<1> Uses the xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`] to convert the domain object's internal identifier into a serializable `OidDto`.
+<1> Uses the xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`] to convert the domain object's internal identifier into a serializable `OidDto`.
 
 This class (`o.a.i.applib.services.dto.DtoMappingHelper`) is also the implementation.
 
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-api/InteractionContext.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-api/InteractionContext.adoc
index 3b8093a..a4b82ac 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-api/InteractionContext.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-api/InteractionContext.adoc
@@ -10,12 +10,12 @@ The `InteractionContext` is a request-scoped domain service that is used to obta
 `Interaction`.
 
 An `Interaction` generally consists of a single top-level `Execution`, either to invoke an action or to edit a
-property.  If that top-level action or property uses xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] to
+property.  If that top-level action or property uses xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`] to
 invoke child actions/properties, then those sub-executions are captured as a call-graph.  The `Execution` is thus a
 graph structure.
 
 If a bulk action is performed (as per an action annotated using
-xref:applib:ant:Action.adoc#invokeOn[`@Action#invokeOn()`]), then this will result in multiple ``Interaction``s, one
+xref:rg:ant:Action.adoc#invokeOn[`@Action#invokeOn()`]), then this will result in multiple ``Interaction``s, one
 per selected object (not one `Interaction` with multiple top-level ``Execution``s).
 
 
@@ -25,9 +25,9 @@ It is possible for ``Interaction.Execution``s to be persisted; this is supported
 * they enable profiling of the running application (which actions are invoked then most often, what is their response
 time)
 
-* if auditing is configured (using xref:applib:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`]), they provide better audit information, since the
+* if auditing is configured (using xref:rg:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`]), they provide better audit information, since the
 `Interaction.Execution` captures the 'cause' of an interaction and can be correlated to the audit records (the "effect"
-of the interaction) by way of the xref:applib:cms:classes/mixins.adoc#HasTransactionId[`transactionId`]
+of the interaction) by way of the xref:rg:cms:classes/mixins.adoc#HasTransactionId[`transactionId`]
 
 
 
@@ -73,11 +73,11 @@ public class Interaction {
     public int next(final String sequenceId);       // <5>
 }
 ----
-<1> The unique identifier of this interaction.  This will be the same value as held in `Command` (obtainable from xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`]).
+<1> The unique identifier of this interaction.  This will be the same value as held in `Command` (obtainable from xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`]).
 <2> The member `Execution` (action invocation or property edit) that preceded the current one.
 <3> The current execution.
 <4> * Returns a (list of) execution}s in the order that they were pushed.  Generally there will be just one entry in this list, but additional entries may arise from the use of mixins/contributions when re-rendering a modified object.
-<5> Generates numbers in a named sequence.  Used by the framework both to number successive interaction ``Execution``s and for events published by the xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
+<5> Generates numbers in a named sequence.  Used by the framework both to number successive interaction ``Execution``s and for events published by the xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
 
 This class is concrete (is also the implementation).
 
@@ -86,7 +86,7 @@ This class is concrete (is also the implementation).
 
 The `Interaction.Execution` (static nested) class represents an action invocation/property edit as a node in a
 call-stack execution graph.  Sub-executions can be performed using the
-xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`].
+xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`].
 
 It has the following public API:
 
@@ -122,23 +122,23 @@ public abstract class Execution {
 <5> A human-friendly description of the class of the target object, and of the name of the action invoked/property
 edited on the target object.
 <6> The parent action/property that invoked this action/property edit (if any), and any actions/property edits made in
-turn via the xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`].
-<7> The domain event fired via the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] representing the
+turn via the xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`].
+<7> The domain event fired via the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] representing the
 execution of this action invocation/property edit.
 <8> The date/time at which this execution started/completed.
 <9> The object returned by the action invocation/property edit, or the exception thrown.  For `void` methods and for actions returning collections, the value will be `null`.
-<10> A DTO (instance of the xref:schema:ROOT:ixn.adoc["ixn" schema]) being a serializable representation of this action invocation/property edit.
+<10> A DTO (instance of the xref:rg:schema:ixn.adoc["ixn" schema]) being a serializable representation of this action invocation/property edit.
 
 
 
 [NOTE]
 ====
 
-Unlike the similar xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] domain service (discussed xref:applib:svc:application-layer-api/InteractionContext.adoc#Related-Classes[below]) there is no domain service to different implementations of `Interaction` to be used.
+Unlike the similar xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] domain service (discussed xref:rg:svc:application-layer-api/InteractionContext.adoc#Related-Classes[below]) there is no domain service to different implementations of `Interaction` to be used.
 That said, the framework simply instantiates the `Interaction` using the
-xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService`].
+xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService`].
 If a different implementation of `Interaction` was required, then a custom implementation of
- xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService`] could always be supplied.
+ xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService`] could always be supplied.
 ====
 
 
@@ -178,8 +178,8 @@ Apache Isis' default implementation of `InteractionContext` class is automatical
 
 Typically domain objects will have little need to interact with the `InteractionContext` and `Interaction` directly.
 The services are used within the framework however, primarily to support the
-xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] SPI, and to emit domain events over the
-xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`].
+xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] SPI, and to emit domain events over the
+xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`].
 
 
 
@@ -188,14 +188,14 @@ xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`].
 
 == Related Classes
 
-This service is very similar in nature to xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`], in that the
+This service is very similar in nature to xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`], in that the
 `Interaction` object accessed through it is very similar to the `Command` object obtained from the `CommandContext`.
 The principle distinction is that while `Command` represents the __intention__ to invoke an action or edit a property,
 the `Interaction` (and contained ``Execution``s) represents the actual execution.
 
 Most of the time a `Command` will be followed directly by its corresponding `Interaction`.  However, if the `Command`
-is annotated to run in the background (using xref:applib:ant:Action.adoc#command[`@Action#commandExecuteIn()`], or
-is explicitly created through the xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`], then the actual
+is annotated to run in the background (using xref:rg:ant:Action.adoc#command[`@Action#commandExecuteIn()`], or
+is explicitly created through the xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`], then the actual
 interaction/execution is deferred until some other mechanism invokes the command (eg as described
 xref:ug:btb:about.adoc#BackgroundCommandExecution[here]).
 
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-api/MessageService.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-api/MessageService.adoc
index 416c4f4..250060d 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-api/MessageService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-api/MessageService.adoc
@@ -61,5 +61,5 @@ public Order addItem(Product product, @ParameterLayout(named="Quantity") int qua
 
 The core framework provides a default implementation of this service, `o.a.i.core.runtime.services.message.MessageServiceDefault`.
 
-To use an alternative implementation, implement the `MessageService` interface and use xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:applib:svc:intro/overriding-the-services.adoc[introduction] to this guide).
+To use an alternative implementation, implement the `MessageService` interface and use xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:rg:svc:intro/overriding-the-services.adoc[introduction] to this guide).
 
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-api/SessionManagementService.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-api/SessionManagementService.adoc
index 289aeaa..2c4baee 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-api/SessionManagementService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-api/SessionManagementService.adoc
@@ -43,5 +43,5 @@ Any domain objects that were created in the "previous" session are no longer usa
 The core framework provides a default implementation of this service (`o.a.i.core.runtime.services.xactn.SessionManagementServiceDefault`).
 
 
-To use an alternative implementation, implement the `SessionManagementService` interface and use xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:applib:svc:intro/overriding-the-services.adoc[introduction] to this guide).
+To use an alternative implementation, implement the `SessionManagementService` interface and use xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:rg:svc:intro/overriding-the-services.adoc[introduction] to this guide).
 
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-api/TransactionService.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-api/TransactionService.adoc
index 3af4d98..68d0274 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-api/TransactionService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-api/TransactionService.adoc
@@ -28,7 +28,7 @@ public interface TransactionService3 {
 Under certain circumstances (eg actions used to perform data migration, say, or for large fixture scripts), it can be helpful to programmatically complete one transaction and start another one.
 <3> overload of nextTransaction() that provides more control on the action to be performed if the current transaction has been marked for abort only
 <4> If the user interaction creates/persists an object or deletes an object (eg using the
-xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`]'s `persist()` or `delete()` methods), then the framework actually queues up the work and only performs the persistence command either at the end of the transaction or immediately prior to the next query.
+xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`]'s `persist()` or `delete()` methods), then the framework actually queues up the work and only performs the persistence command either at the end of the transaction or immediately prior to the next query.
 Performing a flush will cause any pending calls to be performed immediately.
 <5> the state of the current or most recently completed transaction.
 
@@ -84,7 +84,7 @@ public interface Transaction2 {
 }
 ----
 <1> is a unique identifier for the interaction/request, as defined by the
-xref:applib:cms:classes/mixins.adoc#HasTransactionId[`HasTransactionId`] mixin.
+xref:rg:cms:classes/mixins.adoc#HasTransactionId[`HasTransactionId`] mixin.
 <2> there can actually be multiple transactions within such a request/interaction; the sequence is a (0-based) is used to distinguish such.
 <3> as per `TransactionService#flushTransaction()` described above.
 <4> The state of this transaction (same as `TransactionService#getTransactionState()`).
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-api/WrapperFactory.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-api/WrapperFactory.adoc
index 878aac5..9ae5f44 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-api/WrapperFactory.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-api/WrapperFactory.adoc
@@ -90,7 +90,7 @@ If the object is not wrapped, returns back unchanged.
 
 <8> whether the supplied object has been wrapped.
 
-If the interface is performed (action invoked or property set), then - irrespective of whether the business rules were checked or skipped -  a xref:applib:ant:Action.adoc#command[command]s will be created and pre- and post-execute xref:applib:ant:Action.adoc#domainEvent[domain event]s) will be fired
+If the interface is performed (action invoked or property set), then - irrespective of whether the business rules were checked or skipped -  a xref:rg:ant:Action.adoc#command[command]s will be created and pre- and post-execute xref:rg:ant:Action.adoc#domainEvent[domain event]s) will be fired
 
 
 The service works by returning a "wrapper" around a supplied domain object (using a byte manipulation library such as link:http://www.javassist.org[javassist] or link:https://bytebuddy.net/[byte buddy]), and it is this wrapper that ensures that the hide/disable/validate rules implies by the Apache Isis programming model are enforced.
@@ -107,8 +107,8 @@ Similarly if an action has a `validateXxx()` method and the supplied arguments a
 
 In addition, the following methods may also be called:
 
-* the xref:applib:cms:methods.adoc#title[`title()`] and `toString()` methods
-* any xref:applib:cms:methods.adoc#default[`default...()`], xref:applib:cms:methods.adoc#choices[`choices...()`] or xref:applib:cms:methods.adoc#autoComplete[`autoComplete...()`] methods
+* the xref:rg:cms:methods.adoc#title[`title()`] and `toString()` methods
+* any xref:rg:cms:methods.adoc#default[`default...()`], xref:rg:cms:methods.adoc#choices[`choices...()`] or xref:rg:cms:methods.adoc#autoComplete[`autoComplete...()`] methods
 
 An exception will be thrown if any other methods are thrown.
 
@@ -147,7 +147,7 @@ public class CustomerAgent {
 
 [NOTE]
 ====
-It ought to be possible to implement an xref:applib:svc:presentation-layer-spi/ExceptionRecognizer.adoc[`ExceptionRecognizer`]s that would allow the above boilerplate to be removed.
+It ought to be possible to implement an xref:rg:svc:presentation-layer-spi/ExceptionRecognizer.adoc[`ExceptionRecognizer`]s that would allow the above boilerplate to be removed.
 This recognizer service would recognize the `InteractionException` and convert to a suitable message.
 
 At the time of writing Apache Isis does not provide an out-of-the-box implementation of such an `ExceptionRecognizer`; but it should be simple enough to write one…
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-spi.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-spi.adoc
index a47c944..cdf06d9 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-spi.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-spi.adoc
@@ -20,7 +20,7 @@ It also lists their corresponding implementation, either a default implementatio
 |Notes
 
 
-|xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`o.a.i.applib.` +
 `services.background` +
 `BackgroundCommandService`]
 |Persisted a memento of an action invocation such that it can be executed asynchronously ("in the background") eg by a scheduler.
@@ -35,7 +35,7 @@ It also lists their corresponding implementation, either a default implementatio
 
 
 
-|xref:applib:svc:application-layer-spi/CommandService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-spi/CommandService.adoc[`o.a.i.applib.` +
 `services.command.spi` +
 `CommandService`]
 |Service to act as a factory and repository (create and save) of command instances, ie representations of an action invocation.  Used for command/auditing and background services.
@@ -48,7 +48,7 @@ It also lists their corresponding implementation, either a default implementatio
 `CommandService-` ++
 `JdoRepository`
 
-|xref:applib:svc:application-layer-spi/HealthCheckService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-spi/HealthCheckService.adoc[`o.a.i.applib.` +
 `services.health` +
 `HealthCheckService`]
 |Performs a health check so that the runtime infrastructure can determine if the application is still healthy (and perform remedial action, such as restarting the app, if not).
@@ -56,7 +56,7 @@ It also lists their corresponding implementation, either a default implementatio
 |Exposed via REST API, typically on `/restful/health`.
 
 
-|xref:applib:svc:application-layer-spi/HomePageProviderService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:application-layer-spi/HomePageProviderService.adoc[`o.a.i.applib.` +
 `services.homepage` +
 `HomePageProviderService`]
 |Returns the home page object, if any is defined.
@@ -64,7 +64,7 @@ It also lists their corresponding implementation, either a default implementatio
 `ServiceDefault` +
 ``o.a.i.core`` +
 ``isis-core-runtime``
-|Used by the default implementation of xref:applib:svc:presentation-layer-spi/RoutingService.adoc[`RoutingService`].
+|Used by the default implementation of xref:rg:svc:presentation-layer-spi/RoutingService.adoc[`RoutingService`].
 
 
 
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-spi/BackgroundCommandService.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-spi/BackgroundCommandService.adoc
index fdbc4f4..7c99351 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-spi/BackgroundCommandService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-spi/BackgroundCommandService.adoc
@@ -6,11 +6,11 @@ include::_attributes.adoc[]
 
 
 
-The `BackgroundCommandService2` (SPI) service supports the xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`] (API) service, persisting action invocations as commands such that they can subsequently be invoked in the background.
+The `BackgroundCommandService2` (SPI) service supports the xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`] (API) service, persisting action invocations as commands such that they can subsequently be invoked in the background.
 
-The `BackgroundService` is responsible for capturing a memento representing the action invocation, and then hands off to the xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`] `BackgroundCommandService` to actually persist it.
+The `BackgroundService` is responsible for capturing a memento representing the action invocation, and then hands off to the xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`] `BackgroundCommandService` to actually persist it.
 
-The persisting of commands is only half the story; there needs to be a separate process to read the commands and execute them.  The abstract xref:applib:svc:application-layer-api/BackgroundService/BackgroundCommandExecution.adoc[`BackgroundCommandExecution`] provides a mechanism to execute such commands.  This can be considered an API, albeit "internal" because the implementation relies on internals of the framework.
+The persisting of commands is only half the story; there needs to be a separate process to read the commands and execute them.  The abstract xref:rg:svc:application-layer-api/BackgroundService/BackgroundCommandExecution.adoc[`BackgroundCommandExecution`] provides a mechanism to execute such commands.  This can be considered an API, albeit "internal" because the implementation relies on internals of the framework.
 
 
 
@@ -31,7 +31,7 @@ public interface BackgroundCommandService2 {
 
 }
 ----
-<1> an instance of a xref:schema:ROOT:cmd.adoc[`CommandDto`] capturing the details of the action invocation or property edit to be retained (eg persisted to a database) so that it can be executed at a later time
+<1> an instance of a xref:rg:schema:cmd.adoc[`CommandDto`] capturing the details of the action invocation or property edit to be retained (eg persisted to a database) so that it can be executed at a later time
 <2> reference to the parent `Command` requesting the action be performed as a background command.  This allows information such as the initiating user to be obtained.
 
 
@@ -68,7 +68,7 @@ The module also provides a concrete subclass of `BackgroundCommandExecution` tha
 
 [TIP]
 ====
-Details of setting up the Quartz scheduler to actually execute these persisted commands can be found on the xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`] page.
+Details of setting up the Quartz scheduler to actually execute these persisted commands can be found on the xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`] page.
 ====
 
 
@@ -78,9 +78,9 @@ Details of setting up the Quartz scheduler to actually execute these persisted c
 
 Background commands can be created either declaratively or imperatively.
 
-The declarative approach involves annotating an action using xref:applib:ant:Action.adoc#command[`@Action#command()`] with `@Action#commandExecuteIn=CommandExecuteIn.BACKGROUND`.
+The declarative approach involves annotating an action using xref:rg:ant:Action.adoc#command[`@Action#command()`] with `@Action#commandExecuteIn=CommandExecuteIn.BACKGROUND`.
 
-The imperative approach involves explicitly calling the xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`] from within domain object's action.
+The imperative approach involves explicitly calling the xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`] from within domain object's action.
 
 
 
@@ -88,7 +88,7 @@ The imperative approach involves explicitly calling the xref:applib:svc:applicat
 == Alternative Implementations
 
 The (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module provides an implementation of this service (`BackgroundCommandService`), and also provides a number of related domain services (`BackgroundCommandServiceJdo`, `BackgroundCommandJdoRepository` and `BackgroundCommandServiceJdoContributions`).
-This module also provides service implementations of the xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`].
+This module also provides service implementations of the xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`].
 
 If contributions are not required in the UI, these can be suppressed either using security or by implementing a xref:ug:btb:about.adoc#vetoing-visibility[vetoing subscriber].
 
@@ -97,9 +97,9 @@ If contributions are not required in the UI, these can be suppressed either usin
 
 == Related Services
 
-As discussed above, this service supports the xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`] , persisting `Command`s such that they can be executed in the background.
+As discussed above, this service supports the xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`] , persisting `Command`s such that they can be executed in the background.
 
-There is also a tie-up with the xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] and its supporting xref:applib:svc:application-layer-spi/CommandService.adoc[`CommandService`] domain service. The `CommandContext` service is responsible for providing a parent `Command` with which the background `Command`s can then be associated as children, while the `CommandService` is responsible for persisting those parent `Command`s (analogous to the way in which the `Backgr [...]
+There is also a tie-up with the xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] and its supporting xref:rg:svc:application-layer-spi/CommandService.adoc[`CommandService`] domain service. The `CommandContext` service is responsible for providing a parent `Command` with which the background `Command`s can then be associated as children, while the `CommandService` is responsible for persisting those parent `Command`s (analogous to the way in which the `BackgroundComm [...]
 
 What that means is that the implementations of `CommandService` and `BackgroundCommandService` go together, hence both implemented in the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s  command module.).
 
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-spi/CommandService.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-spi/CommandService.adoc
index 7ee12cb..64b1d78 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-spi/CommandService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-spi/CommandService.adoc
@@ -6,9 +6,9 @@ include::_attributes.adoc[]
 
 
 
-The `CommandService` service supports the xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service such that `Command` objects (that reify the invocation of an action/edit of a property on a domain object) can be persisted.
+The `CommandService` service supports the xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service such that `Command` objects (that reify the invocation of an action/edit of a property on a domain object) can be persisted.
 
-The primary use case for persistent ``Command``s is in support of background commands; they act as a parent to any background commands that can be persisted either explicitly using the xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`], or implicitly by way of the xref:applib:ant:Action.adoc#command[`@Action#command()`] annotation.
+The primary use case for persistent ``Command``s is in support of background commands; they act as a parent to any background commands that can be persisted either explicitly using the xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`], or implicitly by way of the xref:rg:ant:Action.adoc#command[`@Action#command()`] annotation.
 
 Persistent ``Command``s also support the ability to replicate from a master to a slave instance of an application.
 One use case for this is for regression testing, allowing a production usages to be replayed against a new release candidate, eg after upgrading that application to a new version of Apache Isis itself (or some other dependency).
@@ -18,14 +18,14 @@ There are a number of related use cases:
 * they enable profiling of the running application (which actions are invoked then most often, what is their response time)
 
 
-* if xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] is configured, they provide
+* if xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] is configured, they provide
 better traceability as the `Command` is also correlated with any published events, again through the unique
 `transactionId` GUID
-* if xref:applib:svc:spi/AuditerService.adoc[`AuditerService`](s) are configured, they provide better audit
+* if xref:rg:svc:spi/AuditerService.adoc[`AuditerService`](s) are configured, they provide better audit
 information, since the `Command` (the 'cause' of an action) can be correlated to the audit records (the "effect" of
 the action) through the `transactionId` GUID
 
-However, while persistent ``Command``s _can_ be used for these use cases, it is recommended instead to use the xref:applib:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`] service and persistent implementations of the ``Interaction`` object, eg as provided by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s publishmq module.
+However, while persistent ``Command``s _can_ be used for these use cases, it is recommended instead to use the xref:rg:svc:application-layer-api/InteractionContext.adoc[`InteractionContext`] service and persistent implementations of the ``Interaction`` object, eg as provided by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s publishmq module.
 
 
 
@@ -55,7 +55,7 @@ public interface CommandService {
 }
 ----
 <1> Instantiate the appropriate instance of the `Command` (as defined by the
-xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service).
+xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`] service).
 Its members will be populated automatically by the framework.
 <2> Set the hint that the `Command` should be persisted if possible (when completed, see below).
 <3> "Complete" the command, typically meaning that the command should be persisted it if its `Command#getPersistence()` flag and persistence hint (`Command#isPersistHint()`) indicate that it should be.  +
@@ -74,7 +74,7 @@ It further provides a number of supporting services:
 * `org.isisaddons.module.command.dom.CommandServiceJdoContributions` contributes actions for searching for persisted child and sibling ``Command``s.
 
 * implementation of the
-xref:applib:svc:application-layer-spi/CommandService.adoc[`BackgroundCommandService`].
+xref:rg:svc:application-layer-spi/CommandService.adoc[`BackgroundCommandService`].
 
 All of these can be activated by updating the `pom.xml` and updating the `AppManifest#getModules()` method.
 
@@ -85,7 +85,7 @@ If contributions are not required in the UI, these can be suppressed either usin
 == Alternative Implementations
 
 The (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module provides an implementation of this service (`CommandService`), and also provides a number of related domain services (`CommandJdoRepository` and `CommandServiceJdoContributions`).
-This module also provides service implementations of the xref:applib:svc:application-layer-spi/CommandService.adoc[`BackgroundCommandService`].
+This module also provides service implementations of the xref:rg:svc:application-layer-spi/CommandService.adoc[`BackgroundCommandService`].
 
 If contributions are not required in the UI, these can be suppressed either using security or by implementing a xref:ug:btb:about.adoc#vetoing-visibility[vetoing subscriber].
 
@@ -94,15 +94,15 @@ If contributions are not required in the UI, these can be suppressed either usin
 
 == Related Services
 
-As discussed above, this service supports the xref:applib:svc:application-layer-api/CommandContext.adoc[`CommandContext`], providing the ability for `Command` objects to be persisted.
-This is closely related to the xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]that allows the xref:applib:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`] to schedule commands for background/asynchronous execution.
+As discussed above, this service supports the xref:rg:svc:application-layer-api/CommandContext.adoc[`CommandContext`], providing the ability for `Command` objects to be persisted.
+This is closely related to the xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`]that allows the xref:rg:svc:application-layer-api/BackgroundService.adoc[`BackgroundService`] to schedule commands for background/asynchronous execution.
 
 The implementations of `CommandService` and `BackgroundCommandService` are intended to go together, so that persistent parent `Command`s can be associated with their child background `Command`s.
 
-The services provided by this module combines very well with the xref:applib:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`].
+The services provided by this module combines very well with the xref:rg:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`].
 The `CommandService` captures the __cause__ of an interaction (an action was invoked, a property was edited), while the `AuditerService` captures the __effect__ of that interaction in terms of changed state.
 
-You may also want to configure the xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
+You may also want to configure the xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`].
 
-All three of these services collaborate implicitly by way of the xref:applib:cms:classes/mixins.adoc#HasTransactionId[`HasTransactionId`] interface.
+All three of these services collaborate implicitly by way of the xref:rg:cms:classes/mixins.adoc#HasTransactionId[`HasTransactionId`] interface.
 
diff --git a/core/applib/_adoc/modules/svc/pages/application-layer-spi/HomePageProviderService.adoc b/core/applib/_adoc/modules/svc/pages/application-layer-spi/HomePageProviderService.adoc
index 9f36818..446a006 100644
--- a/core/applib/_adoc/modules/svc/pages/application-layer-spi/HomePageProviderService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/application-layer-spi/HomePageProviderService.adoc
@@ -6,9 +6,9 @@ include::_attributes.adoc[]
 
 
 
-This service simply provides access to the home page object (if any) that is returned from the domain service action annotated with xref:applib:ant:HomePage.adoc[`@HomePage`].
+This service simply provides access to the home page object (if any) that is returned from the domain service action annotated with xref:rg:ant:HomePage.adoc[`@HomePage`].
 
-It was originally introduced to support the default implementation of xref:applib:svc:presentation-layer-spi/RoutingService.adoc[`RoutingService`], but was factored out to support alternative implementations of that service (and may be useful for other use cases).
+It was originally introduced to support the default implementation of xref:rg:svc:presentation-layer-spi/RoutingService.adoc[`RoutingService`], but was factored out to support alternative implementations of that service (and may be useful for other use cases).
 
 
 == SPI & Implementation
diff --git a/core/applib/_adoc/modules/svc/pages/bootstrapping-spi.adoc b/core/applib/_adoc/modules/svc/pages/bootstrapping-spi.adoc
index fe63838..a52d0c2 100644
--- a/core/applib/_adoc/modules/svc/pages/bootstrapping-spi.adoc
+++ b/core/applib/_adoc/modules/svc/pages/bootstrapping-spi.adoc
@@ -20,12 +20,12 @@ It also lists their corresponding implementation, either a default implementatio
 |Notes
 
 
-|xref:applib:svc:bootstrapping-spi/ClassDiscoveryService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:bootstrapping-spi/ClassDiscoveryService.adoc[`o.a.i.applib.` +
 `services.classdiscovery` +
 `ClassDiscoveryService`]
-|Mechanism to locate (from the classpath) classes with a specific annotation (eg xref:applib:ant:DomainService.adoc[`@DomainService`])
+|Mechanism to locate (from the classpath) classes with a specific annotation (eg xref:rg:ant:DomainService.adoc[`@DomainService`])
 
-Subtypes of a given type (eg xref:applib:cms:classes/super.adoc#FixtureScript[`FixtureScript`]).
+Subtypes of a given type (eg xref:rg:cms:classes/super.adoc#FixtureScript[`FixtureScript`]).
 |`ClassDiscoveryService-` +
 `UsingReflections` +
 ``o.a.i.core`` +
diff --git a/core/applib/_adoc/modules/svc/pages/bootstrapping-spi/ClassDiscoveryService.adoc b/core/applib/_adoc/modules/svc/pages/bootstrapping-spi/ClassDiscoveryService.adoc
index 422fa4f..5c73275 100644
--- a/core/applib/_adoc/modules/svc/pages/bootstrapping-spi/ClassDiscoveryService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/bootstrapping-spi/ClassDiscoveryService.adoc
@@ -9,7 +9,7 @@ include::_attributes.adoc[]
 The `ClassDiscoveryService` service (and its various supertypes) is used to automatically discover subclasses of any given type on the classpath.
 The primary use case is to support "convention-over-configuration" designs that work with a minimum of configuration.
 
-This service is used by the xref:applib:cms:classes/super.adoc#FixtureScripts[`FixtureScripts`] service to automatically locate any xref:applib:cms:classes/super.adoc#FixtureScript[`FixtureScript`] implementations.
+This service is used by the xref:rg:cms:classes/super.adoc#FixtureScripts[`FixtureScripts`] service to automatically locate any xref:rg:cms:classes/super.adoc#FixtureScript[`FixtureScript`] implementations.
 
 
 
@@ -37,11 +37,11 @@ Apache Isis provides an implementation of this service, namely `o.a.i.applib.ser
 
 [NOTE]
 ====
-This implementation is also used to discover domain services annotated with xref:applib:ant:DomainService.adoc[`@DomainService`].
+This implementation is also used to discover domain services annotated with xref:rg:ant:DomainService.adoc[`@DomainService`].
 Currently this logic uses the implementation directly, so is not pluggable.
 ====
 
-To use an alternative implementation, implement the `ClassDiscoveryService` interface and use xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:applib:svc:intro/overriding-the-services.adoc[introduction] to this guide).
+To use an alternative implementation, implement the `ClassDiscoveryService` interface and use xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:rg:svc:intro/overriding-the-services.adoc[introduction] to this guide).
 
 
 
@@ -49,6 +49,6 @@ To use an alternative implementation, implement the `ClassDiscoveryService` inte
 
 == Related Services
 
-The xref:applib:svc:testing/FixtureScripts.adoc[`FixtureScripts`] domain service uses `ClassDiscoveryService` to discover ``FixtureScript``s implementations to present in the UI.
+The xref:rg:svc:testing/FixtureScripts.adoc[`FixtureScripts`] domain service uses `ClassDiscoveryService` to discover ``FixtureScript``s implementations to present in the UI.
 
 Note that the bootstrapping of the framework itself does _not_ use this service (though it does use the same underlying library as the default implementation of this service, namely `org.reflections.Reflections`).
diff --git a/core/applib/_adoc/modules/svc/pages/core-domain-api.adoc b/core/applib/_adoc/modules/svc/pages/core-domain-api.adoc
index 75269ca..91bf88d 100644
--- a/core/applib/_adoc/modules/svc/pages/core-domain-api.adoc
+++ b/core/applib/_adoc/modules/svc/pages/core-domain-api.adoc
@@ -22,7 +22,7 @@ It also lists their corresponding implementation, either a default implementatio
 
 
 
-|xref:applib:svc:core-domain-api/ClockService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:core-domain-api/ClockService.adoc[`o.a.i.applib.` +
 `services.clock` +
 `ClockService`]
 |Access the current time (and for testing, allow the time to be changed)
@@ -33,7 +33,7 @@ It also lists their corresponding implementation, either a default implementatio
 
 
 
-|xref:applib:svc:core-domain-api/ConfigurationService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:core-domain-api/ConfigurationService.adoc[`o.a.i.applib.` +
 `services.config` +
 `ConfigurationService`]
 |Access configuration properties (eg from `isis.properties` file)
@@ -44,20 +44,20 @@ It also lists their corresponding implementation, either a default implementatio
 |The ``ConfigurationServiceMenu`` exposes the ``allConfigurationProperties`` action in the user interface. +
 
 
-|xref:applib:svc:core-domain-api/EventBusService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:core-domain-api/EventBusService.adoc[`o.a.i.applib.` +
 `services.eventbus` +
 `EventBusService`]
 |Programmatically post events to the internal event bus.  Also used by Apache Isis itself to broadcast domain events:
 
-* xref:applib:ant:Action.adoc#domainEvent[`Action#domainEvent()`]
-* xref:applib:ant:Property.adoc#domainEvent[`Property#domainEvent()`]
-* xref:applib:ant:Collection.adoc#domainEvent[`Collection#domainEvent()`]
+* xref:rg:ant:Action.adoc#domainEvent[`Action#domainEvent()`]
+* xref:rg:ant:Property.adoc#domainEvent[`Property#domainEvent()`]
+* xref:rg:ant:Collection.adoc#domainEvent[`Collection#domainEvent()`]
 |`EventBusServiceJdo` +
 ``o.a.i.core`` +
 ``isis-core-runtime``
 |
 
-|xref:applib:svc:core-domain-api/FactoryService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:core-domain-api/FactoryService.adoc[`o.a.i.applib.` +
 `services.factory` +
 `FactoryService`]
 |Methods to instantiate and initialize domain objects
@@ -70,7 +70,7 @@ It also lists their corresponding implementation, either a default implementatio
 
 
 
-|xref:applib:svc:core-domain-api/Scratchpad.adoc[`o.a.i.applib.` +
+|xref:rg:svc:core-domain-api/Scratchpad.adoc[`o.a.i.applib.` +
 `services.scratchpad` +
 `Scratchpad`]
 |Request-scoped service for interchanging information between and aggregating over multiple method calls; in particular for use by "bulk" actions (invoking of an action for all elements of a collection)
@@ -82,7 +82,7 @@ It also lists their corresponding implementation, either a default implementatio
 
 
 
-|xref:applib:svc:core-domain-api/UserService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:core-domain-api/UserService.adoc[`o.a.i.applib.` +
 `services.xactn` +
 `UserService`]
 |Methods to access the currently-logged on user.
diff --git a/core/applib/_adoc/modules/svc/pages/core-domain-api/ClockService.adoc b/core/applib/_adoc/modules/svc/pages/core-domain-api/ClockService.adoc
index d160f84..cbc9aa6 100644
--- a/core/applib/_adoc/modules/svc/pages/core-domain-api/ClockService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/core-domain-api/ClockService.adoc
@@ -52,11 +52,11 @@ This class (`o.a.i.applib.services.clock.ClockService`) is also the default impl
 The default `ClockService` implementation in fact simply delegates to another class defined in the API, namely the `o.a.i.applib.clock.Clock`, an abstract singleton class.
 It is not recommended that your code use the `Clock` directly, but it's worth understanding how this all works.
 
-If running in xref:cfg:ROOT:deployment-types.adoc[production] (server) mode, then the framework will (lazily) instantiate the ``SystemClock` when first required.
+If running in xref:rg:cfg:deployment-types.adoc[production] (server) mode, then the framework will (lazily) instantiate the ``SystemClock` when first required.
 This is a read-only clock that reads from the system time.
 The instance registers itself as the singleton and cannot be replaced.
 
-If running in xref:cfg:ROOT:deployment-types.adoc[prototype] mode, though, then the framework will instead instantiate `FixtureClock`.
+If running in xref:rg:cfg:deployment-types.adoc[prototype] mode, though, then the framework will instead instantiate `FixtureClock`.
 This is a read-write clock that will behave as the system clock, unless it is explicitly set using eg, `FixtureClock#setDate(...)` or `FixtureClock#setTime(...)` etc.
 
 Moreover, `FixtureClock` singleton can be replaced with another implementation.
diff --git a/core/applib/_adoc/modules/svc/pages/core-domain-api/ConfigurationService.adoc b/core/applib/_adoc/modules/svc/pages/core-domain-api/ConfigurationService.adoc
index ace8bb2..1e4d0b6 100644
--- a/core/applib/_adoc/modules/svc/pages/core-domain-api/ConfigurationService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/core-domain-api/ConfigurationService.adoc
@@ -9,7 +9,7 @@ include::_attributes.adoc[]
 
 
 
-The `ConfigurationService` allows domain objects to read the configuration properties aggregated from the various xref:cfg:ROOT:configuration-files.adoc[configuration files].
+The `ConfigurationService` allows domain objects to read the configuration properties aggregated from the various xref:rg:cfg:configuration-files.adoc[configuration files].
 
 
 [IMPORTANT]
@@ -61,7 +61,7 @@ public class TweetService {
 
 [TIP]
 ====
-If you _do_ have a domain service that needs to access Isis properties, then an alternative is to define a xref:applib:ant:PostConstruct.adoc[`@PostConstruct`] method and pass in a `Map<String,String>` of properties.
+If you _do_ have a domain service that needs to access Isis properties, then an alternative is to define a xref:rg:ant:PostConstruct.adoc[`@PostConstruct`] method and pass in a `Map<String,String>` of properties.
 This is provided all properties, not just those with the 'application' prefix.
 ====
 
diff --git a/core/applib/_adoc/modules/svc/pages/core-domain-api/EventBusService.adoc b/core/applib/_adoc/modules/svc/pages/core-domain-api/EventBusService.adoc
index 68fc9be..7236b0c 100644
--- a/core/applib/_adoc/modules/svc/pages/core-domain-api/EventBusService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/core-domain-api/EventBusService.adoc
@@ -8,7 +8,7 @@ include::_attributes.adoc[]
 
 The `EventBusService` allows domain objects to emit events to subscribing domain services using an in-memory event bus.
 
-The primary user of the service is the framework itself, which automatically emit events for xref:applib:ant:Action.adoc#domainEvent[actions], xref:applib:ant:Property.adoc#domainEvent[properties] and xref:applib:ant:Collection.adoc#domainEvent[collections].
+The primary user of the service is the framework itself, which automatically emit events for xref:rg:ant:Action.adoc#domainEvent[actions], xref:rg:ant:Property.adoc#domainEvent[properties] and xref:rg:ant:Collection.adoc#domainEvent[collections].
 Multiple events are generated:
 
 * when an object member is to be viewed, an event is fired; subscribers can veto (meaning that the member is hidden)
@@ -19,7 +19,7 @@ Multiple events are generated:
 
 If a subscriber throws an exception in the first three steps, then the interaction is vetoed.
 If a subscriber throws an exception in the last two steps, then the transaction is aborted.
-For more on this topic, see xref:applib:ant:Action.adoc#domainEvent[`@Action#domainEvent()`], xref:applib:ant:Property.adoc#domainEvent[`@Property#domainEvent()`] and xref:applib:ant:Collection.adoc#domainEvent[`@Collection#domainEvent()`].
+For more on this topic, see xref:rg:ant:Action.adoc#domainEvent[`@Action#domainEvent()`], xref:rg:ant:Property.adoc#domainEvent[`@Property#domainEvent()`] and xref:rg:ant:Collection.adoc#domainEvent[`@Collection#domainEvent()`].
 
 It is also possible for domain objects to programmatically generate domain events.
 However the events are published, the primary use case is to decoupling interactions from one module/package/namespace and another.
@@ -42,21 +42,21 @@ public abstract class EventBusService {
 ----
 <1> posts the event onto event bus
 <2> allows domain services to register themselves.
-This should be done in their xref:applib:ant:PostConstruct.adoc[`@PostConstruct`] initialization method (for both singleton and xref:applib:ant:RequestScoped.adoc[`@RequestScoped`] domain services.
+This should be done in their xref:rg:ant:PostConstruct.adoc[`@PostConstruct`] initialization method (for both singleton and xref:rg:ant:RequestScoped.adoc[`@RequestScoped`] domain services.
 <3> exists for symmetry, but need never be called (it is in fact deliberately a no-op).
 
 
 
 
-To use an alternative implementation, implement the `EventBusService` domain service and use xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:applib:svc:intro/overriding-the-services.adoc[introduction] to this guide).
+To use an alternative implementation, implement the `EventBusService` domain service and use xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:rg:svc:intro/overriding-the-services.adoc[introduction] to this guide).
 
 
 
 
 == Registering Subscribers
 
-The `register()` method should be called in the xref:applib:ant:PostConstruct.adoc[`@PostConstruct`] lifecycle method.
-It is valid and probably the least confusing to readers to also "unregister" in the xref:applib:ant:PreDestroy.adoc[`@PreDestroy`] lifecycle method (though as noted xref:applib:svc:core-domain-api/EventBusService.adoc#api-and-implementation[above], unregistering is actually a no-op).
+The `register()` method should be called in the xref:rg:ant:PostConstruct.adoc[`@PostConstruct`] lifecycle method.
+It is valid and probably the least confusing to readers to also "unregister" in the xref:rg:ant:PreDestroy.adoc[`@PreDestroy`] lifecycle method (though as noted xref:rg:svc:core-domain-api/EventBusService.adoc#api-and-implementation[above], unregistering is actually a no-op).
 
 For example:
 
@@ -84,19 +84,19 @@ public class MySubscribingDomainService {
 ----
 <1> subscribers are typically not visible in the UI, so specify a `DOMAIN` nature
 <2> It's important that subscribers register before any domain services that might emit events on the event bus service.
-For example, the xref:ext-secman:ROOT:about.adoc[SecMan extension] provides a domain service that automatically seeds certain domain entities; these will generate xref:applib:cms:classes/lifecycleevent.adoc[lifecycle events] and so any subscribers must be registered before such seed services.
-The easiest way to do this is to use the xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] attribute.
-<3> register with the event bus service during xref:applib:ant:PostConstruct.adoc[`@PostConstruct`]
+For example, the xref:ext-secman:ROOT:about.adoc[SecMan extension] provides a domain service that automatically seeds certain domain entities; these will generate xref:rg:cms:classes/lifecycleevent.adoc[lifecycle events] and so any subscribers must be registered before such seed services.
+The easiest way to do this is to use the xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] attribute.
+<3> register with the event bus service during xref:rg:ant:PostConstruct.adoc[`@PostConstruct`]
     initialization
 <4> corresponding deregister when shutting down
 
-This works for both singleton (application-scoped) and also xref:applib:ant:RequestScoped.adoc[`@RequestScoped`] domain services.
+This works for both singleton (application-scoped) and also xref:rg:ant:RequestScoped.adoc[`@RequestScoped`] domain services.
 
 
 [TIP]
 ====
-The xref:applib:cms:classes/super.adoc#AbstractSubscriber[`AbstractSubscriber`] class automatically performs this registration.
-As a convenience, it is also annotated with the xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] attribute.
+The xref:rg:cms:classes/super.adoc#AbstractSubscriber[`AbstractSubscriber`] class automatically performs this registration.
+As a convenience, it is also annotated with the xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] attribute.
 ====
 
 
@@ -151,7 +151,7 @@ public class LibraryMember {
     // ...
 }
 ----
-<1> `LibraryMemberLeaveEvent` is a subclass of `o.a.i.applib.eventbus.ActionDomainEvent`.  The topic of subclassing is discussed in more detail xref:applib:svc:core-domain-api/EventBusService.adoc#event-hierarchy[below].
+<1> `LibraryMemberLeaveEvent` is a subclass of `o.a.i.applib.eventbus.ActionDomainEvent`.  The topic of subclassing is discussed in more detail xref:rg:svc:core-domain-api/EventBusService.adoc#event-hierarchy[below].
 
 Meanwhile, in the `BookRepository` domain service, we subscribe to the event and act upon it.
 For example:
@@ -292,13 +292,13 @@ public class LibraryMember {
 ----
 <1> `LibraryMember.LeaveEvent` could be _any_ class, not just a subclass of `o.a.i.applib.event.ActionDomainEvent`.
 
-In practice we suspect there will be few cases where the programmatic approach is required rather than the declarative approach afforded by xref:applib:ant:Action.adoc#domainEvent[`@Action#domainEvent()`] et al.
+In practice we suspect there will be few cases where the programmatic approach is required rather than the declarative approach afforded by xref:rg:ant:Action.adoc#domainEvent[`@Action#domainEvent()`] et al.
 
 
 
 == Using `WrapperFactory`
 
-An alternative way to cause events to be posted is through the xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`].
+An alternative way to cause events to be posted is through the xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`].
 This is useful when you wish to enforce a (lack-of-) trust boundary between the caller and the callee.
 
 For example, suppose that `Customer#placeOrder(...)` emits a `PlaceOrderEvent`, which is subscribed to by a `ReserveStockSubscriber`.
@@ -349,14 +349,14 @@ The default implementation of this service defines the following configuration p
 `implementation` +
 | `guava`, `axon`, +
 FQCN (`_guava_`)
-|which implementation to use by the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] as the underlying event bus.
+|which implementation to use by the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] as the underlying event bus.
 
 The implementation of `EventBusService` provided by Apache Isis will by default use link:https://code.google.com/p/guava-libraries/[Guava]'s https://code.google.com/p/guava-libraries/wiki/EventBusExplained[`EventBus`] as the underlying in-memory event bus.  Alternatively the link:http://www.axonframework.org/[AxonFramework]'s link:http://www.axonframework.org/docs/2.4/single.html#d5e1489[SimpleEventBus] can be used.
 
 [NOTE]
 .Guava vs Axon, which to use?
 ====
-Guava actually queues up events; they are not guaranteed to be dispatched immediately.  This generally is not problem, but can be for cases where the subscriber may in turn want to post its own events (using xref:applib:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`]).
+Guava actually queues up events; they are not guaranteed to be dispatched immediately.  This generally is not problem, but can be for cases where the subscriber may in turn want to post its own events (using xref:rg:svc:application-layer-api/WrapperFactory.adoc[`WrapperFactory`]).
 
 The Axon `SimpleEventBus`-based implementation on the other hand is fully synchronous; events are dispatched as soon as they are posted.  This works well in all scenarios (that we have tested).
 ====
@@ -368,7 +368,7 @@ The Axon `SimpleEventBus`-based implementation on the other hand is fully synchr
 `Registration` +
 |`true`,`false` +
 (`false`)
-|whether a domain service can register with the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`] after any events have posted. +
+|whether a domain service can register with the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`] after any events have posted. +
 
 Late registration refers to the idea that a domain service can register itself with the `EventBusService` after events have been posted.
 Since domain services are set up at boot time, this almost certainly constitutes a bug in the code and so by default late registration is _not_ allowed.
@@ -415,4 +415,4 @@ isis.services.eventbus.implementation=com.mycompany.isis.MyEventBusServiceImplem
 
 The `EventBusService` is intended for fine-grained publish/subscribe for object-to-object interactions within an Apache Isis domain object model. The event propagation is strictly in-memory, and there are no restrictions on the object acting as the event (it need not be serializable, for example).
 
-The xref:applib:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] meanwhile is intended for coarse-grained publish/subscribe for system-to-system interactions, from Apache Isis to some other system. Here the only events published are those that action invocations (for actions annotated with xref:applib:ant:Action.adoc#publishing[`@Action#publishing()`]) and of changed objects (for objects annotated with xref:applib:ant:DomainObject.adoc#publishing[`@DomainObject#publish [...]
\ No newline at end of file
+The xref:rg:svc:persistence-layer-spi/PublisherService.adoc[`PublisherService`] meanwhile is intended for coarse-grained publish/subscribe for system-to-system interactions, from Apache Isis to some other system. Here the only events published are those that action invocations (for actions annotated with xref:rg:ant:Action.adoc#publishing[`@Action#publishing()`]) and of changed objects (for objects annotated with xref:rg:ant:DomainObject.adoc#publishing[`@DomainObject#publishing()`]).
\ No newline at end of file
diff --git a/core/applib/_adoc/modules/svc/pages/core-domain-api/FactoryService.adoc b/core/applib/_adoc/modules/svc/pages/core-domain-api/FactoryService.adoc
index b2abe3d..e95ff9a 100644
--- a/core/applib/_adoc/modules/svc/pages/core-domain-api/FactoryService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/core-domain-api/FactoryService.adoc
@@ -22,17 +22,17 @@ public interface FactoryService {
 ----
 <1> create a new non-persisted domain entity.  Any services will be automatically injected into the service.
 The class must have a no-arg constructor.
-<2> programmatically instantiate a mixin, for example as annotated with xref:applib:ant:Mixin.adoc[`@Mixin`].
+<2> programmatically instantiate a mixin, for example as annotated with xref:rg:ant:Mixin.adoc[`@Mixin`].
 The class must have a 1-arg constructor of the appropriate type.
 
 
 The object is created in memory, but is not persisted.  The benefits of using this method (instead of simply using the Java `new` keyword) are:
 
-* any services will be injected into the object immediately (otherwise they will not be injected until the frameworkbecomes aware of the object, typically when it is persisted through the xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`]
+* any services will be injected into the object immediately (otherwise they will not be injected until the frameworkbecomes aware of the object, typically when it is persisted through the xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`]
 
 * the default value for any properties (usually as specified by `defaultXxx()` supporting methods) will not be set and the `created()` callback will be called.
 
-The corollary is: if your code never uses `defaultXxx()` or the `created()` callback, then you can just `new` up the object.  The xref:applib:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] service can be used to inject services into the domain object.
+The corollary is: if your code never uses `defaultXxx()` or the `created()` callback, then you can just `new` up the object.  The xref:rg:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] service can be used to inject services into the domain object.
 
 
 
@@ -58,6 +58,6 @@ The core framework provides a default implementation of this service (`o.a.i.cor
 
 == Related Services
 
-The xref:applib:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`] is often used in conjunction with the `FactoryService`, to persist domain objects after they have been instantiated and populated.
+The xref:rg:svc:persistence-layer-api/RepositoryService.adoc[`RepositoryService`] is often used in conjunction with the `FactoryService`, to persist domain objects after they have been instantiated and populated.
 
-An alternative to using the factory service is to simply instantiate the object ("new is the new new") and then use the xref:applib:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] service to inject other domain services into the instantiated object.
\ No newline at end of file
+An alternative to using the factory service is to simply instantiate the object ("new is the new new") and then use the xref:rg:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`] service to inject other domain services into the instantiated object.
\ No newline at end of file
diff --git a/core/applib/_adoc/modules/svc/pages/core-domain-api/Scratchpad.adoc b/core/applib/_adoc/modules/svc/pages/core-domain-api/Scratchpad.adoc
index b99d121..d3c1610 100644
--- a/core/applib/_adoc/modules/svc/pages/core-domain-api/Scratchpad.adoc
+++ b/core/applib/_adoc/modules/svc/pages/core-domain-api/Scratchpad.adoc
@@ -32,13 +32,13 @@ This class (`o.a.i.applib.services.scratchpad.Scratchpad`) is also the implement
 And, as you can see, the service is just a request-scoped wrapper around a `java.util.Map`.
 
 
-To use an alternative implementation, subclass and use xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:applib:svc:intro/overriding-the-services.adoc[introduction] to this guide).
+To use an alternative implementation, subclass and use xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:rg:svc:intro/overriding-the-services.adoc[introduction] to this guide).
 
 
 
 == Usage
 
-The most common use-case is for xref:applib:ant:Action.adoc#invokeOn[bulk] actions that act upon multiple objects in a list.  The (same) `Scratchpad` service is injected into each of these objects, and so they can use pass information.
+The most common use-case is for xref:rg:ant:Action.adoc#invokeOn[bulk] actions that act upon multiple objects in a list.  The (same) `Scratchpad` service is injected into each of these objects, and so they can use pass information.
 
 For example, the Isis addons example https://github.com/isisaddons/isis-app-todoapp/[todoapp] (not ASF) demonstrates how the `Scratchpad` service can be used to calculate the total cost of the selected `ToDoItem`s:
 
@@ -112,4 +112,4 @@ If using the xref:vw:ROOT:about.adoc[Wicket viewer], the `ToDoItemBulkUpdate` vi
 
 == Related Services
 
-The xref:applib:svc:persistence-layer-api/QueryResultsCache.adoc[`QueryResultsCache`] is useful for caching the results of expensive method calls.
+The xref:rg:svc:persistence-layer-api/QueryResultsCache.adoc[`QueryResultsCache`] is useful for caching the results of expensive method calls.
diff --git a/core/applib/_adoc/modules/svc/pages/core-domain-api/UserService.adoc b/core/applib/_adoc/modules/svc/pages/core-domain-api/UserService.adoc
index 153120a..f07b4a4 100644
--- a/core/applib/_adoc/modules/svc/pages/core-domain-api/UserService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/core-domain-api/UserService.adoc
@@ -7,7 +7,7 @@ include::_attributes.adoc[]
 
 The `UserService` allows the domain object to obtain the identity of the user interacting with said object.
 
-If xref:applib:svc:testing/SudoService.adoc[`SudoService`] has been used to temporarily override the user and/or roles, then this service will report the overridden values instead.
+If xref:rg:svc:testing/SudoService.adoc[`SudoService`] has been used to temporarily override the user and/or roles, then this service will report the overridden values instead.
 
 
 
diff --git a/core/applib/_adoc/modules/svc/pages/integration-api.adoc b/core/applib/_adoc/modules/svc/pages/integration-api.adoc
index 6606cc0..b1136e1 100644
--- a/core/applib/_adoc/modules/svc/pages/integration-api.adoc
+++ b/core/applib/_adoc/modules/svc/pages/integration-api.adoc
@@ -22,7 +22,7 @@ It also lists their corresponding implementation, either a default implementatio
 
 
 
-|xref:applib:svc:integration-api/BookmarkService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:integration-api/BookmarkService.adoc[`o.a.i.applib.` +
 `services.bookmark` +
 `BookmarkService`]
 |Convert object reference to a serializable "bookmark", and vice versa.
@@ -37,7 +37,7 @@ It also lists their corresponding implementation, either a default implementatio
 `Contributions`
 
 
-|xref:applib:svc:integration-api/EmailService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:integration-api/EmailService.adoc[`o.a.i.applib.` +
 `services.email` +
 `EmailService`]
 |Send a HTML email, optionally with attachments.
@@ -48,7 +48,7 @@ It also lists their corresponding implementation, either a default implementatio
 
 
 
-|xref:applib:svc:integration-api/JaxbService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:integration-api/JaxbService.adoc[`o.a.i.applib.` +
 `services.jaxb` +
 `JaxbService`]
 |Marshal and unmarshal JAXB-annotated view models to/from XML.
@@ -58,17 +58,17 @@ It also lists their corresponding implementation, either a default implementatio
 |
 
 
-|xref:applib:svc:integration-api/MementoService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:integration-api/MementoService.adoc[`o.a.i.applib.` +
 `services.memento` +
 `MementoService`]
-|Capture a serializable memento of a set of primitives or xref:applib:svc:integration-api/BookmarkService.adoc[bookmarks].  Primarily used internally, eg in support of commands/auditing.
+|Capture a serializable memento of a set of primitives or xref:rg:svc:integration-api/BookmarkService.adoc[bookmarks].  Primarily used internally, eg in support of commands/auditing.
 |`MementoServiceDefault` +
 ``o.a.i.core`` +
 ``isis-core-runtime``
 |
 
 
-|xref:applib:svc:integration-api/XmlSnapshotService.adoc[`o.a.i.applib.` +
+|xref:rg:svc:integration-api/XmlSnapshotService.adoc[`o.a.i.applib.` +
 `services.xmlsnapshot` +
 `XmlSnapshotService`]
 |Generate an XML representation of an object and optionally a graph of related objects.
diff --git a/core/applib/_adoc/modules/svc/pages/integration-api/BookmarkService.adoc b/core/applib/_adoc/modules/svc/pages/integration-api/BookmarkService.adoc
index c1b6414..895264b 100644
--- a/core/applib/_adoc/modules/svc/pages/integration-api/BookmarkService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/integration-api/BookmarkService.adoc
@@ -9,7 +9,7 @@ The `BookmarkService2` domain service (and its various supertypes) provides the
 
 For example, a `Customer` object with:
 
-* an object type of "custmgmt.Customer" (as per xref:applib:ant:DomainObject.adoc#objectType[`DomainObject#objectType()`] or equivalent) , and
+* an object type of "custmgmt.Customer" (as per xref:rg:ant:DomainObject.adoc#objectType[`DomainObject#objectType()`] or equivalent) , and
 * an id=123
 
 could correspond to a `Bookmark` with a string representation of `custmgmt.Customer|123`.
@@ -22,7 +22,7 @@ For example, a `Bookmark` could be converted into a barcode, and then this used
 ====
 
 ``Bookmark``s are used by several other domain services as a means of storing a reference to an arbitrary object
-(a polymorphic relationship).  For example, the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s auditing module's implementation of xref:applib:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`] uses bookmarks to capture the object that is being audited.
+(a polymorphic relationship).  For example, the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s auditing module's implementation of xref:rg:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`] uses bookmarks to capture the object that is being audited.
 
 [TIP]
 ====
@@ -57,7 +57,7 @@ public interface BookmarkService {
 
 The core framework provides a default implementation of this API, namely `o.a.i.core.metamodel.services.bookmarks.BookmarkServiceInternalDefault`
 
-To use an alternative implementation, implement `BookmarkService` interface and use xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:applib:svc:intro/overriding-the-services.adoc[introduction] to this guide).
+To use an alternative implementation, implement `BookmarkService` interface and use xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:rg:svc:intro/overriding-the-services.adoc[introduction] to this guide).
 
 
 
@@ -104,10 +104,10 @@ A more sophisticated implementation could look inside the passed `ev` argument a
 
 == Usage by other services
 
-Bookmarks are used by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module's implementation of  xref:applib:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`], which uses a bookmark to capture the target object on which an action will be invoked subsequently.
+Bookmarks are used by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s command module's implementation of  xref:rg:svc:application-layer-spi/BackgroundCommandService.adoc[`BackgroundCommandService`], which uses a bookmark to capture the target object on which an action will be invoked subsequently.
 
 Bookmarks are also used by the (non-ASF) link:https://platform.incode.org[Incode Platform^]'s auditing module's implementation of
-xref:applib:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`].
+xref:rg:svc:persistence-layer-spi/AuditerService.adoc[`AuditerService`].
 
 
 
diff --git a/core/applib/_adoc/modules/svc/pages/integration-api/EmailService.adoc b/core/applib/_adoc/modules/svc/pages/integration-api/EmailService.adoc
index 277697b..32f7787 100644
--- a/core/applib/_adoc/modules/svc/pages/integration-api/EmailService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/integration-api/EmailService.adoc
@@ -86,7 +86,7 @@ NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.serv
 `email.` +
 `port` +
 | port number (`_587_`)
-|The port number for the SMTP service on the the external SMTP host (used by xref:applib:svc:integration-api/EmailService.adoc[`EmailService`]).  +
+|The port number for the SMTP service on the the external SMTP host (used by xref:rg:svc:integration-api/EmailService.adoc[`EmailService`]).  +
 
 NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
 
@@ -95,7 +95,7 @@ NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.serv
 `email.` +
 `sender.address` +
 | email address
-|The email address to use for sending out email (used by xref:applib:svc:integration-api/EmailService.adoc[`EmailService`]).
+|The email address to use for sending out email (used by xref:rg:svc:integration-api/EmailService.adoc[`EmailService`]).
 *Mandatory*.  +
 
 NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
@@ -105,7 +105,7 @@ NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.serv
 `email.` +
 `sender.hostname` +
 | host (`_smtp.gmail.com_`)
-|The hostname of the external SMTP provider (used by xref:applib:svc:integration-api/EmailService.adoc[`EmailService`]).  +
+|The hostname of the external SMTP provider (used by xref:rg:svc:integration-api/EmailService.adoc[`EmailService`]).  +
 
 NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
 
@@ -114,7 +114,7 @@ NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.serv
 `email.` +
 `sender.password` +
 | email password
-|The corresponding password for the email address to use for sending out email (used by xref:applib:svc:integration-api/EmailService.adoc[`EmailService`]).
+|The corresponding password for the email address to use for sending out email (used by xref:rg:svc:integration-api/EmailService.adoc[`EmailService`]).
 *Mandatory*.  +
 
 NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
@@ -159,7 +159,7 @@ NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.serv
 `tls.enabled`
 |`true`,`false` +
 (`true`)
-|Whether to enable TLS for the email SMTP connection (used by xref:applib:svc:integration-api/EmailService.adoc[`EmailService`]).  +
+|Whether to enable TLS for the email SMTP connection (used by xref:rg:svc:integration-api/EmailService.adoc[`EmailService`]).  +
 
 NB: note that the key is mis-spelt, (`isis.service.email` rather than `isis.services.email`)
 
@@ -171,7 +171,7 @@ Thus, use this service the following properties must be configured:
 * `isis.service.email.sender.address`
 * `isis.service.email.sender.password`
 
-and these properties may optionally be configured (each has a default to use gmail, documented xref:cfg:ROOT:configuring-core.adoc[here]):
+and these properties may optionally be configured (each has a default to use gmail, documented xref:rg:cfg:configuring-core.adoc[here]):
 
 * `isis.service.email.sender.hostname`
 * `isis.service.email.port`
@@ -243,4 +243,4 @@ To ensure that your alternative implementation takes the place of the default im
 
 == Related Services
 
-The email service is used by the xref:applib:svc:presentation-layer-spi/EmailNotificationService.adoc[`EmailNotificationService`] which is, in turn, used by xref:applib:svc:persistence-layer-spi/UserRegistrationService.adoc[`UserRegistrationService`].
\ No newline at end of file
+The email service is used by the xref:rg:svc:presentation-layer-spi/EmailNotificationService.adoc[`EmailNotificationService`] which is, in turn, used by xref:rg:svc:persistence-layer-spi/UserRegistrationService.adoc[`UserRegistrationService`].
\ No newline at end of file
diff --git a/core/applib/_adoc/modules/svc/pages/integration-api/JaxbService.adoc b/core/applib/_adoc/modules/svc/pages/integration-api/JaxbService.adoc
index e5a1536..6a51547 100644
--- a/core/applib/_adoc/modules/svc/pages/integration-api/JaxbService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/integration-api/JaxbService.adoc
@@ -38,20 +38,20 @@ public interface JaxbService {
 
 With respect to the `IsisSchemas` enum: 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
-xref:schema:ROOT:about.adoc[common Isis schemas] (for example the `OidDto` class that represents a reference to
+xref:rg:schema:about.adoc[common Isis schemas] (for example the `OidDto` class that represents a reference to
 a persistent entity).  The enum indicates whether these schemas should be included or excluded from the map.
 
 Apache Isis provides a default implementation of the service, `o.a.i.applib.services.jaxb.JaxbServiceDefault`.
 
-To use an alternative implementation, implement `JaxbService` interface and use xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:applib:svc:intro/overriding-the-services.adoc[introduction] to this guide).
+To use an alternative implementation, implement `JaxbService` interface and use xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:rg:svc:intro/overriding-the-services.adoc[introduction] to this guide).
 
 
 
 == Usage within the framework
 
 This service is provided as a convenience for applications, but is also used internally by the framework to
-xref:applib:ant:XmlRootElement.adoc[`@XmlRootElement`]-annotated
+xref:rg:ant:XmlRootElement.adoc[`@XmlRootElement`]-annotated
 xref:ug:fun:building-blocks.adoc#view-models[view models].  The functionality to download XML and XSD schemas is also
-exposed in the UI through mixins to xref:applib:cms:classes/mixins.adoc#Dto[`Dto`] interface.
+exposed in the UI through mixins to xref:rg:cms:classes/mixins.adoc#Dto[`Dto`] interface.
 
 
diff --git a/core/applib/_adoc/modules/svc/pages/integration-api/MementoService.adoc b/core/applib/_adoc/modules/svc/pages/integration-api/MementoService.adoc
index 7efdd08..1a8a63f 100644
--- a/core/applib/_adoc/modules/svc/pages/integration-api/MementoService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/integration-api/MementoService.adoc
@@ -53,7 +53,7 @@ In fact, the `MementoServiceDefault` implementation does provide a mechanism to
 not part of the `MementoService` public API. Note also that the encoding method is not pluggable.
 ====
 
-To use an alternative implementation, implement `MementoService` interface and use xref:applib:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:applib:svc:intro/overriding-the-services.adoc[introduction] to this guide).
+To use an alternative implementation, implement `MementoService` interface and use xref:rg:ant:DomainServiceLayout.adoc#menuOrder[`@DomainServiceLayout#menuOrder()`] (as explained in the xref:rg:svc:intro/overriding-the-services.adoc[introduction] to this guide).
 
 The types of objects that are supported by the `MementoService` are implementation-specific, but would typically
 include all the usual value types as well as Apache Isis' `Bookmark` class (to represent references to arbitrary
@@ -81,11 +81,11 @@ If using another implementation, the `canSet(...)` method can be used to check i
 
 == Usage
 
-As noted in the introduction, a common use case for this service is in the implementation of the xref:applib:cms:classes/super.adoc#AbstractViewModel[`ViewModel`] interface.
+As noted in the introduction, a common use case for this service is in the implementation of the xref:rg:cms:classes/super.adoc#AbstractViewModel[`ViewModel`] interface.
 
 [TIP]
 ====
-Rather than implementing `ViewModel`, it's usually easier to annotate your view models with xref:applib:ant:ViewModel.adoc[`@ViewModel`] (or equivalently xref:applib:ant:DomainObject.adoc#nature[`@DomainObject#nature=EXTERNAL_ENTITY`] or xref:applib:ant:DomainObject.adoc#nature[`@DomainObject#nature=INMEMORY_ENTITY`].
+Rather than implementing `ViewModel`, it's usually easier to annotate your view models with xref:rg:ant:ViewModel.adoc[`@ViewModel`] (or equivalently xref:rg:ant:DomainObject.adoc#nature[`@DomainObject#nature=EXTERNAL_ENTITY`] or xref:rg:ant:DomainObject.adoc#nature[`@DomainObject#nature=INMEMORY_ENTITY`].
 ====
 
 For example, suppose you were implementing a view model that represents an external entity in a SOAP web service.  To access this service the view model needs to store (say) the hostname, port number and an id to the object.
diff --git a/core/applib/_adoc/modules/svc/pages/integration-api/XmlSnapshotService.adoc b/core/applib/_adoc/modules/svc/pages/integration-api/XmlSnapshotService.adoc
index 7f7a01e..2c6c714 100644
--- a/core/applib/_adoc/modules/svc/pages/integration-api/XmlSnapshotService.adoc
+++ b/core/applib/_adoc/modules/svc/pages/integration-api/XmlSnapshotService.adoc
@@ -195,13 +195,13 @@ The core framework provides an implementation of this service (`o.a.i.core.runti
 
 == Related Services
 
-The xref:applib:svc:integration-api/BookmarkService.adoc[`BookmarkService`] provides a mechanism for obtaining a string representations of a single domain object.
+The xref:rg:svc:integration-api/BookmarkService.adoc[`BookmarkService`] provides a mechanism for obtaining a string representations of a single domain object.
 
-The xref:applib:svc:integration-api/MementoService.adoc[`MementoService`] also provides a mechanism for generating string representations of domain objects.
+The xref:rg:svc:integration-api/MementoService.adoc[`MementoService`] also provides a mechanism for generating string representations of domain objects.
 
-The xref:applib:svc:integration-api/JaxbService.adoc[`JaxbService`] is a simple wrapper around
+The xref:rg:svc:integration-api/JaxbService.adoc[`JaxbService`] is a simple wrapper around
 standard JAXB functionality for generating both XMLs and XSDs from JAXB-annotated classes.  Note that there is built-in support for JAXB classes (ie annotated with
-xref:applib:ant:XmlRootElement.adoc[`@XmlRootElement`]) to be used as view models.
+xref:rg:ant:XmlRootElement.adoc[`@XmlRootElement`]) to be used as view models.
 
 
 
diff --git a/core/applib/_adoc/modules/svc/pages/intro.adoc b/core/applib/_adoc/modules/svc/pages/intro.adoc
index 92592e8..cd9d3c6 100644
--- a/core/applib/_adoc/modules/svc/pages/intro.adoc
+++ b/core/applib/_adoc/modules/svc/pages/intro.adoc
@@ -15,9 +15,9 @@ The diagram below shows these categories:
 image::reference-services/categories.png[width="600px",link="{imagesdir}/reference-services/categories.png"]
 
 
-A small number of domain services can be considered both API and SPI; a good example is the xref:applib:svc:integration-api/EmailService.adoc[`EmailService`] that is of direct use for domain objects wishing to send out emails, but is also used by the framework to support the xref:vw:ROOT:features/user-registration.adoc[user registration] functionality supported by the xref:vw:ROOT:about.adoc[Wicket viewer].
-The same is true of the xref:applib:svc:core-domain-api/EventBusService.adoc[`EventBusService`]; this can be used by domain objects to broadcast arbitrary events, but is also used by the framework to automatically emit events for
-xref:applib:ant:Action.adoc#domainEvent[`@Action#domainEvent()`] etc.
+A small number of domain services can be considered both API and SPI; a good example is the xref:rg:svc:integration-api/EmailService.adoc[`EmailService`] that is of direct use for domain objects wishing to send out emails, but is also used by the framework to support the xref:vw:ROOT:features/user-registration.adoc[user registration] functionality supported by the xref:vw:ROOT:about.adoc[Wicket viewer].
+The same is true of the xref:rg:svc:core-domain-api/EventBusService.adoc[`EventBusService`]; this can be used by domain objects to broadcast arbitrary events, but is also used by the framework to automatically emit events for
+xref:rg:ant:Action.adoc#domainEvent[`@Action#domainEvent()`] etc.
 
 For these hybrid services we have categorized the service as an "API" service.
 This chapter therefore contains only the strictly SPI services.
@@ -68,9 +68,9 @@ public class Customer {
 For objects that are already persisted, the service is automatically injected just after the object is rehydrated by
 JDO/DataNucleus.
 
-For transient objects (instantiated programmatically), the xref:applib:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(...)`] or the xref:applib:svc:core-domain-api/RepositoryService.adoc[`RepositoryService#instantiate(...)`]'s will automatically inject the services.
+For transient objects (instantiated programmatically), the xref:rg:svc:core-domain-api/FactoryService.adoc[`FactoryService#instantiate(...)`] or the xref:rg:svc:core-domain-api/RepositoryService.adoc[`RepositoryService#instantiate(...)`]'s will automatically inject the services.
 
-Alternatively the object can be instantiated simply using `new`, then services injected using xref:applib:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`]'s ``injectServicesInto(...)`` method.
+Alternatively the object can be instantiated simply using `new`, then services injected using xref:rg:svc:metadata-api/ServiceRegistry.adoc[`ServiceRegistry`]'s ``injectServicesInto(...)`` method.
 
... 3583 lines suppressed ...