docs: private int generateVarDataEncodeDecode(
          final List<Token> tokens,
          final String typeName,
          final StringBuilder encode,
          final StringBuilder decode,
          final StringBuilder rc,
          final int currentOffset)
      {
          final Token signalToken = tokens.get(0);
          final char varName = Character.toLowerCase(typeName.charAt(0));
          final String propertyName = formatPropertyName(signalToken.name());
  
          // Offset handling
          final int gap = Math.max(signalToken.offset() - currentOffset, 0);
          encode.append(generateEncodeOffset(gap, ""));
          decode.append(generateDecodeOffset(gap, ""));
  
          final String golangTypeForLength = golangTypeName(tokens.get(2).encoding().primitiveType());
          final String golangTypeForLengthMarshal = golangMarshalType(tokens.get(2).encoding().primitiveType());
          final String golangTypeForData = golangTypeName(tokens.get(3).encoding().primitiveType());
  
          generateCharacterEncodingRangeCheck(rc, varName + "." + propertyName, tokens.get(3));
  
          encode.append(String.format(
              "\tif err := _m.Write%1$s(_w, %2$s(len(%3$s.%4$s))); err != nil {\n" +
              "\t\treturn err\n" +
              "\t}\n" +
              "\tif err := _m.WriteBytes(_w, %3$s.%4$s); err != nil {\n" +
              "\t\treturn err\n" +
              "\t}\n",
              golangTypeForLengthMarshal,
              golangTypeForLength,
              varName,
              propertyName));
  
          decode.append(String.format(
              "\n" +
              "\tif %1$c.%2$sInActingVersion(actingVersion) {\n" +
              "\t\tvar %2$sLength %4$s\n" +
              "\t\tif err := _m.Read%3$s(_r, &%2$sLength); err != nil {\n" +
              "\t\t\treturn err\n" +
              "\t\t}\n" +
              "\t\tif cap(%1$c.%2$s) < int(%2$sLength) {\n" +
              "\t\t\t%1$s.%2$s = make([]%5$s, %2$sLength)\n" +
              "\t\t}\n" +
              "\t\tif err := _m.ReadBytes(_r, %1$c.%2$s); err != nil {\n" +
              "\t\t\treturn err\n" +
              "\t\t}\n" +
              "\t}\n",
              varName,
              propertyName,
              golangTypeForLengthMarshal,
              golangTypeForLength,
              golangTypeForData));
  
          return gap;
      }