code: public void commandsForDomainModel(final Object root, final CommandsForDomainModelCallback callback) {
          final State state = createCommandList(new WithCommandType() {
              @Override
              public void invoke(final State state) {
                  createObservableObject(root, state);
              }
          }, false);
  
          final SetRootElement msg = new SetRootElement();
          msg.setRootElementId(objectRegistry.getIdOrFail(root));
          // prepend it to the ClearReferences command
          state.commands.add(state.commands.size() - 1, msg);
  
          callback.commandsReady(state.commands);
      }
docs: @see MetaModel#commandsForDomainModel()
  
  @param root
  The root object of the domain model.
  @param callback
  The callback that takes the commands necessary to rebuild the domain model at it's current state.