docs: private void checkLocalSymbolTablePlacement(IonValue nextTopLevelValue)
      {
          // Check that nextTopLevelValue is indeed a top-level value
          assert nextTopLevelValue == nextTopLevelValue.topLevelValue();
  
          SymbolTable nextSymTab = nextTopLevelValue.getSymbolTable();
  
          if (nextSymTab == null) {
              throw new IllegalStateException(
                        "Binary reverse encoder isn't using LiteImpl");
          }
  
          if (mySymbolTable == null) {
              // There is no current symtab, i.e. there wasn't any TLV encoded
              // before this, return and continue encoding next TLV.
              mySymbolTable = nextSymTab;
              return;
          }
  
          assert nextSymTab.isLocalTable() || nextSymTab.isSystemTable();
  
          if (nextSymTab.isLocalTable())
          {
              if (mySymbolTable.isSystemTable())
              {
                  writeBytes(BINARY_VERSION_MARKER_1_0);
                  mySymbolTable = nextSymTab;
              }
              // mySymbolTable is local
              else if (nextSymTab != mySymbolTable)
              {
                  writeLocalSymbolTable(mySymbolTable);
                  mySymbolTable = nextSymTab;
              }
          }
          // nextSymTab is system
          else if (mySymbolTable.isSystemTable() &&
                  !mySymbolTable.getIonVersionId().equals(nextSymTab.getIonVersionId()))
          {
              writeBytes(BINARY_VERSION_MARKER_1_0);
              mySymbolTable = nextSymTab;
          }
      }