33        private array $valueIndexes
 
 
   36    public function getName() : string{ return $this->name; }
 
   44    public static function read(ByteBufferReader $in, 
int $valueListSize) : self{
 
   47        $size = VarInt::readUnsignedInt($in);
 
   49        for($i = 0; $i < $size; $i++){
 
   50            $valueIndexes[] = match(
true){
 
   51                $valueListSize < 256 => Byte::readUnsigned($in),
 
   52                $valueListSize < 65536 => LE::readUnsignedShort($in),
 
   53                default => LE::readUnsignedInt($in)
 
   57        return new self($name, $valueIndexes);
 
   60    public function write(ByteBufferWriter $out, 
int $valueListSize) : void{
 
   62        VarInt::writeUnsignedInt($out, count($this->valueIndexes));
 
   64        foreach($this->valueIndexes as $index){
 
   66                $valueListSize < 256 => Byte::writeUnsigned($out, $index),
 
   67                $valueListSize < 65536 => LE::writeUnsignedShort($out, $index),
 
   68                default => LE::writeUnsignedInt($out, $index)