package methods // // Server -> client SyncRunningMetroInfos entry. // Field order is authoritative from RPCSerializeAuto.lua (Auto.WriteMetroClientInfo): // { int32 Id; uint32 LineId; float ElapsedTime; bool IsFinalTrain; } // The corresponding reader (RPCDeserializeAuto, SyncRunningMetroInfos) reads the items through // Base.ReadComplex, so this contract must stay complex (no Inline => TypeMark 0xFF per item). // MetroClientInfo only carries "which line + how long it has been running": the client derives the // carriage position and door/gate animation from the baked MetroPath of that line plus ElapsedTime. // // // Server -> client SyncHideMetroStates entry (RPCSerializeAuto Auto.WriteMetroHideArea): // { uint32 Uid; bool Hide; UXVector3 Center; float Radius; }. //