docs: public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
          final ModelNode opAddr = operation.get(OP_ADDR);
          final PathAddress address = PathAddress.pathAddress(opAddr);
          final String name = address.getLastElement().getValue();
  
          final Resource deploymentResource = context.readResourceFromRoot(PathAddress.pathAddress(PathElement.pathElement(DEPLOYMENT, name)));
          ModelNode deployment = deploymentResource.getModel();
  
          for (ModelNode content : deployment.require(CONTENT).asList()) {
              if ((content.hasDefined(CONTENT_HASH.getName()))) {
                  CONTENT_HASH.validateOperation(content);
                  // Ensure the local repo has the files
                  ContentReference reference = ModelContentReference.fromModelAddress(address, CONTENT_HASH.resolveModelAttribute(context, content).asBytes());
                  fileRepository.getDeploymentFiles(reference);
                  if (contentRepository != null) {
                      contentRepository.addContentReference(reference);
                  }
              }
          }
  
          final Resource resource = context.createResource(PathAddress.EMPTY_ADDRESS);
          final ModelNode subModel = resource.getModel();
  
          for (AttributeDefinition def : SERVER_GROUP_ADD_ATTRIBUTES) {
              def.validateAndSet(operation, subModel);
          }
          if (!RUNTIME_NAME_NILLABLE.resolveModelAttribute(context, subModel).isDefined()) {
              RUNTIME_NAME_NILLABLE.validateAndSet(deployment, subModel);
          }
  
          // Add a step to validate uniqueness of runtime names
          context.addStep(new OperationStepHandler() {
              @Override
              public void execute(OperationContext context, ModelNode operation) throws OperationFailedException {
                  validateRuntimeNames(name, context, address);
              }
          }, OperationContext.Stage.MODEL);
      }