1
0
mirror of https://github.com/Mojang/bedrock-protocol-docs.git synced 2025-05-01 16:14:09 +00:00

Protocol for r/21_u3 NetworkProtocolVersion 729

This commit is contained in:
Chris Spyropoulos
2024-08-21 16:08:41 -04:00
parent 4204a7c222
commit 04016f5908
57 changed files with 2278 additions and 1809 deletions

@ -3,4 +3,4 @@
We share our Network Protocol with server partners so they can write their own Minecraft servers with their own code. This documentation compiles a series of tree diagrams that define the structure of the packets used by the Protocol, as well as related classes and enums.
Protocol is subject to change release over release.
Current Release - r/21_u2
Current Release - r/21_u3

177
changelog_729_8_20_24.md Normal file

@ -0,0 +1,177 @@
# Minecraft Network Protocol Docs 08/20/2024
For r21u3, Network Protocol Version 729
## New Packets
CameraAimAssist:
* Added mViewAngle (Vec2)
* Added mDistance (float)
* Added mTargetMode (enum CameraAimAssist::TargetMode)
* Added mAction (enum CameraAimAssist::Action)
ContainerRegistryCleanup:
* Added mRemovedContainers (std::vector<FullContainerName>)
## Packet Changes
EmotePacket:
* Added mEmoteTicks (uint32_t)
InventoryContentPacket:
* Added mFullContainerName (FullContainerName)
* Added mDynamicContainerSize (uint32_t)
* Removed mDynamicContainerId (uint32_t)
InventorySlotPacket:
* Added mFullContainerName (FullContainerName)
* Added mDynamicContainerSize (uint32_t)
* Removed mDynamicContainerId (uint32_t)
ResourcePacksInfoPacket:
* Removed mHasExceptions (bool)
* Removed mForceServerPacksEnabled (bool)
* Removed mBehaviorPacks (std::vector<PackInfoData>)
TransferPacket:
* Added mReloadWorld (bool)
UpdateAttributesPacket:
* Added mDefaultMinValue (float)
* Added mDefaultMaxValue (float)
## Additional Types Added
std::optional<Vec3>
## Additional Types Changed
CameraPreset:
* Added mCameraRotationSpeed (brstd::optional<float>)
* Added mSnapToTarget (brstd::optional<bool>)
* Added mEntityOffset (std::optional<Vec3>)
FullContainerName:
* Added mDynamicId (brstd::optional<uint32_t>)
* Removed mDynamicId (DynamicId)
## New Enums
CameraAimAssistPacket::Action:
* Added Set(0)
* Added Clear(1)
CameraAimAssistPacket::TargetMode:
* Added Angle(0)
* Added Distance(1)
## Enum Changes
ActorDamageCause:
* Added MaceSmash(34)
* Displaced All
Connection::DisconnectFailReason:
* Added DeepLinkTryingToOpenDemoWorldWhileSignedIn(117)
ContainerID:
* Added CONTAINER_ID_REGISTRY(125)
* Added CONTAINER_ID_REGISTRY_INVENTORY(126)
Enchant::Type:
* Enum names have changed, but not necessarily their behavior.
* Added Protection(0)
* Added FireProtection(1)
* Added FeatherFalling(2)
* Added BlastProtection(3)
* Added ProjectileProtection(4)
* Added Thorns(5)
* Added Respiration(6)
* Added DepthStrider(7)
* Added AquaAffinity(8)
* Added Sharpness(9)
* Added Smite(10)
* Added BaneOfArthropods(11)
* Added Knockback(12)
* Added FireAspect(13)
* Added Looting(14)
* Added Efficiency(15)
* Added SilkTouch(16)
* Added Unbreaking(17)
* Added Fortune(18)
* Added Power(19)
* Added Punch(20)
* Added Flame(21)
* Added Infinity(22)
* Added LuckOfTheSea(23)
* Added Lure(24)
* Added CurseOfBinding(27)
* Added CurseOfVanishing(28)
* Added Impaling(29)
* Added Riptide(30)
* Added Loyalty(31)
* Added Channeling(32)
* Added Multishot(33)
* Added Piercing(34)
* Added QuickCharge(35)
* Removed ArmorAll
* Removed ArmorFire
* Removed ArmorFall
* Removed ArmorExplosive
* Removed ArmorProjectile
* Removed ArmorThorns
* Removed WaterBreath
* Removed WaterSpeed
* Removed WaterAffinity
* Removed WeaponDamage
* Removed WeaponUndead
* Removed WeaponArthropod
* Removed WeaponKnockback
* Removed WeaponFire
* Removed WeaponLoot
* Removed MiningEfficiency
* Removed MiningSilkTouch
* Removed MiningDurability
* Removed MiningLoot
* Removed BowDamage
* Removed BowKnockback
* Removed BowFire
* Removed BowInfinity
* Removed FishingLoot
* Removed FishingLure
* Removed CurseBinding
* Removed CurseVanishing
* Removed TridentImpaling
* Removed TridentRiptide
* Removed TridentLoyalty
* Removed TridentChanneling
* Removed CrossbowMultishot
* Removed CrossbowPiercing
* Removed CrossbowQuickCharge
MinecraftPacketIds:
* Added CameraAimAssist(316)
* Added ContainerRegistryCleanup(317)
* Displaced EndId
PlayerActionType:
* Added DEPRECATED_StartSpinAttack(23)
* Removed StartSpinAttack
PlayerAuthInputPacket::InputData:
* Added HorizontalCollision(49)
* Added VerticalCollision(50)
* Added DownLeft(51)
* Added DownRight(52)
* Displaced INPUT_NUM
Rotation:
* Added Clockwise90(Rotate90)
* Added Clockwise180(Rotate180)
* Added CounterClockwise90(Rotate270)

@ -0,0 +1,24 @@
digraph "CameraAimAssistPacket" {
rankdir = LR
0
0 -> 1
1 -> 2
0 -> 3
3 -> 4
0 -> 5
5 -> 6
0 -> 7
7 -> 8
0 [label="CameraAimAssistPacket",comment="name: \"CameraAimAssistPacket\", typeName: \"\", id: 0, branchId: 316, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="View Angle",comment="name: \"View Angle\", typeName: \"Vec2\", id: 1, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
2 [label="Vec2",comment="name: \"Vec2\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
3 [label="Distance",comment="name: \"Distance\", typeName: \"\", id: 3, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
4 [label="float",comment="name: \"float\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
5 [label="Target Mode",comment="name: \"Target Mode\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
6 [label="byte",comment="name: \"byte\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
7 [label="Action",comment="name: \"Action\", typeName: \"\", id: 7, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
8 [label="byte",comment="name: \"byte\", typeName: \"\", id: 8, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;8}
}

@ -16,13 +16,19 @@ rankdir = LR
8 -> 24
24 -> 25
8 -> 26
26 -> 30
8 -> 31
31 -> 32
26 -> 27
8 -> 28
28 -> 32
8 -> 33
33 -> 37
8 -> 38
38 -> 42
8 -> 43
43 -> 44
8 -> 45
45 -> 49
8 -> 50
50 -> 51
8 [label="CameraPreset",comment="name: \"CameraPreset\", typeName: \"\", id: 8, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
9 [label="Name",comment="name: \"Name\", typeName: \"\", id: 9, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
@ -39,14 +45,20 @@ rankdir = LR
23 [label="std::optional<float>",comment="name: \"std::optional<float>\", typeName: \"\", id: 23, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
24 [label="Rot Y",comment="name: \"Rot Y\", typeName: \"std::optional<float>\", id: 24, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
25 [label="std::optional<float>",comment="name: \"std::optional<float>\", typeName: \"\", id: 25, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
26 [label="View Offset",comment="name: \"View Offset\", typeName: \"std::optional<class Vec2>\", id: 26, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
30 [label="std::optional<class Vec2>",comment="name: \"std::optional<class Vec2>\", typeName: \"\", id: 30, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
31 [label="Radius",comment="name: \"Radius\", typeName: \"std::optional<float>\", id: 31, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
32 [label="std::optional<float>",comment="name: \"std::optional<float>\", typeName: \"\", id: 32, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
33 [label="Listener",comment="name: \"Listener\", typeName: \"std::optional<enum CameraPreset::AudioListener>\", id: 33, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
37 [label="std::optional<enum CameraPreset::AudioListener>",comment="name: \"std::optional<enum CameraPreset::AudioListener>\", typeName: \"\", id: 37, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
38 [label="Player Effects",comment="name: \"Player Effects\", typeName: \"std::optional<bool>\", id: 38, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
42 [label="std::optional<bool>",comment="name: \"std::optional<bool>\", typeName: \"\", id: 42, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;10;12;17;19;21;23;25;30;32;37;42}
26 [label="Rotation Speed",comment="name: \"Rotation Speed\", typeName: \"std::optional<float>\", id: 26, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
27 [label="std::optional<float>",comment="name: \"std::optional<float>\", typeName: \"\", id: 27, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
28 [label="Snap to Target",comment="name: \"Snap to Target\", typeName: \"std::optional<bool>\", id: 28, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
32 [label="std::optional<bool>",comment="name: \"std::optional<bool>\", typeName: \"\", id: 32, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
33 [label="View Offset",comment="name: \"View Offset\", typeName: \"std::optional<class Vec2>\", id: 33, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
37 [label="std::optional<class Vec2>",comment="name: \"std::optional<class Vec2>\", typeName: \"\", id: 37, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
38 [label="Entity Offset",comment="name: \"Entity Offset\", typeName: \"std::optional<class Vec3>\", id: 38, branchId: 0, recurseId: -1, attributes: 256, notes: \"Changing the camera's pivot point from the center of the entity\""];
42 [label="std::optional<class Vec3>",comment="name: \"std::optional<class Vec3>\", typeName: \"\", id: 42, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
43 [label="Radius",comment="name: \"Radius\", typeName: \"std::optional<float>\", id: 43, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
44 [label="std::optional<float>",comment="name: \"std::optional<float>\", typeName: \"\", id: 44, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
45 [label="Listener",comment="name: \"Listener\", typeName: \"std::optional<enum CameraPreset::AudioListener>\", id: 45, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
49 [label="std::optional<enum CameraPreset::AudioListener>",comment="name: \"std::optional<enum CameraPreset::AudioListener>\", typeName: \"\", id: 49, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
50 [label="Player Effects",comment="name: \"Player Effects\", typeName: \"std::optional<bool>\", id: 50, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
51 [label="std::optional<bool>",comment="name: \"std::optional<bool>\", typeName: \"\", id: 51, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;10;12;17;19;21;23;25;27;32;37;42;44;49;51}
}

@ -6,7 +6,7 @@ rankdir = LR
4 -> 5
3 -> 6
6 -> 7
7 -> 43
7 -> 52
2 [label="CameraPresets",comment="name: \"CameraPresets\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
3 [label="Presets",comment="name: \"Presets\", typeName: \"\", id: 3, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
@ -14,7 +14,7 @@ rankdir = LR
5 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
6 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
7 [label="Camera Preset",comment="name: \"Camera Preset\", typeName: \"CameraPreset\", id: 7, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
43 [label="CameraPreset",comment="name: \"CameraPreset\", typeName: \"\", id: 43, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;5;43}
52 [label="CameraPreset",comment="name: \"CameraPreset\", typeName: \"\", id: 52, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;5;52}
}

@ -2,11 +2,11 @@ digraph "CameraPresetsPacket" {
rankdir = LR
0
0 -> 1
1 -> 44
1 -> 53
0 [label="CameraPresetsPacket",comment="name: \"CameraPresetsPacket\", typeName: \"\", id: 0, branchId: 198, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Camera Presets",comment="name: \"Camera Presets\", typeName: \"CameraPresets\", id: 1, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
44 [label="CameraPresets",comment="name: \"CameraPresets\", typeName: \"\", id: 44, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;44}
53 [label="CameraPresets",comment="name: \"CameraPresets\", typeName: \"\", id: 53, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;53}
}

@ -8,7 +8,7 @@ rankdir = LR
0 -> 5
5 -> 6
0 -> 7
7 -> 11
7 -> 8
0 [label="ChangeDimensionPacket",comment="name: \"ChangeDimensionPacket\", typeName: \"\", id: 0, branchId: 61, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Dimension ID",comment="name: \"Dimension ID\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 0, notes: \"Currently supported: (0 -> Overworld, 1 -> Nether, 2 -> The End, 3 -> Undefined)\""];
@ -18,7 +18,7 @@ rankdir = LR
5 [label="Respawn",comment="name: \"Respawn\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
6 [label="bool",comment="name: \"bool\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
7 [label="Loading Screen Id",comment="name: \"Loading Screen Id\", typeName: \"std::optional<unsigned int>\", id: 7, branchId: 0, recurseId: -1, attributes: 256, notes: \"Leave empty if there is no loading screen expected on the client. This id needs to be unique and not conflict with any other active loading screens. This is implemented with an unsigned integer incrementing forever, and that is expected to not have collisions when it wraps around back to 0 if that could be a possibility.\""];
11 [label="std::optional<unsigned int>",comment="name: \"std::optional<unsigned int>\", typeName: \"\", id: 11, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;11}
8 [label="std::optional<unsigned int>",comment="name: \"std::optional<unsigned int>\", typeName: \"\", id: 8, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;8}
}

@ -0,0 +1,20 @@
digraph "ContainerRegistryCleanupPacket" {
rankdir = LR
0
0 -> 1
1 -> 2
2 -> 3
1 -> 4
4 -> 5
5 -> 6
0 [label="ContainerRegistryCleanupPacket",comment="name: \"ContainerRegistryCleanupPacket\", typeName: \"\", id: 0, branchId: 317, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Removed Containers",comment="name: \"Removed Containers\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
2 [label="Array Size",comment="name: \"Array Size\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
3 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 3, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
4 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
5 [label="Full Container Name",comment="name: \"Full Container Name\", typeName: \"FullContainerName\", id: 5, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
6 [label="FullContainerName",comment="name: \"FullContainerName\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;3;6}
}

@ -11,18 +11,22 @@ rankdir = LR
7 -> 8
0 -> 9
9 -> 10
0 -> 11
11 -> 12
0 [label="EmotePacket",comment="name: \"EmotePacket\", typeName: \"\", id: 0, branchId: 138, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Actor Runtime Id",comment="name: \"Actor Runtime Id\", typeName: \"ActorRuntimeID\", id: 1, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
2 [label="ActorRuntimeID",comment="name: \"ActorRuntimeID\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
3 [label="Emote Id",comment="name: \"Emote Id\", typeName: \"\", id: 3, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
4 [label="string",comment="name: \"string\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
5 [label="Xuid",comment="name: \"Xuid\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
6 [label="string",comment="name: \"string\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
7 [label="PlatformId",comment="name: \"PlatformId\", typeName: \"\", id: 7, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
5 [label="Emote Length Ticks",comment="name: \"Emote Length Ticks\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
6 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
7 [label="Xuid",comment="name: \"Xuid\", typeName: \"\", id: 7, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
8 [label="string",comment="name: \"string\", typeName: \"\", id: 8, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
9 [label="Flags",comment="name: \"Flags\", typeName: \"\", id: 9, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
10 [label="byte",comment="name: \"byte\", typeName: \"\", id: 10, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;8;10}
9 [label="PlatformId",comment="name: \"PlatformId\", typeName: \"\", id: 9, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
10 [label="string",comment="name: \"string\", typeName: \"\", id: 10, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
11 [label="Flags",comment="name: \"Flags\", typeName: \"\", id: 11, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
12 [label="byte",comment="name: \"byte\", typeName: \"\", id: 12, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;8;10;12}
}

@ -1,16 +1,16 @@
digraph "FullContainerName" {
rankdir = LR
101
101 -> 102
102 -> 103
101 -> 104
104 -> 105
10
10 -> 11
11 -> 12
10 -> 13
13 -> 17
101 [label="FullContainerName",comment="name: \"FullContainerName\", typeName: \"\", id: 101, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
102 [label="Container Name",comment="name: \"Container Name\", typeName: \"\", id: 102, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
103 [label="byte",comment="name: \"byte\", typeName: \"\", id: 103, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
104 [label="ID if container is dynamic, 0 otherwise.",comment="name: \"ID if container is dynamic, 0 otherwise.\", typeName: \"\", id: 104, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
105 [label="unsigned int",comment="name: \"unsigned int\", typeName: \"\", id: 105, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;103;105}
10 [label="FullContainerName",comment="name: \"FullContainerName\", typeName: \"\", id: 10, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
11 [label="Container Name",comment="name: \"Container Name\", typeName: \"\", id: 11, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
12 [label="byte",comment="name: \"byte\", typeName: \"\", id: 12, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
13 [label="Optional Dynamic Container ID",comment="name: \"Optional Dynamic Container ID\", typeName: \"std::optional<unsigned int>\", id: 13, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
17 [label="std::optional<unsigned int>",comment="name: \"std::optional<unsigned int>\", typeName: \"\", id: 17, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;12;17}
}

@ -10,7 +10,9 @@ rankdir = LR
6 -> 7
7 -> 8
0 -> 9
9 -> 10
9 -> 18
0 -> 19
19 -> 20
0 [label="InventoryContentPacket",comment="name: \"InventoryContentPacket\", typeName: \"\", id: 0, branchId: 49, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Inventory Id",comment="name: \"Inventory Id\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
@ -21,8 +23,10 @@ rankdir = LR
6 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
7 [label="Item stack",comment="name: \"Item stack\", typeName: \"NetworkItemStackDescriptor\", id: 7, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
8 [label="NetworkItemStackDescriptor",comment="name: \"NetworkItemStackDescriptor\", typeName: \"\", id: 8, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
9 [label="ID of the particular container instance if this is a dynamic container, otherwise zero",comment="name: \"ID of the particular container instance if this is a dynamic container, otherwise zero\", typeName: \"\", id: 9, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
10 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 10, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;5;8;10}
9 [label="Full Container Name",comment="name: \"Full Container Name\", typeName: \"FullContainerName\", id: 9, branchId: 0, recurseId: -1, attributes: 256, notes: \"Used to reference a specific container within a given screen container context.\""];
18 [label="FullContainerName",comment="name: \"FullContainerName\", typeName: \"\", id: 18, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
19 [label="Dynamic Container Size",comment="name: \"Dynamic Container Size\", typeName: \"\", id: 19, branchId: 0, recurseId: -1, attributes: 0, notes: \"Size of the particular container instance if this is a dynamic container, otherwise zero.\""];
20 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 20, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;5;8;18;20}
}

@ -9,16 +9,20 @@ rankdir = LR
5 -> 6
0 -> 7
7 -> 8
0 -> 9
9 -> 10
0 [label="InventorySlotPacket",comment="name: \"InventorySlotPacket\", typeName: \"\", id: 0, branchId: 50, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Container ID",comment="name: \"Container ID\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
2 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
3 [label="Slot",comment="name: \"Slot\", typeName: \"\", id: 3, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
4 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
5 [label="ID of the container if it is dynamic, zero otherwise",comment="name: \"ID of the container if it is dynamic, zero otherwise\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
6 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
7 [label="Item",comment="name: \"Item\", typeName: \"NetworkItemStackDescriptor\", id: 7, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
8 [label="NetworkItemStackDescriptor",comment="name: \"NetworkItemStackDescriptor\", typeName: \"\", id: 8, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;8}
5 [label="Full Container Name",comment="name: \"Full Container Name\", typeName: \"FullContainerName\", id: 5, branchId: 0, recurseId: -1, attributes: 256, notes: \"Used to reference a specific container within a given screen container context\""];
6 [label="FullContainerName",comment="name: \"FullContainerName\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
7 [label="Dynamic Container Size",comment="name: \"Dynamic Container Size\", typeName: \"\", id: 7, branchId: 0, recurseId: -1, attributes: 0, notes: \"Size of the container if it is dynamic, zero otherwise\""];
8 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 8, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
9 [label="Item",comment="name: \"Item\", typeName: \"NetworkItemStackDescriptor\", id: 9, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
10 [label="NetworkItemStackDescriptor",comment="name: \"NetworkItemStackDescriptor\", typeName: \"\", id: 10, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;8;10}
}

@ -2,19 +2,19 @@ digraph "ItemStackRequestSlotInfo" {
rankdir = LR
99
99 -> 100
100 -> 106
99 -> 107
107 -> 108
99 -> 109
109 -> 110
100 -> 101
99 -> 102
102 -> 103
99 -> 104
104 -> 105
99 [label="ItemStackRequestSlotInfo",comment="name: \"ItemStackRequestSlotInfo\", typeName: \"\", id: 99, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
100 [label="Full container name.",comment="name: \"Full container name.\", typeName: \"FullContainerName\", id: 100, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
106 [label="FullContainerName",comment="name: \"FullContainerName\", typeName: \"\", id: 106, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
107 [label="Slot",comment="name: \"Slot\", typeName: \"\", id: 107, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
108 [label="byte",comment="name: \"byte\", typeName: \"\", id: 108, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
109 [label="Raw Id (32 bit signed)",comment="name: \"Raw Id (32 bit signed)\", typeName: \"\", id: 109, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
110 [label="varint",comment="name: \"varint\", typeName: \"\", id: 110, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;106;108;110}
101 [label="FullContainerName",comment="name: \"FullContainerName\", typeName: \"\", id: 101, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
102 [label="Slot",comment="name: \"Slot\", typeName: \"\", id: 102, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
103 [label="byte",comment="name: \"byte\", typeName: \"\", id: 103, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
104 [label="Raw Id (32 bit signed)",comment="name: \"Raw Id (32 bit signed)\", typeName: \"\", id: 104, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
105 [label="varint",comment="name: \"varint\", typeName: \"\", id: 105, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;101;103;105}
}

@ -48,33 +48,33 @@ rankdir = LR
93 -> 96
96 -> 97
93 -> 98
98 -> 111
93 -> 112
98 -> 106
93 -> 107
107 -> 108
84 -> 109
109 -> 110
110 -> 111
109 -> 112
112 -> 113
84 -> 114
114 -> 115
113 -> 114
84 -> 115
115 -> 116
114 -> 117
0 -> 117
117 -> 118
118 -> 119
84 -> 120
117 -> 120
120 -> 121
0 -> 122
122 -> 123
123 -> 124
122 -> 125
125 -> 126
126 -> 168
0 -> 169
169 -> 170
121 -> 163
0 -> 164
164 -> 165
165 -> 166
164 -> 167
167 -> 168
168 -> 169
167 -> 170
170 -> 171
169 -> 172
0 -> 172
172 -> 173
173 -> 174
172 -> 175
175 -> 176
0 -> 177
177 -> 178
0 [label="PlayerAuthInputPacket",comment="name: \"PlayerAuthInputPacket\", typeName: \"\", id: 0, branchId: 144, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Player Rotation",comment="name: \"Player Rotation\", typeName: \"Vec2\", id: 1, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
@ -124,33 +124,33 @@ rankdir = LR
96 [label="Amount",comment="name: \"Amount\", typeName: \"\", id: 96, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
97 [label="byte",comment="name: \"byte\", typeName: \"\", id: 97, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
98 [label="Source",comment="name: \"Source\", typeName: \"ItemStackRequestSlotInfo\", id: 98, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
111 [label="ItemStackRequestSlotInfo",comment="name: \"ItemStackRequestSlotInfo\", typeName: \"\", id: 111, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
112 [label="Destination",comment="name: \"Destination\", typeName: \"ItemStackRequestSlotInfo\", id: 112, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
113 [label="ItemStackRequestSlotInfo",comment="name: \"ItemStackRequestSlotInfo\", typeName: \"\", id: 113, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
114 [label="Strings To Filter",comment="name: \"Strings To Filter\", typeName: \"\", id: 114, branchId: 0, recurseId: -1, attributes: 8, notes: \"Array of strings to submit to profanity filtering service\""];
115 [label="Array Size",comment="name: \"Array Size\", typeName: \"\", id: 115, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
116 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 116, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
117 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 117, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
118 [label="String To Filter",comment="name: \"String To Filter\", typeName: \"\", id: 118, branchId: 0, recurseId: -1, attributes: 0, notes: \"Indivdiual string that needs checking\""];
119 [label="string",comment="name: \"string\", typeName: \"\", id: 119, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
120 [label="StringsToFilterOrigin",comment="name: \"StringsToFilterOrigin\", typeName: \"\", id: 120, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
121 [label="int",comment="name: \"int\", typeName: \"\", id: 121, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
122 [label="Dependency on 'PerformBlockActions bit set'",shape=note,comment="name: \"Dependency on 'PerformBlockActions bit set'\", typeName: \"\", id: 122, branchId: 0, recurseId: -1, attributes: 2, notes: \"\""];
123 [label="if (0)",shape=diamond,comment="name: \"if (0)\", typeName: \"\", id: 123, branchId: 0, recurseId: -1, attributes: 4, notes: \"\""];
124 [label="[No Data]",comment="name: \"[No Data]\", typeName: \"\", id: 124, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
125 [label="if (1)",shape=diamond,comment="name: \"if (1)\", typeName: \"\", id: 125, branchId: 1, recurseId: -1, attributes: 4, notes: \"\""];
126 [label="Player Block Actions",comment="name: \"Player Block Actions\", typeName: \"PlayerBlockActions\", id: 126, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
168 [label="PlayerBlockActions",comment="name: \"PlayerBlockActions\", typeName: \"\", id: 168, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
169 [label="Dependency on 'IsInClientPredictedVehicle bit set'",shape=note,comment="name: \"Dependency on 'IsInClientPredictedVehicle bit set'\", typeName: \"\", id: 169, branchId: 0, recurseId: -1, attributes: 2, notes: \"\""];
170 [label="if (0)",shape=diamond,comment="name: \"if (0)\", typeName: \"\", id: 170, branchId: 0, recurseId: -1, attributes: 4, notes: \"\""];
171 [label="[No Data]",comment="name: \"[No Data]\", typeName: \"\", id: 171, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
172 [label="if (1)",shape=diamond,comment="name: \"if (1)\", typeName: \"\", id: 172, branchId: 1, recurseId: -1, attributes: 4, notes: \"\""];
173 [label="Vehicle Rotation",comment="name: \"Vehicle Rotation\", typeName: \"Vec2\", id: 173, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
174 [label="Vec2",comment="name: \"Vec2\", typeName: \"\", id: 174, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
175 [label="Client Predicted Vehicle",comment="name: \"Client Predicted Vehicle\", typeName: \"ActorUniqueID\", id: 175, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
176 [label="ActorUniqueID",comment="name: \"ActorUniqueID\", typeName: \"\", id: 176, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
177 [label="Analog MoveVector",comment="name: \"Analog MoveVector\", typeName: \"Vec2\", id: 177, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
178 [label="Vec2",comment="name: \"Vec2\", typeName: \"\", id: 178, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;8;10;12;14;16;19;22;24;26;29;80;83;89;92;95;97;111;113;116;119;121;124;168;171;174;176;178}
106 [label="ItemStackRequestSlotInfo",comment="name: \"ItemStackRequestSlotInfo\", typeName: \"\", id: 106, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
107 [label="Destination",comment="name: \"Destination\", typeName: \"ItemStackRequestSlotInfo\", id: 107, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
108 [label="ItemStackRequestSlotInfo",comment="name: \"ItemStackRequestSlotInfo\", typeName: \"\", id: 108, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
109 [label="Strings To Filter",comment="name: \"Strings To Filter\", typeName: \"\", id: 109, branchId: 0, recurseId: -1, attributes: 8, notes: \"Array of strings to submit to profanity filtering service\""];
110 [label="Array Size",comment="name: \"Array Size\", typeName: \"\", id: 110, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
111 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 111, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
112 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 112, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
113 [label="String To Filter",comment="name: \"String To Filter\", typeName: \"\", id: 113, branchId: 0, recurseId: -1, attributes: 0, notes: \"Indivdiual string that needs checking\""];
114 [label="string",comment="name: \"string\", typeName: \"\", id: 114, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
115 [label="StringsToFilterOrigin",comment="name: \"StringsToFilterOrigin\", typeName: \"\", id: 115, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
116 [label="int",comment="name: \"int\", typeName: \"\", id: 116, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
117 [label="Dependency on 'PerformBlockActions bit set'",shape=note,comment="name: \"Dependency on 'PerformBlockActions bit set'\", typeName: \"\", id: 117, branchId: 0, recurseId: -1, attributes: 2, notes: \"\""];
118 [label="if (0)",shape=diamond,comment="name: \"if (0)\", typeName: \"\", id: 118, branchId: 0, recurseId: -1, attributes: 4, notes: \"\""];
119 [label="[No Data]",comment="name: \"[No Data]\", typeName: \"\", id: 119, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
120 [label="if (1)",shape=diamond,comment="name: \"if (1)\", typeName: \"\", id: 120, branchId: 1, recurseId: -1, attributes: 4, notes: \"\""];
121 [label="Player Block Actions",comment="name: \"Player Block Actions\", typeName: \"PlayerBlockActions\", id: 121, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
163 [label="PlayerBlockActions",comment="name: \"PlayerBlockActions\", typeName: \"\", id: 163, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
164 [label="Dependency on 'IsInClientPredictedVehicle bit set'",shape=note,comment="name: \"Dependency on 'IsInClientPredictedVehicle bit set'\", typeName: \"\", id: 164, branchId: 0, recurseId: -1, attributes: 2, notes: \"\""];
165 [label="if (0)",shape=diamond,comment="name: \"if (0)\", typeName: \"\", id: 165, branchId: 0, recurseId: -1, attributes: 4, notes: \"\""];
166 [label="[No Data]",comment="name: \"[No Data]\", typeName: \"\", id: 166, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
167 [label="if (1)",shape=diamond,comment="name: \"if (1)\", typeName: \"\", id: 167, branchId: 1, recurseId: -1, attributes: 4, notes: \"\""];
168 [label="Vehicle Rotation",comment="name: \"Vehicle Rotation\", typeName: \"Vec2\", id: 168, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
169 [label="Vec2",comment="name: \"Vec2\", typeName: \"\", id: 169, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
170 [label="Client Predicted Vehicle",comment="name: \"Client Predicted Vehicle\", typeName: \"ActorUniqueID\", id: 170, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
171 [label="ActorUniqueID",comment="name: \"ActorUniqueID\", typeName: \"\", id: 171, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
172 [label="Analog MoveVector",comment="name: \"Analog MoveVector\", typeName: \"Vec2\", id: 172, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
173 [label="Vec2",comment="name: \"Vec2\", typeName: \"\", id: 173, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;8;10;12;14;16;19;22;24;26;29;80;83;89;92;95;97;106;108;111;114;116;119;163;166;169;171;173}
}

@ -1,74 +1,74 @@
digraph "PlayerBlockActionData" {
rankdir = LR
133
128
128 -> 129
129 -> 130
128 -> 131
131 -> 132
132 -> 133
133 -> 134
134 -> 135
133 -> 136
136 -> 137
132 -> 135
135 -> 136
131 -> 137
137 -> 138
138 -> 139
137 -> 140
140 -> 141
136 -> 142
131 -> 142
142 -> 143
143 -> 144
142 -> 145
145 -> 146
136 -> 147
131 -> 147
147 -> 148
148 -> 149
147 -> 150
150 -> 151
136 -> 152
131 -> 152
152 -> 153
153 -> 154
152 -> 155
155 -> 156
136 -> 157
131 -> 157
157 -> 158
158 -> 159
157 -> 160
160 -> 161
136 -> 162
162 -> 163
163 -> 164
162 -> 165
165 -> 166
133 [label="PlayerBlockActionData",comment="name: \"PlayerBlockActionData\", typeName: \"\", id: 133, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
134 [label="Player Action Type",comment="name: \"Player Action Type\", typeName: \"\", id: 134, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
135 [label="varint",comment="name: \"varint\", typeName: \"\", id: 135, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
136 [label="Dependency on 'Player Action Type'",shape=note,comment="name: \"Dependency on 'Player Action Type'\", typeName: \"\", id: 136, branchId: 0, recurseId: -1, attributes: 2, notes: \"\""];
137 [label="if (26)",shape=diamond,comment="name: \"if (26)\", typeName: \"\", id: 137, branchId: 26, recurseId: -1, attributes: 4, notes: \"\""];
128 [label="PlayerBlockActionData",comment="name: \"PlayerBlockActionData\", typeName: \"\", id: 128, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
129 [label="Player Action Type",comment="name: \"Player Action Type\", typeName: \"\", id: 129, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
130 [label="varint",comment="name: \"varint\", typeName: \"\", id: 130, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
131 [label="Dependency on 'Player Action Type'",shape=note,comment="name: \"Dependency on 'Player Action Type'\", typeName: \"\", id: 131, branchId: 0, recurseId: -1, attributes: 2, notes: \"\""];
132 [label="if (26)",shape=diamond,comment="name: \"if (26)\", typeName: \"\", id: 132, branchId: 26, recurseId: -1, attributes: 4, notes: \"\""];
133 [label="Position",comment="name: \"Position\", typeName: \"BlockPos\", id: 133, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
134 [label="BlockPos",comment="name: \"BlockPos\", typeName: \"\", id: 134, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
135 [label="Facing",comment="name: \"Facing\", typeName: \"\", id: 135, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
136 [label="varint",comment="name: \"varint\", typeName: \"\", id: 136, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
137 [label="if (0)",shape=diamond,comment="name: \"if (0)\", typeName: \"\", id: 137, branchId: 0, recurseId: -1, attributes: 4, notes: \"\""];
138 [label="Position",comment="name: \"Position\", typeName: \"BlockPos\", id: 138, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
139 [label="BlockPos",comment="name: \"BlockPos\", typeName: \"\", id: 139, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
140 [label="Facing",comment="name: \"Facing\", typeName: \"\", id: 140, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
141 [label="varint",comment="name: \"varint\", typeName: \"\", id: 141, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
142 [label="if (0)",shape=diamond,comment="name: \"if (0)\", typeName: \"\", id: 142, branchId: 0, recurseId: -1, attributes: 4, notes: \"\""];
142 [label="if (1)",shape=diamond,comment="name: \"if (1)\", typeName: \"\", id: 142, branchId: 1, recurseId: -1, attributes: 4, notes: \"\""];
143 [label="Position",comment="name: \"Position\", typeName: \"BlockPos\", id: 143, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
144 [label="BlockPos",comment="name: \"BlockPos\", typeName: \"\", id: 144, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
145 [label="Facing",comment="name: \"Facing\", typeName: \"\", id: 145, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
146 [label="varint",comment="name: \"varint\", typeName: \"\", id: 146, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
147 [label="if (1)",shape=diamond,comment="name: \"if (1)\", typeName: \"\", id: 147, branchId: 1, recurseId: -1, attributes: 4, notes: \"\""];
147 [label="if (18)",shape=diamond,comment="name: \"if (18)\", typeName: \"\", id: 147, branchId: 18, recurseId: -1, attributes: 4, notes: \"\""];
148 [label="Position",comment="name: \"Position\", typeName: \"BlockPos\", id: 148, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
149 [label="BlockPos",comment="name: \"BlockPos\", typeName: \"\", id: 149, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
150 [label="Facing",comment="name: \"Facing\", typeName: \"\", id: 150, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
151 [label="varint",comment="name: \"varint\", typeName: \"\", id: 151, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
152 [label="if (18)",shape=diamond,comment="name: \"if (18)\", typeName: \"\", id: 152, branchId: 18, recurseId: -1, attributes: 4, notes: \"\""];
152 [label="if (27)",shape=diamond,comment="name: \"if (27)\", typeName: \"\", id: 152, branchId: 27, recurseId: -1, attributes: 4, notes: \"\""];
153 [label="Position",comment="name: \"Position\", typeName: \"BlockPos\", id: 153, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
154 [label="BlockPos",comment="name: \"BlockPos\", typeName: \"\", id: 154, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
155 [label="Facing",comment="name: \"Facing\", typeName: \"\", id: 155, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
156 [label="varint",comment="name: \"varint\", typeName: \"\", id: 156, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
157 [label="if (27)",shape=diamond,comment="name: \"if (27)\", typeName: \"\", id: 157, branchId: 27, recurseId: -1, attributes: 4, notes: \"\""];
157 [label="if (2)",shape=diamond,comment="name: \"if (2)\", typeName: \"\", id: 157, branchId: 2, recurseId: -1, attributes: 4, notes: \"\""];
158 [label="Position",comment="name: \"Position\", typeName: \"BlockPos\", id: 158, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
159 [label="BlockPos",comment="name: \"BlockPos\", typeName: \"\", id: 159, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
160 [label="Facing",comment="name: \"Facing\", typeName: \"\", id: 160, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
161 [label="varint",comment="name: \"varint\", typeName: \"\", id: 161, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
162 [label="if (2)",shape=diamond,comment="name: \"if (2)\", typeName: \"\", id: 162, branchId: 2, recurseId: -1, attributes: 4, notes: \"\""];
163 [label="Position",comment="name: \"Position\", typeName: \"BlockPos\", id: 163, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
164 [label="BlockPos",comment="name: \"BlockPos\", typeName: \"\", id: 164, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
165 [label="Facing",comment="name: \"Facing\", typeName: \"\", id: 165, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
166 [label="varint",comment="name: \"varint\", typeName: \"\", id: 166, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;135;139;141;144;146;149;151;154;156;159;161;164;166}
{ rank = max;130;134;136;139;141;144;146;149;151;154;156;159;161}
}

@ -1,20 +1,20 @@
digraph "PlayerBlockActions" {
rankdir = LR
127
127 -> 128
128 -> 129
129 -> 130
128 -> 131
131 -> 132
132 -> 167
122
122 -> 123
123 -> 124
124 -> 125
123 -> 126
126 -> 127
127 -> 162
127 [label="PlayerBlockActions",comment="name: \"PlayerBlockActions\", typeName: \"\", id: 127, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
128 [label="Player Block Actions",comment="name: \"Player Block Actions\", typeName: \"\", id: 128, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
129 [label="Player Block Actions count",comment="name: \"Player Block Actions count\", typeName: \"\", id: 129, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
130 [label="varint",comment="name: \"varint\", typeName: \"\", id: 130, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
131 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 131, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
132 [label="Player Block Action",comment="name: \"Player Block Action\", typeName: \"PlayerBlockActionData\", id: 132, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
167 [label="PlayerBlockActionData",comment="name: \"PlayerBlockActionData\", typeName: \"\", id: 167, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;130;167}
122 [label="PlayerBlockActions",comment="name: \"PlayerBlockActions\", typeName: \"\", id: 122, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
123 [label="Player Block Actions",comment="name: \"Player Block Actions\", typeName: \"\", id: 123, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
124 [label="Player Block Actions count",comment="name: \"Player Block Actions count\", typeName: \"\", id: 124, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
125 [label="varint",comment="name: \"varint\", typeName: \"\", id: 125, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
126 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 126, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
127 [label="Player Block Action",comment="name: \"Player Block Action\", typeName: \"PlayerBlockActionData\", id: 127, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
162 [label="PlayerBlockActionData",comment="name: \"PlayerBlockActionData\", typeName: \"\", id: 162, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;125;162}
}

@ -9,25 +9,25 @@ rankdir = LR
5 -> 6
0 -> 7
7 -> 8
0 -> 9
9 -> 10
8 -> 9
7 -> 10
10 -> 11
9 -> 12
12 -> 13
11 -> 12
10 -> 13
13 -> 14
12 -> 15
10 -> 15
15 -> 16
12 -> 17
10 -> 17
17 -> 18
12 -> 19
10 -> 19
19 -> 20
12 -> 21
10 -> 21
21 -> 22
12 -> 23
10 -> 23
23 -> 24
12 -> 25
10 -> 25
25 -> 26
12 -> 27
10 -> 27
27 -> 28
0 -> 29
29 -> 30
@ -37,28 +37,6 @@ rankdir = LR
33 -> 34
32 -> 35
35 -> 36
32 -> 37
37 -> 38
32 -> 39
39 -> 40
32 -> 41
41 -> 42
32 -> 43
43 -> 44
32 -> 45
45 -> 46
32 -> 47
47 -> 48
32 -> 49
49 -> 50
0 -> 51
51 -> 52
52 -> 53
51 -> 54
54 -> 55
55 -> 56
54 -> 57
57 -> 58
0 [label="ResourcePacksInfoPacket",comment="name: \"ResourcePacksInfoPacket\", typeName: \"\", id: 0, branchId: 6, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Resource Pack Required",comment="name: \"Resource Pack Required\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
@ -67,58 +45,36 @@ rankdir = LR
4 [label="bool",comment="name: \"bool\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
5 [label="Has Scripts",comment="name: \"Has Scripts\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
6 [label="bool",comment="name: \"bool\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
7 [label="Force Server Packs Enabled",comment="name: \"Force Server Packs Enabled\", typeName: \"\", id: 7, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
8 [label="bool",comment="name: \"bool\", typeName: \"\", id: 8, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
9 [label="Behavior Packs",comment="name: \"Behavior Packs\", typeName: \"\", id: 9, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
10 [label="Array Size",comment="name: \"Array Size\", typeName: \"\", id: 10, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
11 [label="unsigned short",comment="name: \"unsigned short\", typeName: \"\", id: 11, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
12 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 12, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
13 [label="ID",comment="name: \"ID\", typeName: \"\", id: 13, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
7 [label="Resource Packs",comment="name: \"Resource Packs\", typeName: \"\", id: 7, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
8 [label="Resource Pack Count",comment="name: \"Resource Pack Count\", typeName: \"\", id: 8, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
9 [label="unsigned short",comment="name: \"unsigned short\", typeName: \"\", id: 9, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
10 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 10, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
11 [label="ID",comment="name: \"ID\", typeName: \"\", id: 11, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
12 [label="string",comment="name: \"string\", typeName: \"\", id: 12, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
13 [label="Version",comment="name: \"Version\", typeName: \"\", id: 13, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
14 [label="string",comment="name: \"string\", typeName: \"\", id: 14, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
15 [label="Version",comment="name: \"Version\", typeName: \"\", id: 15, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
16 [label="string",comment="name: \"string\", typeName: \"\", id: 16, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
17 [label="Size",comment="name: \"Size\", typeName: \"\", id: 17, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
18 [label="unsigned int64",comment="name: \"unsigned int64\", typeName: \"\", id: 18, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
19 [label="Content Key",comment="name: \"Content Key\", typeName: \"\", id: 19, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
15 [label="Size",comment="name: \"Size\", typeName: \"\", id: 15, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
16 [label="unsigned int64",comment="name: \"unsigned int64\", typeName: \"\", id: 16, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
17 [label="Content Key",comment="name: \"Content Key\", typeName: \"\", id: 17, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
18 [label="string",comment="name: \"string\", typeName: \"\", id: 18, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
19 [label="Sub Pack Name",comment="name: \"Sub Pack Name\", typeName: \"\", id: 19, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
20 [label="string",comment="name: \"string\", typeName: \"\", id: 20, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
21 [label="Sub Pack Name",comment="name: \"Sub Pack Name\", typeName: \"\", id: 21, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
21 [label="Content Identity",comment="name: \"Content Identity\", typeName: \"\", id: 21, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
22 [label="string",comment="name: \"string\", typeName: \"\", id: 22, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
23 [label="Content Identity",comment="name: \"Content Identity\", typeName: \"\", id: 23, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
24 [label="string",comment="name: \"string\", typeName: \"\", id: 24, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
25 [label="Has Scripts",comment="name: \"Has Scripts\", typeName: \"\", id: 25, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
23 [label="Has Scripts",comment="name: \"Has Scripts\", typeName: \"\", id: 23, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
24 [label="bool",comment="name: \"bool\", typeName: \"\", id: 24, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
25 [label="Is Addon Pack",comment="name: \"Is Addon Pack\", typeName: \"\", id: 25, branchId: 0, recurseId: -1, attributes: 0, notes: \"Indicates this pack is part of an Add-On. Helps clients determine if the pack must be downloaded to join the server as Add-On packs are required to play without issues.\""];
26 [label="bool",comment="name: \"bool\", typeName: \"\", id: 26, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
27 [label="Is Addon Pack",comment="name: \"Is Addon Pack\", typeName: \"\", id: 27, branchId: 0, recurseId: -1, attributes: 0, notes: \"Indicates this pack is part of an Add-On. Helps clients determine if the pack must be downloaded to join the server as Add-On packs are required to play without issues.\""];
27 [label="Is Ray Tracing Capable",comment="name: \"Is Ray Tracing Capable\", typeName: \"\", id: 27, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
28 [label="bool",comment="name: \"bool\", typeName: \"\", id: 28, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
29 [label="Resource Packs",comment="name: \"Resource Packs\", typeName: \"\", id: 29, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
29 [label="CDN URLs",comment="name: \"CDN URLs\", typeName: \"\", id: 29, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
30 [label="Array Size",comment="name: \"Array Size\", typeName: \"\", id: 30, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
31 [label="unsigned short",comment="name: \"unsigned short\", typeName: \"\", id: 31, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
31 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 31, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
32 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 32, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
33 [label="ID",comment="name: \"ID\", typeName: \"\", id: 33, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
33 [label="First",comment="name: \"First\", typeName: \"\", id: 33, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
34 [label="string",comment="name: \"string\", typeName: \"\", id: 34, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
35 [label="Version",comment="name: \"Version\", typeName: \"\", id: 35, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
35 [label="Second",comment="name: \"Second\", typeName: \"\", id: 35, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
36 [label="string",comment="name: \"string\", typeName: \"\", id: 36, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
37 [label="Size",comment="name: \"Size\", typeName: \"\", id: 37, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
38 [label="unsigned int64",comment="name: \"unsigned int64\", typeName: \"\", id: 38, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
39 [label="Content Key",comment="name: \"Content Key\", typeName: \"\", id: 39, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
40 [label="string",comment="name: \"string\", typeName: \"\", id: 40, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
41 [label="Sub Pack Name",comment="name: \"Sub Pack Name\", typeName: \"\", id: 41, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
42 [label="string",comment="name: \"string\", typeName: \"\", id: 42, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
43 [label="Content Identity",comment="name: \"Content Identity\", typeName: \"\", id: 43, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
44 [label="string",comment="name: \"string\", typeName: \"\", id: 44, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
45 [label="Has Scripts",comment="name: \"Has Scripts\", typeName: \"\", id: 45, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
46 [label="bool",comment="name: \"bool\", typeName: \"\", id: 46, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
47 [label="Is Addon Pack",comment="name: \"Is Addon Pack\", typeName: \"\", id: 47, branchId: 0, recurseId: -1, attributes: 0, notes: \"Indicates this pack is part of an Add-On. Helps clients determine if the pack must be downloaded to join the server as Add-On packs are required to play without issues.\""];
48 [label="bool",comment="name: \"bool\", typeName: \"\", id: 48, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
49 [label="Is Ray Tracing Capable",comment="name: \"Is Ray Tracing Capable\", typeName: \"\", id: 49, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
50 [label="bool",comment="name: \"bool\", typeName: \"\", id: 50, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
51 [label="CDN URLs",comment="name: \"CDN URLs\", typeName: \"\", id: 51, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
52 [label="Array Size",comment="name: \"Array Size\", typeName: \"\", id: 52, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
53 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 53, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
54 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 54, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
55 [label="First",comment="name: \"First\", typeName: \"\", id: 55, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
56 [label="string",comment="name: \"string\", typeName: \"\", id: 56, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
57 [label="Second",comment="name: \"Second\", typeName: \"\", id: 57, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
58 [label="string",comment="name: \"string\", typeName: \"\", id: 58, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6;8;11;14;16;18;20;22;24;26;28;31;34;36;38;40;42;44;46;48;50;53;56;58}
{ rank = max;2;4;6;9;12;14;16;18;20;22;24;26;28;31;34;36}
}

@ -5,12 +5,16 @@ rankdir = LR
1 -> 2
0 -> 3
3 -> 4
0 -> 5
5 -> 6
0 [label="TransferPacket",comment="name: \"TransferPacket\", typeName: \"\", id: 0, branchId: 85, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Server Address",comment="name: \"Server Address\", typeName: \"\", id: 1, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
2 [label="string",comment="name: \"string\", typeName: \"\", id: 2, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
3 [label="Server Port",comment="name: \"Server Port\", typeName: \"\", id: 3, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
4 [label="unsigned short",comment="name: \"unsigned short\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4}
5 [label="Reload World",comment="name: \"Reload World\", typeName: \"\", id: 5, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
6 [label="bool",comment="name: \"bool\", typeName: \"\", id: 6, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;4;6}
}

@ -19,22 +19,26 @@ rankdir = LR
15 -> 16
6 -> 17
17 -> 18
18 -> 19
17 -> 20
20 -> 21
6 -> 19
19 -> 20
6 -> 21
21 -> 22
20 -> 23
23 -> 24
20 -> 25
22 -> 23
21 -> 24
24 -> 25
25 -> 26
20 -> 27
24 -> 27
27 -> 28
20 -> 29
24 -> 29
29 -> 30
20 -> 31
24 -> 31
31 -> 32
0 -> 33
24 -> 33
33 -> 34
24 -> 35
35 -> 36
0 -> 37
37 -> 38
0 [label="UpdateAttributesPacket",comment="name: \"UpdateAttributesPacket\", typeName: \"\", id: 0, branchId: 29, recurseId: -1, attributes: 0, notes: \"\""];
1 [label="Target Runtime ID",comment="name: \"Target Runtime ID\", typeName: \"ActorRuntimeID\", id: 1, branchId: 0, recurseId: -1, attributes: 256, notes: \"\""];
@ -49,28 +53,32 @@ rankdir = LR
10 [label="float",comment="name: \"float\", typeName: \"\", id: 10, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
11 [label="Current Value",comment="name: \"Current Value\", typeName: \"\", id: 11, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
12 [label="float",comment="name: \"float\", typeName: \"\", id: 12, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
13 [label="Default Value",comment="name: \"Default Value\", typeName: \"\", id: 13, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
13 [label="Default Min Value",comment="name: \"Default Min Value\", typeName: \"\", id: 13, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
14 [label="float",comment="name: \"float\", typeName: \"\", id: 14, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
15 [label="Attribute Name",comment="name: \"Attribute Name\", typeName: \"\", id: 15, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
16 [label="string",comment="name: \"string\", typeName: \"\", id: 16, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
17 [label="Attribute Modifier",comment="name: \"Attribute Modifier\", typeName: \"\", id: 17, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
18 [label="Array Size",comment="name: \"Array Size\", typeName: \"\", id: 18, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
19 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 19, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
20 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 20, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
21 [label="ID",comment="name: \"ID\", typeName: \"\", id: 21, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
22 [label="string",comment="name: \"string\", typeName: \"\", id: 22, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
23 [label="Name",comment="name: \"Name\", typeName: \"\", id: 23, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
24 [label="string",comment="name: \"string\", typeName: \"\", id: 24, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
25 [label="Amount",comment="name: \"Amount\", typeName: \"\", id: 25, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
26 [label="float",comment="name: \"float\", typeName: \"\", id: 26, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
27 [label="Operation",comment="name: \"Operation\", typeName: \"\", id: 27, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
28 [label="int",comment="name: \"int\", typeName: \"\", id: 28, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
29 [label="Operand",comment="name: \"Operand\", typeName: \"\", id: 29, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
30 [label="int",comment="name: \"int\", typeName: \"\", id: 30, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
31 [label="isSerializable?",comment="name: \"isSerializable?\", typeName: \"\", id: 31, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
32 [label="bool",comment="name: \"bool\", typeName: \"\", id: 32, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
33 [label="Count of ticks since simulation started",comment="name: \"Count of ticks since simulation started\", typeName: \"\", id: 33, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
34 [label="unsigned varint64",comment="name: \"unsigned varint64\", typeName: \"\", id: 34, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;5;8;10;12;14;16;19;22;24;26;28;30;32;34}
15 [label="Default Max Value",comment="name: \"Default Max Value\", typeName: \"\", id: 15, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
16 [label="float",comment="name: \"float\", typeName: \"\", id: 16, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
17 [label="Default Value",comment="name: \"Default Value\", typeName: \"\", id: 17, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
18 [label="float",comment="name: \"float\", typeName: \"\", id: 18, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
19 [label="Attribute Name",comment="name: \"Attribute Name\", typeName: \"\", id: 19, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
20 [label="string",comment="name: \"string\", typeName: \"\", id: 20, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
21 [label="Attribute Modifier",comment="name: \"Attribute Modifier\", typeName: \"\", id: 21, branchId: 0, recurseId: -1, attributes: 8, notes: \"\""];
22 [label="Array Size",comment="name: \"Array Size\", typeName: \"\", id: 22, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
23 [label="unsigned varint",comment="name: \"unsigned varint\", typeName: \"\", id: 23, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
24 [label="example element",style=dotted,comment="name: \"example element\", typeName: \"\", id: 24, branchId: 0, recurseId: -1, attributes: 16, notes: \"\""];
25 [label="ID",comment="name: \"ID\", typeName: \"\", id: 25, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
26 [label="string",comment="name: \"string\", typeName: \"\", id: 26, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
27 [label="Name",comment="name: \"Name\", typeName: \"\", id: 27, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
28 [label="string",comment="name: \"string\", typeName: \"\", id: 28, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
29 [label="Amount",comment="name: \"Amount\", typeName: \"\", id: 29, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
30 [label="float",comment="name: \"float\", typeName: \"\", id: 30, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
31 [label="Operation",comment="name: \"Operation\", typeName: \"\", id: 31, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
32 [label="int",comment="name: \"int\", typeName: \"\", id: 32, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
33 [label="Operand",comment="name: \"Operand\", typeName: \"\", id: 33, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
34 [label="int",comment="name: \"int\", typeName: \"\", id: 34, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
35 [label="isSerializable?",comment="name: \"isSerializable?\", typeName: \"\", id: 35, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
36 [label="bool",comment="name: \"bool\", typeName: \"\", id: 36, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
37 [label="Count of ticks since simulation started",comment="name: \"Count of ticks since simulation started\", typeName: \"\", id: 37, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
38 [label="unsigned varint64",comment="name: \"unsigned varint64\", typeName: \"\", id: 38, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;2;5;8;10;12;14;16;18;20;23;26;28;30;32;34;36;38}
}

@ -1,12 +1,12 @@
digraph "std::optional<bool>" {
rankdir = LR
39
39 -> 40
40 -> 41
29
29 -> 30
30 -> 31
39 [label="std::optional<bool>",comment="name: \"std::optional<bool>\", typeName: \"\", id: 39, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
40 [label="Has Value",comment="name: \"Has Value\", typeName: \"\", id: 40, branchId: 0, recurseId: -1, attributes: 0, notes: \"If true, follow with appropriate data type, otherwise nothing\""];
41 [label="bool",comment="name: \"bool\", typeName: \"\", id: 41, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;41}
29 [label="std::optional<bool>",comment="name: \"std::optional<bool>\", typeName: \"\", id: 29, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
30 [label="Has Value",comment="name: \"Has Value\", typeName: \"\", id: 30, branchId: 0, recurseId: -1, attributes: 0, notes: \"If true, follow with appropriate data type, otherwise nothing\""];
31 [label="bool",comment="name: \"bool\", typeName: \"\", id: 31, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;31}
}

@ -1,12 +1,12 @@
digraph "std::optional<class Vec2>" {
rankdir = LR
27
27 -> 28
28 -> 29
34
34 -> 35
35 -> 36
27 [label="std::optional<class Vec2>",comment="name: \"std::optional<class Vec2>\", typeName: \"\", id: 27, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
28 [label="Has Value",comment="name: \"Has Value\", typeName: \"\", id: 28, branchId: 0, recurseId: -1, attributes: 0, notes: \"If true, follow with appropriate data type, otherwise nothing\""];
29 [label="bool",comment="name: \"bool\", typeName: \"\", id: 29, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;29}
34 [label="std::optional<class Vec2>",comment="name: \"std::optional<class Vec2>\", typeName: \"\", id: 34, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
35 [label="Has Value",comment="name: \"Has Value\", typeName: \"\", id: 35, branchId: 0, recurseId: -1, attributes: 0, notes: \"If true, follow with appropriate data type, otherwise nothing\""];
36 [label="bool",comment="name: \"bool\", typeName: \"\", id: 36, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;36}
}

@ -0,0 +1,12 @@
digraph "std::optional<class Vec3>" {
rankdir = LR
39
39 -> 40
40 -> 41
39 [label="std::optional<class Vec3>",comment="name: \"std::optional<class Vec3>\", typeName: \"\", id: 39, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
40 [label="Has Value",comment="name: \"Has Value\", typeName: \"\", id: 40, branchId: 0, recurseId: -1, attributes: 0, notes: \"If true, follow with appropriate data type, otherwise nothing\""];
41 [label="bool",comment="name: \"bool\", typeName: \"\", id: 41, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;41}
}

@ -1,12 +1,12 @@
digraph "std::optional<enum CameraPreset::AudioListener>" {
rankdir = LR
34
34 -> 35
35 -> 36
46
46 -> 47
47 -> 48
34 [label="std::optional<enum CameraPreset::AudioListener>",comment="name: \"std::optional<enum CameraPreset::AudioListener>\", typeName: \"\", id: 34, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
35 [label="Has Value",comment="name: \"Has Value\", typeName: \"\", id: 35, branchId: 0, recurseId: -1, attributes: 0, notes: \"If true, follow with appropriate data type, otherwise nothing\""];
36 [label="bool",comment="name: \"bool\", typeName: \"\", id: 36, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;36}
46 [label="std::optional<enum CameraPreset::AudioListener>",comment="name: \"std::optional<enum CameraPreset::AudioListener>\", typeName: \"\", id: 46, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
47 [label="Has Value",comment="name: \"Has Value\", typeName: \"\", id: 47, branchId: 0, recurseId: -1, attributes: 0, notes: \"If true, follow with appropriate data type, otherwise nothing\""];
48 [label="bool",comment="name: \"bool\", typeName: \"\", id: 48, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;48}
}

@ -1,12 +1,12 @@
digraph "std::optional<unsigned int>" {
rankdir = LR
8
8 -> 9
9 -> 10
14
14 -> 15
15 -> 16
8 [label="std::optional<unsigned int>",comment="name: \"std::optional<unsigned int>\", typeName: \"\", id: 8, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
9 [label="Has Value",comment="name: \"Has Value\", typeName: \"\", id: 9, branchId: 0, recurseId: -1, attributes: 0, notes: \"If true, follow with appropriate data type, otherwise nothing\""];
10 [label="bool",comment="name: \"bool\", typeName: \"\", id: 10, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;10}
14 [label="std::optional<unsigned int>",comment="name: \"std::optional<unsigned int>\", typeName: \"\", id: 14, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
15 [label="Has Value",comment="name: \"Has Value\", typeName: \"\", id: 15, branchId: 0, recurseId: -1, attributes: 0, notes: \"If true, follow with appropriate data type, otherwise nothing\""];
16 [label="bool",comment="name: \"bool\", typeName: \"\", id: 16, branchId: 0, recurseId: -1, attributes: 512, notes: \"\""];
{ rank = max;16}
}

@ -0,0 +1,2 @@
<!DOCTYPE html> <html> <head><style>table{font-family: arial, sans-serif;border-collapse: collapse;width: 100% ;}.tab { margin-left: 40px; }td, th{text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #dddddd;}div#expand{display:block;}</style> </head> <body><img src="svg/CameraAimAssistPacket.svg" alt="CameraAimAssistPacket">
<br></body> </html>

@ -1,2 +1,4 @@
<!DOCTYPE html> <html> <head><style>table{font-family: arial, sans-serif;border-collapse: collapse;width: 100% ;}.tab { margin-left: 40px; }td, th{text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #dddddd;}div#expand{display:block;}</style> </head> <body><img src="svg/CameraPreset.svg" alt="CameraPreset">
<br></body> </html>
<br><table><col width="10%"><col width="90%"><tr><th>Field Name</th><th>Field Notes</th></tr><tr><td>Entity Offset</td>
<td>Changing the camera's pivot point from the center of the entity</td>
</tr></table></body> </html>

@ -0,0 +1,2 @@
<!DOCTYPE html> <html> <head><style>table{font-family: arial, sans-serif;border-collapse: collapse;width: 100% ;}.tab { margin-left: 40px; }td, th{text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #dddddd;}div#expand{display:block;}</style> </head> <body><img src="svg/ContainerRegistryCleanupPacket.svg" alt="ContainerRegistryCleanupPacket">
<br></body> </html>

@ -1,2 +1,6 @@
<!DOCTYPE html> <html> <head><style>table{font-family: arial, sans-serif;border-collapse: collapse;width: 100% ;}.tab { margin-left: 40px; }td, th{text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #dddddd;}div#expand{display:block;}</style> </head> <body><img src="svg/InventoryContentPacket.svg" alt="InventoryContentPacket">
<br></body> </html>
<br><table><col width="10%"><col width="90%"><tr><th>Field Name</th><th>Field Notes</th></tr><tr><td>Full Container Name</td>
<td>Used to reference a specific container within a given screen container context.</td>
</tr><tr><td>Dynamic Container Size</td>
<td>Size of the particular container instance if this is a dynamic container, otherwise zero.</td>
</tr></table></body> </html>

@ -1,2 +1,6 @@
<!DOCTYPE html> <html> <head><style>table{font-family: arial, sans-serif;border-collapse: collapse;width: 100% ;}.tab { margin-left: 40px; }td, th{text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #dddddd;}div#expand{display:block;}</style> </head> <body><img src="svg/InventorySlotPacket.svg" alt="InventorySlotPacket">
<br></body> </html>
<br><table><col width="10%"><col width="90%"><tr><th>Field Name</th><th>Field Notes</th></tr><tr><td>Full Container Name</td>
<td>Used to reference a specific container within a given screen container context</td>
</tr><tr><td>Dynamic Container Size</td>
<td>Size of the container if it is dynamic, zero otherwise</td>
</tr></table></body> </html>

@ -1,6 +1,4 @@
<!DOCTYPE html> <html> <head><style>table{font-family: arial, sans-serif;border-collapse: collapse;width: 100% ;}.tab { margin-left: 40px; }td, th{text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #dddddd;}div#expand{display:block;}</style> </head> <body><img src="svg/ResourcePacksInfoPacket.svg" alt="ResourcePacksInfoPacket">
<br><table><col width="10%"><col width="90%"><tr><th>Field Name</th><th>Field Notes</th></tr><tr><td>Is Addon Pack</td>
<td>Indicates this pack is part of an Add-On. Helps clients determine if the pack must be downloaded to join the server as Add-On packs are required to play without issues.</td>
</tr><tr><td>Is Addon Pack</td>
<td>Indicates this pack is part of an Add-On. Helps clients determine if the pack must be downloaded to join the server as Add-On packs are required to play without issues.</td>
</tr></table></body> </html>

File diff suppressed because one or more lines are too long

@ -237,7 +237,7 @@
<td></td>
</tr><tr><td>85</td>
<td><a href = "TransferPacket.html">Transfer Player</a></td>
<td>Used to kick off transferring the client between online games</td>
<td>Used to kick off transferring the client between online games, or it can be used to cause players to quit the world and rejoin.</td>
</tr><tr><td>86</td>
<td><a href = "PlaySoundPacket.html">Play Sound</a></td>
<td>This packet is only used via command or script event. This is for 3rd party content. </td>
@ -598,4 +598,10 @@
</tr><tr><td>315</td>
<td><a href = "ServerboundDiagnosticsPacket.html">ServerboundDiagnosticsPacket</a></td>
<td>Sent from the client to the server IF ProfilerLite is enabled AND the creator toggle for</td>
</tr><tr><td>316</td>
<td><a href = "CameraAimAssistPacket.html">CameraAimAssistPacket</a></td>
<td>CameraAimAssist</td>
</tr><tr><td>317</td>
<td><a href = "ContainerRegistryCleanupPacket.html">Cleanup of Dynamic Container Registry</a></td>
<td>This is used to trigger a clientside cleanup of the dynamic container registry. Whenever the serverside</td>
</tr></table></body> </html>

@ -0,0 +1,4 @@
<!DOCTYPE html> <html> <head><style>table{font-family: arial, sans-serif;border-collapse: collapse;width: 100% ;}.tab { margin-left: 40px; }td, th{text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #dddddd;}div#expand{display:block;}</style> </head> <body><img src="svg/std__optional_class Vec3_.svg" alt="std::optional<class Vec3>">
<br><table><col width="10%"><col width="90%"><tr><th>Field Name</th><th>Field Notes</th></tr><tr><td>Has Value</td>
<td>If true, follow with appropriate data type, otherwise nothing</td>
</tr></table></body> </html>

@ -0,0 +1,124 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 11.0.0 (20240428.1522)
-->
<!-- Title: CameraAimAssistPacket Pages: 1 -->
<svg width="463pt" height="206pt"
viewBox="0.00 0.00 463.23 206.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 202)">
<title>CameraAimAssistPacket</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-202 459.23,-202 459.23,4 -4,4"/>
<!-- 0 -->
<!-- name: &quot;CameraAimAssistPacket&quot;, typeName: &quot;&quot;, id: 0, branchId: 316, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>0</title>
<ellipse fill="none" stroke="black" cx="102.46" cy="-99" rx="102.46" ry="18"/>
<text text-anchor="middle" x="102.46" y="-93.58" font-family="Times New Roman,serif" font-size="14.00">CameraAimAssistPacket</text>
</g>
<!-- 1 -->
<!-- name: &quot;View Angle&quot;, typeName: &quot;Vec2&quot;, id: 1, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>1</title>
<ellipse fill="none" stroke="black" cx="299.97" cy="-180" rx="53.56" ry="18"/>
<text text-anchor="middle" x="299.97" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">View Angle</text>
</g>
<!-- 0&#45;&gt;1 -->
<g id="edge1" class="edge">
<title>0&#45;&gt;1</title>
<path fill="none" stroke="black" d="M143.97,-115.78C176.27,-129.16 221.43,-147.88 254.68,-161.65"/>
<polygon fill="black" stroke="black" points="253.05,-164.76 263.63,-165.36 255.73,-158.3 253.05,-164.76"/>
</g>
<!-- 3 -->
<!-- name: &quot;Distance&quot;, typeName: &quot;&quot;, id: 3, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>3</title>
<ellipse fill="none" stroke="black" cx="299.97" cy="-126" rx="42.58" ry="18"/>
<text text-anchor="middle" x="299.97" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Distance</text>
</g>
<!-- 0&#45;&gt;3 -->
<g id="edge3" class="edge">
<title>0&#45;&gt;3</title>
<path fill="none" stroke="black" d="M184.39,-110.18C205.81,-113.13 228.33,-116.24 247.69,-118.92"/>
<polygon fill="black" stroke="black" points="247.1,-122.37 257.49,-120.27 248.06,-115.44 247.1,-122.37"/>
</g>
<!-- 5 -->
<!-- name: &quot;Target Mode&quot;, typeName: &quot;&quot;, id: 5, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>5</title>
<ellipse fill="none" stroke="black" cx="299.97" cy="-72" rx="59.05" ry="18"/>
<text text-anchor="middle" x="299.97" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Target Mode</text>
</g>
<!-- 0&#45;&gt;5 -->
<g id="edge5" class="edge">
<title>0&#45;&gt;5</title>
<path fill="none" stroke="black" d="M184.39,-87.82C200.96,-85.54 218.19,-83.16 234.11,-80.96"/>
<polygon fill="black" stroke="black" points="234.51,-84.43 243.94,-79.6 233.55,-77.5 234.51,-84.43"/>
</g>
<!-- 7 -->
<!-- name: &quot;Action&quot;, typeName: &quot;&quot;, id: 7, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node8" class="node">
<title>7</title>
<ellipse fill="none" stroke="black" cx="299.97" cy="-18" rx="35.6" ry="18"/>
<text text-anchor="middle" x="299.97" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Action</text>
</g>
<!-- 0&#45;&gt;7 -->
<g id="edge7" class="edge">
<title>0&#45;&gt;7</title>
<path fill="none" stroke="black" d="M143.97,-82.22C178.49,-67.92 227.7,-47.53 261.36,-33.58"/>
<polygon fill="black" stroke="black" points="262.41,-36.94 270.31,-29.88 259.73,-30.47 262.41,-36.94"/>
</g>
<!-- 2 -->
<!-- name: &quot;Vec2&quot;, typeName: &quot;&quot;, id: 2, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>2</title>
<ellipse fill="none" stroke="black" cx="425.12" cy="-180" rx="30.11" ry="18"/>
<text text-anchor="middle" x="425.12" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Vec2</text>
</g>
<!-- 1&#45;&gt;2 -->
<g id="edge2" class="edge">
<title>1&#45;&gt;2</title>
<path fill="none" stroke="black" d="M353.91,-180C363.72,-180 373.83,-180 383.21,-180"/>
<polygon fill="black" stroke="black" points="383.12,-183.5 393.12,-180 383.12,-176.5 383.12,-183.5"/>
</g>
<!-- 4 -->
<!-- name: &quot;float&quot;, typeName: &quot;&quot;, id: 4, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>4</title>
<ellipse fill="none" stroke="black" cx="425.12" cy="-126" rx="27.11" ry="18"/>
<text text-anchor="middle" x="425.12" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">float</text>
</g>
<!-- 3&#45;&gt;4 -->
<g id="edge4" class="edge">
<title>3&#45;&gt;4</title>
<path fill="none" stroke="black" d="M343.01,-126C357.02,-126 372.54,-126 386.22,-126"/>
<polygon fill="black" stroke="black" points="386.17,-129.5 396.17,-126 386.17,-122.5 386.17,-129.5"/>
</g>
<!-- 6 -->
<!-- name: &quot;byte&quot;, typeName: &quot;&quot;, id: 6, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>6</title>
<ellipse fill="none" stroke="black" cx="425.12" cy="-72" rx="27" ry="18"/>
<text text-anchor="middle" x="425.12" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">byte</text>
</g>
<!-- 5&#45;&gt;6 -->
<g id="edge6" class="edge">
<title>5&#45;&gt;6</title>
<path fill="none" stroke="black" d="M359.3,-72C368.43,-72 377.65,-72 386.16,-72"/>
<polygon fill="black" stroke="black" points="386.13,-75.5 396.13,-72 386.13,-68.5 386.13,-75.5"/>
</g>
<!-- 8 -->
<!-- name: &quot;byte&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>8</title>
<ellipse fill="none" stroke="black" cx="425.12" cy="-18" rx="27" ry="18"/>
<text text-anchor="middle" x="425.12" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">byte</text>
</g>
<!-- 7&#45;&gt;8 -->
<g id="edge8" class="edge">
<title>7&#45;&gt;8</title>
<path fill="none" stroke="black" d="M335.93,-18C351.72,-18 370.41,-18 386.51,-18"/>
<polygon fill="black" stroke="black" points="386.18,-21.5 396.18,-18 386.18,-14.5 386.18,-21.5"/>
</g>
</g>
</svg>

After

(image error) Size: 6.2 KiB

@ -4,303 +4,381 @@
<!-- Generated by graphviz version 11.0.0 (20240428.1522)
-->
<!-- Title: CameraPreset Pages: 1 -->
<svg width="724pt" height="584pt"
viewBox="0.00 0.00 723.70 584.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 580)">
<svg width="736pt" height="746pt"
viewBox="0.00 0.00 735.68 746.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 742)">
<title>CameraPreset</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-580 719.7,-580 719.7,4 -4,4"/>
<polygon fill="white" stroke="none" points="-4,4 -4,-742 731.68,-742 731.68,4 -4,4"/>
<!-- 8 -->
<!-- name: &quot;CameraPreset&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>8</title>
<ellipse fill="none" stroke="black" cx="62.04" cy="-288" rx="62.04" ry="18"/>
<text text-anchor="middle" x="62.04" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">CameraPreset</text>
<ellipse fill="none" stroke="black" cx="62.04" cy="-369" rx="62.04" ry="18"/>
<text text-anchor="middle" x="62.04" y="-363.57" font-family="Times New Roman,serif" font-size="14.00">CameraPreset</text>
</g>
<!-- 9 -->
<!-- name: &quot;Name&quot;, typeName: &quot;&quot;, id: 9, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>9</title>
<ellipse fill="none" stroke="black" cx="222.62" cy="-558" rx="32.1" ry="18"/>
<text text-anchor="middle" x="222.62" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">Name</text>
<ellipse fill="none" stroke="black" cx="228.61" cy="-720" rx="32.1" ry="18"/>
<text text-anchor="middle" x="228.61" y="-714.58" font-family="Times New Roman,serif" font-size="14.00">Name</text>
</g>
<!-- 8&#45;&gt;9 -->
<g id="edge1" class="edge">
<title>8&#45;&gt;9</title>
<path fill="none" stroke="black" d="M65.55,-306.41C72.52,-350.75 95.98,-464.71 160.08,-531 166.23,-537.36 174.13,-542.32 182.21,-546.15"/>
<polygon fill="black" stroke="black" points="180.82,-549.36 191.4,-549.98 183.52,-542.9 180.82,-549.36"/>
<path fill="none" stroke="black" d="M63.24,-387.42C64.82,-441.51 76.67,-601.78 160.08,-693 167.34,-700.94 177.25,-706.58 187.23,-710.58"/>
<polygon fill="black" stroke="black" points="185.96,-713.84 196.55,-713.81 188.25,-707.23 185.96,-713.84"/>
</g>
<!-- 11 -->
<!-- name: &quot;Inherit From&quot;, typeName: &quot;&quot;, id: 11, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>11</title>
<ellipse fill="none" stroke="black" cx="222.62" cy="-504" rx="57.05" ry="18"/>
<text text-anchor="middle" x="222.62" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">Inherit From</text>
<ellipse fill="none" stroke="black" cx="228.61" cy="-666" rx="57.05" ry="18"/>
<text text-anchor="middle" x="228.61" y="-660.58" font-family="Times New Roman,serif" font-size="14.00">Inherit From</text>
</g>
<!-- 8&#45;&gt;11 -->
<g id="edge3" class="edge">
<title>8&#45;&gt;11</title>
<path fill="none" stroke="black" d="M67.94,-306.4C78.67,-343.42 107.57,-427.59 160.08,-477 163.53,-480.24 167.42,-483.13 171.53,-485.7"/>
<polygon fill="black" stroke="black" points="169.65,-488.66 180.1,-490.4 173.02,-482.52 169.65,-488.66"/>
<path fill="none" stroke="black" d="M64.55,-387.43C69.41,-435.33 88.82,-565.17 160.08,-639 164.04,-643.1 168.69,-646.59 173.68,-649.56"/>
<polygon fill="black" stroke="black" points="171.75,-652.5 182.24,-653.96 174.95,-646.28 171.75,-652.5"/>
</g>
<!-- 13 -->
<!-- name: &quot;Pos X&quot;, typeName: &quot;std::optional&lt;float&gt;&quot;, id: 13, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>13</title>
<ellipse fill="none" stroke="black" cx="222.62" cy="-450" rx="34.1" ry="18"/>
<text text-anchor="middle" x="222.62" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">Pos X</text>
<ellipse fill="none" stroke="black" cx="228.61" cy="-612" rx="34.1" ry="18"/>
<text text-anchor="middle" x="228.61" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">Pos X</text>
</g>
<!-- 8&#45;&gt;13 -->
<g id="edge5" class="edge">
<title>8&#45;&gt;13</title>
<path fill="none" stroke="black" d="M71.96,-306.1C86.73,-334.46 118.8,-389.58 160.08,-423 166.63,-428.3 174.38,-432.76 182.13,-436.43"/>
<polygon fill="black" stroke="black" points="180.63,-439.59 191.2,-440.35 183.41,-433.17 180.63,-439.59"/>
<path fill="none" stroke="black" d="M66.42,-387.32C74.89,-428.27 100.74,-528.09 160.08,-585 167.37,-591.98 176.68,-597.24 186.06,-601.16"/>
<polygon fill="black" stroke="black" points="184.54,-604.34 195.13,-604.53 186.97,-597.77 184.54,-604.34"/>
</g>
<!-- 18 -->
<!-- name: &quot;Pos Y&quot;, typeName: &quot;std::optional&lt;float&gt;&quot;, id: 18, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node8" class="node">
<title>18</title>
<ellipse fill="none" stroke="black" cx="222.62" cy="-396" rx="34.1" ry="18"/>
<text text-anchor="middle" x="222.62" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">Pos Y</text>
<ellipse fill="none" stroke="black" cx="228.61" cy="-558" rx="34.1" ry="18"/>
<text text-anchor="middle" x="228.61" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">Pos Y</text>
</g>
<!-- 8&#45;&gt;18 -->
<g id="edge7" class="edge">
<title>8&#45;&gt;18</title>
<path fill="none" stroke="black" d="M80.8,-305.5C99.41,-323.16 130.05,-350.4 160.08,-369 167.31,-373.48 175.41,-377.59 183.3,-381.19"/>
<polygon fill="black" stroke="black" points="181.87,-384.39 192.44,-385.16 184.66,-377.96 181.87,-384.39"/>
<path fill="none" stroke="black" d="M69.42,-387.17C81.86,-420.2 112.42,-490.39 160.08,-531 167.68,-537.47 177.03,-542.53 186.32,-546.41"/>
<polygon fill="black" stroke="black" points="185.08,-549.69 195.67,-549.93 187.54,-543.13 185.08,-549.69"/>
</g>
<!-- 20 -->
<!-- name: &quot;Pos Z&quot;, typeName: &quot;std::optional&lt;float&gt;&quot;, id: 20, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node10" class="node">
<title>20</title>
<ellipse fill="none" stroke="black" cx="222.62" cy="-342" rx="33.1" ry="18"/>
<text text-anchor="middle" x="222.62" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">Pos Z</text>
<ellipse fill="none" stroke="black" cx="228.61" cy="-504" rx="33.1" ry="18"/>
<text text-anchor="middle" x="228.61" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">Pos Z</text>
</g>
<!-- 8&#45;&gt;20 -->
<g id="edge9" class="edge">
<title>8&#45;&gt;20</title>
<path fill="none" stroke="black" d="M103.47,-301.77C128.03,-310.13 159.19,-320.74 183.35,-328.97"/>
<polygon fill="black" stroke="black" points="182.22,-332.28 192.81,-332.19 184.48,-325.65 182.22,-332.28"/>
<path fill="none" stroke="black" d="M75.18,-387.01C91.85,-410.55 123.92,-451.74 160.08,-477 168.58,-482.93 178.58,-487.84 188.23,-491.77"/>
<polygon fill="black" stroke="black" points="186.88,-495 197.47,-495.25 189.35,-488.45 186.88,-495"/>
</g>
<!-- 22 -->
<!-- name: &quot;Rot X&quot;, typeName: &quot;std::optional&lt;float&gt;&quot;, id: 22, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node12" class="node">
<title>22</title>
<ellipse fill="none" stroke="black" cx="222.62" cy="-288" rx="33.6" ry="18"/>
<text text-anchor="middle" x="222.62" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">Rot X</text>
<ellipse fill="none" stroke="black" cx="228.61" cy="-450" rx="33.6" ry="18"/>
<text text-anchor="middle" x="228.61" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">Rot X</text>
</g>
<!-- 8&#45;&gt;22 -->
<g id="edge11" class="edge">
<title>8&#45;&gt;22</title>
<path fill="none" stroke="black" d="M124.35,-288C142.03,-288 160.96,-288 177.38,-288"/>
<polygon fill="black" stroke="black" points="177.33,-291.5 187.33,-288 177.33,-284.5 177.33,-291.5"/>
<path fill="none" stroke="black" d="M90.16,-385.31C109.35,-396.56 135.88,-411.49 160.08,-423 169.53,-427.49 179.93,-431.91 189.68,-435.82"/>
<polygon fill="black" stroke="black" points="188.33,-439.05 198.92,-439.45 190.89,-432.53 188.33,-439.05"/>
</g>
<!-- 24 -->
<!-- name: &quot;Rot Y&quot;, typeName: &quot;std::optional&lt;float&gt;&quot;, id: 24, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node14" class="node">
<title>24</title>
<ellipse fill="none" stroke="black" cx="222.62" cy="-234" rx="33.6" ry="18"/>
<text text-anchor="middle" x="222.62" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">Rot Y</text>
<ellipse fill="none" stroke="black" cx="228.61" cy="-396" rx="33.6" ry="18"/>
<text text-anchor="middle" x="228.61" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">Rot Y</text>
</g>
<!-- 8&#45;&gt;24 -->
<g id="edge13" class="edge">
<title>8&#45;&gt;24</title>
<path fill="none" stroke="black" d="M103.47,-274.23C127.87,-265.93 158.79,-255.4 182.88,-247.19"/>
<polygon fill="black" stroke="black" points="183.99,-250.51 192.33,-243.98 181.73,-243.89 183.99,-250.51"/>
<path fill="none" stroke="black" d="M116.93,-377.84C138.97,-381.46 164.12,-385.58 184.86,-388.99"/>
<polygon fill="black" stroke="black" points="184.27,-392.44 194.7,-390.6 185.4,-385.53 184.27,-392.44"/>
</g>
<!-- 26 -->
<!-- name: &quot;View Offset&quot;, typeName: &quot;std::optional&lt;class Vec2&gt;&quot;, id: 26, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- name: &quot;Rotation Speed&quot;, typeName: &quot;std::optional&lt;float&gt;&quot;, id: 26, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node16" class="node">
<title>26</title>
<ellipse fill="none" stroke="black" cx="222.62" cy="-180" rx="55.55" ry="18"/>
<text text-anchor="middle" x="222.62" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">View Offset</text>
<ellipse fill="none" stroke="black" cx="228.61" cy="-342" rx="68.53" ry="18"/>
<text text-anchor="middle" x="228.61" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">Rotation Speed</text>
</g>
<!-- 8&#45;&gt;26 -->
<g id="edge15" class="edge">
<title>8&#45;&gt;26</title>
<path fill="none" stroke="black" d="M80.8,-270.5C99.41,-252.84 130.05,-225.6 160.08,-207 164.92,-204.01 170.14,-201.17 175.44,-198.55"/>
<polygon fill="black" stroke="black" points="176.68,-201.83 184.24,-194.41 173.7,-195.5 176.68,-201.83"/>
<path fill="none" stroke="black" d="M116.93,-360.16C130.24,-357.97 144.69,-355.6 158.61,-353.32"/>
<polygon fill="black" stroke="black" points="158.84,-356.83 168.14,-351.76 157.71,-349.92 158.84,-356.83"/>
</g>
<!-- 31 -->
<!-- name: &quot;Radius&quot;, typeName: &quot;std::optional&lt;float&gt;&quot;, id: 31, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 28 -->
<!-- name: &quot;Snap to Target&quot;, typeName: &quot;std::optional&lt;bool&gt;&quot;, id: 28, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node18" class="node">
<title>31</title>
<ellipse fill="none" stroke="black" cx="222.62" cy="-126" rx="36.59" ry="18"/>
<text text-anchor="middle" x="222.62" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Radius</text>
<title>28</title>
<ellipse fill="none" stroke="black" cx="228.61" cy="-288" rx="66.03" ry="18"/>
<text text-anchor="middle" x="228.61" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">Snap to Target</text>
</g>
<!-- 8&#45;&gt;31 -->
<!-- 8&#45;&gt;28 -->
<g id="edge17" class="edge">
<title>8&#45;&gt;31</title>
<path fill="none" stroke="black" d="M71.96,-269.9C86.73,-241.54 118.8,-186.42 160.08,-153 166.18,-148.07 173.31,-143.86 180.52,-140.35"/>
<polygon fill="black" stroke="black" points="181.92,-143.56 189.64,-136.3 179.08,-137.16 181.92,-143.56"/>
<title>8&#45;&gt;28</title>
<path fill="none" stroke="black" d="M90.16,-352.69C109.35,-341.44 135.88,-326.51 160.08,-315 165.93,-312.22 172.14,-309.47 178.33,-306.85"/>
<polygon fill="black" stroke="black" points="179.37,-310.21 187.28,-303.16 176.7,-303.74 179.37,-310.21"/>
</g>
<!-- 33 -->
<!-- name: &quot;Listener&quot;, typeName: &quot;std::optional&lt;enum CameraPreset::AudioListener&gt;&quot;, id: 33, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- name: &quot;View Offset&quot;, typeName: &quot;std::optional&lt;class Vec2&gt;&quot;, id: 33, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node20" class="node">
<title>33</title>
<ellipse fill="none" stroke="black" cx="222.62" cy="-72" rx="40.09" ry="18"/>
<text text-anchor="middle" x="222.62" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Listener</text>
<ellipse fill="none" stroke="black" cx="228.61" cy="-234" rx="55.55" ry="18"/>
<text text-anchor="middle" x="228.61" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">View Offset</text>
</g>
<!-- 8&#45;&gt;33 -->
<g id="edge19" class="edge">
<title>8&#45;&gt;33</title>
<path fill="none" stroke="black" d="M67.94,-269.6C78.67,-232.58 107.57,-148.41 160.08,-99 165.33,-94.07 171.61,-89.95 178.14,-86.53"/>
<polygon fill="black" stroke="black" points="179.51,-89.75 187.11,-82.36 176.56,-83.4 179.51,-89.75"/>
<path fill="none" stroke="black" d="M75.18,-350.99C91.85,-327.45 123.92,-286.26 160.08,-261 165.39,-257.3 171.28,-253.99 177.3,-251.08"/>
<polygon fill="black" stroke="black" points="178.4,-254.42 186.11,-247.15 175.55,-248.03 178.4,-254.42"/>
</g>
<!-- 38 -->
<!-- name: &quot;Player Effects&quot;, typeName: &quot;std::optional&lt;bool&gt;&quot;, id: 38, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- name: &quot;Entity Offset&quot;, typeName: &quot;std::optional&lt;class Vec3&gt;&quot;, id: 38, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;Changing the camera&#39;s pivot point from the center of the entity&quot; -->
<g id="node22" class="node">
<title>38</title>
<ellipse fill="none" stroke="black" cx="222.62" cy="-18" rx="62.54" ry="18"/>
<text text-anchor="middle" x="222.62" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Player Effects</text>
<ellipse fill="none" stroke="black" cx="228.61" cy="-180" rx="58.05" ry="18"/>
<text text-anchor="middle" x="228.61" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Entity Offset</text>
</g>
<!-- 8&#45;&gt;38 -->
<g id="edge21" class="edge">
<title>8&#45;&gt;38</title>
<path fill="none" stroke="black" d="M65.55,-269.59C72.52,-225.25 95.98,-111.29 160.08,-45 162.97,-42.01 166.24,-39.34 169.74,-36.94"/>
<polygon fill="black" stroke="black" points="171.28,-40.1 178.11,-32 167.72,-34.07 171.28,-40.1"/>
<path fill="none" stroke="black" d="M69.42,-350.83C81.86,-317.8 112.42,-247.61 160.08,-207 164.48,-203.26 169.45,-199.99 174.66,-197.15"/>
<polygon fill="black" stroke="black" points="176.05,-200.37 183.52,-192.85 173,-194.07 176.05,-200.37"/>
</g>
<!-- 43 -->
<!-- name: &quot;Radius&quot;, typeName: &quot;std::optional&lt;float&gt;&quot;, id: 43, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node24" class="node">
<title>43</title>
<ellipse fill="none" stroke="black" cx="228.61" cy="-126" rx="36.59" ry="18"/>
<text text-anchor="middle" x="228.61" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Radius</text>
</g>
<!-- 8&#45;&gt;43 -->
<g id="edge23" class="edge">
<title>8&#45;&gt;43</title>
<path fill="none" stroke="black" d="M66.42,-350.68C74.89,-309.73 100.74,-209.91 160.08,-153 166.89,-146.48 175.46,-141.46 184.2,-137.63"/>
<polygon fill="black" stroke="black" points="185.35,-140.94 193.42,-134.07 182.83,-134.41 185.35,-140.94"/>
</g>
<!-- 45 -->
<!-- name: &quot;Listener&quot;, typeName: &quot;std::optional&lt;enum CameraPreset::AudioListener&gt;&quot;, id: 45, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node26" class="node">
<title>45</title>
<ellipse fill="none" stroke="black" cx="228.61" cy="-72" rx="40.09" ry="18"/>
<text text-anchor="middle" x="228.61" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Listener</text>
</g>
<!-- 8&#45;&gt;45 -->
<g id="edge25" class="edge">
<title>8&#45;&gt;45</title>
<path fill="none" stroke="black" d="M64.55,-350.57C69.41,-302.67 88.82,-172.83 160.08,-99 166.06,-92.81 173.64,-88 181.54,-84.28"/>
<polygon fill="black" stroke="black" points="182.69,-87.59 190.62,-80.56 180.03,-81.12 182.69,-87.59"/>
</g>
<!-- 50 -->
<!-- name: &quot;Player Effects&quot;, typeName: &quot;std::optional&lt;bool&gt;&quot;, id: 50, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node28" class="node">
<title>50</title>
<ellipse fill="none" stroke="black" cx="228.61" cy="-18" rx="62.54" ry="18"/>
<text text-anchor="middle" x="228.61" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Player Effects</text>
</g>
<!-- 8&#45;&gt;50 -->
<g id="edge27" class="edge">
<title>8&#45;&gt;50</title>
<path fill="none" stroke="black" d="M63.24,-350.58C64.82,-296.49 76.67,-136.22 160.08,-45 163.34,-41.44 167.14,-38.33 171.23,-35.64"/>
<polygon fill="black" stroke="black" points="172.88,-38.72 179.9,-30.78 169.46,-32.61 172.88,-38.72"/>
</g>
<!-- 10 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 10, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>10</title>
<ellipse fill="none" stroke="black" cx="518.43" cy="-558" rx="31.1" ry="18"/>
<text text-anchor="middle" x="518.43" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="530.41" cy="-720" rx="31.1" ry="18"/>
<text text-anchor="middle" x="530.41" y="-714.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 9&#45;&gt;10 -->
<g id="edge2" class="edge">
<title>9&#45;&gt;10</title>
<path fill="none" stroke="black" d="M255.07,-558C308.36,-558 416.42,-558 475.88,-558"/>
<polygon fill="black" stroke="black" points="475.59,-561.5 485.58,-558 475.58,-554.5 475.59,-561.5"/>
<path fill="none" stroke="black" d="M261.13,-720C315.53,-720 427.05,-720 487.77,-720"/>
<polygon fill="black" stroke="black" points="487.69,-723.5 497.69,-720 487.69,-716.5 487.69,-723.5"/>
</g>
<!-- 12 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 12, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>12</title>
<ellipse fill="none" stroke="black" cx="518.43" cy="-504" rx="31.1" ry="18"/>
<text text-anchor="middle" x="518.43" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="530.41" cy="-666" rx="31.1" ry="18"/>
<text text-anchor="middle" x="530.41" y="-660.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 11&#45;&gt;12 -->
<g id="edge4" class="edge">
<title>11&#45;&gt;12</title>
<path fill="none" stroke="black" d="M279.93,-504C337.12,-504 424.38,-504 475.68,-504"/>
<polygon fill="black" stroke="black" points="475.47,-507.5 485.47,-504 475.47,-500.5 475.47,-507.5"/>
<path fill="none" stroke="black" d="M286,-666C344.66,-666 435.14,-666 487.68,-666"/>
<polygon fill="black" stroke="black" points="487.41,-669.5 497.41,-666 487.41,-662.5 487.41,-669.5"/>
</g>
<!-- 17 -->
<!-- name: &quot;std::optional&lt;float&gt;&quot;, typeName: &quot;&quot;, id: 17, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>17</title>
<ellipse fill="none" stroke="black" cx="518.43" cy="-450" rx="83.5" ry="18"/>
<text text-anchor="middle" x="518.43" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
<ellipse fill="none" stroke="black" cx="530.41" cy="-612" rx="83.5" ry="18"/>
<text text-anchor="middle" x="530.41" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
</g>
<!-- 13&#45;&gt;17 -->
<g id="edge6" class="edge">
<title>13&#45;&gt;17</title>
<path fill="none" stroke="black" d="M257.04,-450C297.23,-450 366.38,-450 423.33,-450"/>
<polygon fill="black" stroke="black" points="423.03,-453.5 433.03,-450 423.03,-446.5 423.03,-453.5"/>
<path fill="none" stroke="black" d="M263.13,-612C304.54,-612 376.73,-612 435.5,-612"/>
<polygon fill="black" stroke="black" points="435.17,-615.5 445.17,-612 435.17,-608.5 435.17,-615.5"/>
</g>
<!-- 19 -->
<!-- name: &quot;std::optional&lt;float&gt;&quot;, typeName: &quot;&quot;, id: 19, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>19</title>
<ellipse fill="none" stroke="black" cx="518.43" cy="-396" rx="83.5" ry="18"/>
<text text-anchor="middle" x="518.43" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
<ellipse fill="none" stroke="black" cx="530.41" cy="-558" rx="83.5" ry="18"/>
<text text-anchor="middle" x="530.41" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
</g>
<!-- 18&#45;&gt;19 -->
<g id="edge8" class="edge">
<title>18&#45;&gt;19</title>
<path fill="none" stroke="black" d="M257.04,-396C297.23,-396 366.38,-396 423.33,-396"/>
<polygon fill="black" stroke="black" points="423.03,-399.5 433.03,-396 423.03,-392.5 423.03,-399.5"/>
<path fill="none" stroke="black" d="M263.13,-558C304.54,-558 376.73,-558 435.5,-558"/>
<polygon fill="black" stroke="black" points="435.17,-561.5 445.17,-558 435.17,-554.5 435.17,-561.5"/>
</g>
<!-- 21 -->
<!-- name: &quot;std::optional&lt;float&gt;&quot;, typeName: &quot;&quot;, id: 21, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node11" class="node">
<title>21</title>
<ellipse fill="none" stroke="black" cx="518.43" cy="-342" rx="83.5" ry="18"/>
<text text-anchor="middle" x="518.43" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
<ellipse fill="none" stroke="black" cx="530.41" cy="-504" rx="83.5" ry="18"/>
<text text-anchor="middle" x="530.41" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
</g>
<!-- 20&#45;&gt;21 -->
<g id="edge10" class="edge">
<title>20&#45;&gt;21</title>
<path fill="none" stroke="black" d="M256.19,-342C296.25,-342 366,-342 423.35,-342"/>
<polygon fill="black" stroke="black" points="423.13,-345.5 433.13,-342 423.13,-338.5 423.13,-345.5"/>
<path fill="none" stroke="black" d="M261.98,-504C303.16,-504 376.05,-504 435.34,-504"/>
<polygon fill="black" stroke="black" points="435.11,-507.5 445.11,-504 435.11,-500.5 435.11,-507.5"/>
</g>
<!-- 23 -->
<!-- name: &quot;std::optional&lt;float&gt;&quot;, typeName: &quot;&quot;, id: 23, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node13" class="node">
<title>23</title>
<ellipse fill="none" stroke="black" cx="518.43" cy="-288" rx="83.5" ry="18"/>
<text text-anchor="middle" x="518.43" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
<ellipse fill="none" stroke="black" cx="530.41" cy="-450" rx="83.5" ry="18"/>
<text text-anchor="middle" x="530.41" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
</g>
<!-- 22&#45;&gt;23 -->
<g id="edge12" class="edge">
<title>22&#45;&gt;23</title>
<path fill="none" stroke="black" d="M256.47,-288C296.55,-288 366.04,-288 423.24,-288"/>
<polygon fill="black" stroke="black" points="422.99,-291.5 432.99,-288 422.99,-284.5 422.99,-291.5"/>
<path fill="none" stroke="black" d="M262.55,-450C303.85,-450 376.39,-450 435.42,-450"/>
<polygon fill="black" stroke="black" points="435.14,-453.5 445.14,-450 435.14,-446.5 435.14,-453.5"/>
</g>
<!-- 25 -->
<!-- name: &quot;std::optional&lt;float&gt;&quot;, typeName: &quot;&quot;, id: 25, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node15" class="node">
<title>25</title>
<ellipse fill="none" stroke="black" cx="518.43" cy="-234" rx="83.5" ry="18"/>
<text text-anchor="middle" x="518.43" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
<ellipse fill="none" stroke="black" cx="530.41" cy="-396" rx="83.5" ry="18"/>
<text text-anchor="middle" x="530.41" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
</g>
<!-- 24&#45;&gt;25 -->
<g id="edge14" class="edge">
<title>24&#45;&gt;25</title>
<path fill="none" stroke="black" d="M256.47,-234C296.55,-234 366.04,-234 423.24,-234"/>
<polygon fill="black" stroke="black" points="422.99,-237.5 432.99,-234 422.99,-230.5 422.99,-237.5"/>
<path fill="none" stroke="black" d="M262.55,-396C303.85,-396 376.39,-396 435.42,-396"/>
<polygon fill="black" stroke="black" points="435.14,-399.5 445.14,-396 435.14,-392.5 435.14,-399.5"/>
</g>
<!-- 30 -->
<!-- name: &quot;std::optional&lt;class Vec2&gt;&quot;, typeName: &quot;&quot;, id: 30, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 27 -->
<!-- name: &quot;std::optional&lt;float&gt;&quot;, typeName: &quot;&quot;, id: 27, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node17" class="node">
<title>30</title>
<ellipse fill="none" stroke="black" cx="518.43" cy="-180" rx="107.45" ry="18"/>
<text text-anchor="middle" x="518.43" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;class Vec2&gt;</text>
<title>27</title>
<ellipse fill="none" stroke="black" cx="530.41" cy="-342" rx="83.5" ry="18"/>
<text text-anchor="middle" x="530.41" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
</g>
<!-- 26&#45;&gt;30 -->
<!-- 26&#45;&gt;27 -->
<g id="edge16" class="edge">
<title>26&#45;&gt;30</title>
<path fill="none" stroke="black" d="M278.54,-180C312.55,-180 357.55,-180 399.33,-180"/>
<polygon fill="black" stroke="black" points="399.21,-183.5 409.21,-180 399.21,-176.5 399.21,-183.5"/>
<title>26&#45;&gt;27</title>
<path fill="none" stroke="black" d="M297.27,-342C337.94,-342 390.31,-342 435.01,-342"/>
<polygon fill="black" stroke="black" points="434.98,-345.5 444.98,-342 434.98,-338.5 434.98,-345.5"/>
</g>
<!-- 32 -->
<!-- name: &quot;std::optional&lt;float&gt;&quot;, typeName: &quot;&quot;, id: 32, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;std::optional&lt;bool&gt;&quot;, typeName: &quot;&quot;, id: 32, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node19" class="node">
<title>32</title>
<ellipse fill="none" stroke="black" cx="518.43" cy="-126" rx="83.5" ry="18"/>
<text text-anchor="middle" x="518.43" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
<ellipse fill="none" stroke="black" cx="530.41" cy="-288" rx="84" ry="18"/>
<text text-anchor="middle" x="530.41" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;bool&gt;</text>
</g>
<!-- 31&#45;&gt;32 -->
<!-- 28&#45;&gt;32 -->
<g id="edge18" class="edge">
<title>31&#45;&gt;32</title>
<path fill="none" stroke="black" d="M259.65,-126C300.15,-126 367.53,-126 423.24,-126"/>
<polygon fill="black" stroke="black" points="423.06,-129.5 433.06,-126 423.06,-122.5 423.06,-129.5"/>
<title>28&#45;&gt;32</title>
<path fill="none" stroke="black" d="M295.03,-288C335.93,-288 389.29,-288 434.76,-288"/>
<polygon fill="black" stroke="black" points="434.62,-291.5 444.62,-288 434.62,-284.5 434.62,-291.5"/>
</g>
<!-- 37 -->
<!-- name: &quot;std::optional&lt;enum CameraPreset::AudioListener&gt;&quot;, typeName: &quot;&quot;, id: 37, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;std::optional&lt;class Vec2&gt;&quot;, typeName: &quot;&quot;, id: 37, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node21" class="node">
<title>37</title>
<ellipse fill="none" stroke="black" cx="518.43" cy="-72" rx="197.27" ry="18"/>
<text text-anchor="middle" x="518.43" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;enum CameraPreset::AudioListener&gt;</text>
<ellipse fill="none" stroke="black" cx="530.41" cy="-234" rx="107.45" ry="18"/>
<text text-anchor="middle" x="530.41" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;class Vec2&gt;</text>
</g>
<!-- 33&#45;&gt;37 -->
<g id="edge20" class="edge">
<title>33&#45;&gt;37</title>
<path fill="none" stroke="black" d="M262.94,-72C276.35,-72 292.39,-72 309.82,-72"/>
<polygon fill="black" stroke="black" points="309.33,-75.5 319.33,-72 309.33,-68.5 309.33,-75.5"/>
<path fill="none" stroke="black" d="M284.6,-234C320.06,-234 367.54,-234 411.26,-234"/>
<polygon fill="black" stroke="black" points="411.06,-237.5 421.06,-234 411.06,-230.5 411.06,-237.5"/>
</g>
<!-- 42 -->
<!-- name: &quot;std::optional&lt;bool&gt;&quot;, typeName: &quot;&quot;, id: 42, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;std::optional&lt;class Vec3&gt;&quot;, typeName: &quot;&quot;, id: 42, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node23" class="node">
<title>42</title>
<ellipse fill="none" stroke="black" cx="518.43" cy="-18" rx="84" ry="18"/>
<text text-anchor="middle" x="518.43" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;bool&gt;</text>
<ellipse fill="none" stroke="black" cx="530.41" cy="-180" rx="107.45" ry="18"/>
<text text-anchor="middle" x="530.41" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;class Vec3&gt;</text>
</g>
<!-- 38&#45;&gt;42 -->
<g id="edge22" class="edge">
<title>38&#45;&gt;42</title>
<path fill="none" stroke="black" d="M285.57,-18C325.39,-18 377.88,-18 422.85,-18"/>
<polygon fill="black" stroke="black" points="422.59,-21.5 432.59,-18 422.59,-14.5 422.59,-21.5"/>
<path fill="none" stroke="black" d="M287.06,-180C322.26,-180 368.61,-180 411.34,-180"/>
<polygon fill="black" stroke="black" points="411.18,-183.5 421.18,-180 411.18,-176.5 411.18,-183.5"/>
</g>
<!-- 44 -->
<!-- name: &quot;std::optional&lt;float&gt;&quot;, typeName: &quot;&quot;, id: 44, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node25" class="node">
<title>44</title>
<ellipse fill="none" stroke="black" cx="530.41" cy="-126" rx="83.5" ry="18"/>
<text text-anchor="middle" x="530.41" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;float&gt;</text>
</g>
<!-- 43&#45;&gt;44 -->
<g id="edge24" class="edge">
<title>43&#45;&gt;44</title>
<path fill="none" stroke="black" d="M265.48,-126C307.15,-126 377.56,-126 435.18,-126"/>
<polygon fill="black" stroke="black" points="435,-129.5 445,-126 435,-122.5 435,-129.5"/>
</g>
<!-- 49 -->
<!-- name: &quot;std::optional&lt;enum CameraPreset::AudioListener&gt;&quot;, typeName: &quot;&quot;, id: 49, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node27" class="node">
<title>49</title>
<ellipse fill="none" stroke="black" cx="530.41" cy="-72" rx="197.27" ry="18"/>
<text text-anchor="middle" x="530.41" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;enum CameraPreset::AudioListener&gt;</text>
</g>
<!-- 45&#45;&gt;49 -->
<g id="edge26" class="edge">
<title>45&#45;&gt;49</title>
<path fill="none" stroke="black" d="M269.11,-72C283.87,-72 301.83,-72 321.34,-72"/>
<polygon fill="black" stroke="black" points="321.15,-75.5 331.15,-72 321.15,-68.5 321.15,-75.5"/>
</g>
<!-- 51 -->
<!-- name: &quot;std::optional&lt;bool&gt;&quot;, typeName: &quot;&quot;, id: 51, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node29" class="node">
<title>51</title>
<ellipse fill="none" stroke="black" cx="530.41" cy="-18" rx="84" ry="18"/>
<text text-anchor="middle" x="530.41" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;bool&gt;</text>
</g>
<!-- 50&#45;&gt;51 -->
<g id="edge28" class="edge">
<title>50&#45;&gt;51</title>
<path fill="none" stroke="black" d="M291.37,-18C332.7,-18 387.89,-18 434.73,-18"/>
<polygon fill="black" stroke="black" points="434.62,-21.5 444.62,-18 434.62,-14.5 434.62,-21.5"/>
</g>
</g>
</svg>

Before

(image error) Size: 16 KiB

After

(image error) Size: 21 KiB

@ -81,16 +81,16 @@
<path fill="none" stroke="black" d="M422.42,-20.34C430.48,-20.15 438.72,-19.95 446.84,-19.76"/>
<polygon fill="black" stroke="black" points="446.77,-23.27 456.69,-19.53 446.61,-16.27 446.77,-23.27"/>
</g>
<!-- 43 -->
<!-- name: &quot;CameraPreset&quot;, typeName: &quot;&quot;, id: 43, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 52 -->
<!-- name: &quot;CameraPreset&quot;, typeName: &quot;&quot;, id: 52, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>43</title>
<title>52</title>
<ellipse fill="none" stroke="black" cx="689.9" cy="-18" rx="62.04" ry="18"/>
<text text-anchor="middle" x="689.9" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">CameraPreset</text>
</g>
<!-- 7&#45;&gt;43 -->
<!-- 7&#45;&gt;52 -->
<g id="edge6" class="edge">
<title>7&#45;&gt;43</title>
<title>7&#45;&gt;52</title>
<path fill="none" stroke="black" d="M587.65,-18C596.94,-18 606.56,-18 616.01,-18"/>
<polygon fill="black" stroke="black" points="615.91,-21.5 625.91,-18 615.91,-14.5 615.91,-21.5"/>
</g>

Before

(image error) Size: 5.0 KiB

After

(image error) Size: 5.0 KiB

@ -29,16 +29,16 @@
<path fill="none" stroke="black" d="M182.22,-18C190.23,-18 198.31,-18 206.21,-18"/>
<polygon fill="black" stroke="black" points="206.15,-21.5 216.15,-18 206.15,-14.5 206.15,-21.5"/>
</g>
<!-- 44 -->
<!-- name: &quot;CameraPresets&quot;, typeName: &quot;&quot;, id: 44, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 53 -->
<!-- name: &quot;CameraPresets&quot;, typeName: &quot;&quot;, id: 53, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>44</title>
<title>53</title>
<ellipse fill="none" stroke="black" cx="457.06" cy="-18" rx="66.03" ry="18"/>
<text text-anchor="middle" x="457.06" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">CameraPresets</text>
</g>
<!-- 1&#45;&gt;44 -->
<!-- 1&#45;&gt;53 -->
<g id="edge2" class="edge">
<title>1&#45;&gt;44</title>
<title>1&#45;&gt;53</title>
<path fill="none" stroke="black" d="M355.09,-18C363.05,-18 371.23,-18 379.31,-18"/>
<polygon fill="black" stroke="black" points="379.13,-21.5 389.13,-18 379.13,-14.5 379.13,-21.5"/>
</g>

Before

(image error) Size: 2.3 KiB

After

(image error) Size: 2.3 KiB

@ -107,16 +107,16 @@
<path fill="none" stroke="black" d="M366.87,-72C408.29,-72 469.44,-72 508.84,-72"/>
<polygon fill="black" stroke="black" points="508.82,-75.5 518.82,-72 508.82,-68.5 508.82,-75.5"/>
</g>
<!-- 11 -->
<!-- name: &quot;std::optional&lt;unsigned int&gt;&quot;, typeName: &quot;&quot;, id: 11, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 8 -->
<!-- name: &quot;std::optional&lt;unsigned int&gt;&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>11</title>
<title>8</title>
<ellipse fill="none" stroke="black" cx="548.37" cy="-18" rx="111.44" ry="18"/>
<text text-anchor="middle" x="548.37" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;unsigned int&gt;</text>
</g>
<!-- 7&#45;&gt;11 -->
<!-- 7&#45;&gt;8 -->
<g id="edge8" class="edge">
<title>7&#45;&gt;11</title>
<title>7&#45;&gt;8</title>
<path fill="none" stroke="black" d="M401.42,-18C409.16,-18 417.14,-18 425.18,-18"/>
<polygon fill="black" stroke="black" points="425.07,-21.5 435.07,-18 425.07,-14.5 425.07,-21.5"/>
</g>

Before

(image error) Size: 6.9 KiB

After

(image error) Size: 6.9 KiB

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 11.0.0 (20240428.1522)
-->
<!-- Title: ContainerRegistryCleanupPacket Pages: 1 -->
<svg width="1077pt" height="98pt"
viewBox="0.00 0.00 1076.81 98.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 94)">
<title>ContainerRegistryCleanupPacket</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-94 1072.81,-94 1072.81,4 -4,4"/>
<!-- 0 -->
<!-- name: &quot;ContainerRegistryCleanupPacket&quot;, typeName: &quot;&quot;, id: 0, branchId: 317, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>0</title>
<ellipse fill="none" stroke="black" cx="132.9" cy="-45" rx="132.9" ry="18"/>
<text text-anchor="middle" x="132.9" y="-39.58" font-family="Times New Roman,serif" font-size="14.00">ContainerRegistryCleanupPacket</text>
</g>
<!-- 1 -->
<!-- name: &quot;Removed Containers&quot;, typeName: &quot;&quot;, id: 1, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>1</title>
<ellipse fill="none" stroke="black" cx="390.79" cy="-45" rx="88.99" ry="18"/>
<text text-anchor="middle" x="390.79" y="-39.58" font-family="Times New Roman,serif" font-size="14.00">Removed Containers</text>
</g>
<!-- 0&#45;&gt;1 -->
<g id="edge1" class="edge">
<title>0&#45;&gt;1</title>
<path fill="none" stroke="black" d="M265.97,-45C274.01,-45 282.04,-45 289.91,-45"/>
<polygon fill="black" stroke="black" points="289.81,-48.5 299.81,-45 289.81,-41.5 289.81,-48.5"/>
</g>
<!-- 2 -->
<!-- name: &quot;Array Size&quot;, typeName: &quot;&quot;, id: 2, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>2</title>
<ellipse fill="none" stroke="black" cx="781.81" cy="-72" rx="49.57" ry="18"/>
<text text-anchor="middle" x="781.81" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
</g>
<!-- 1&#45;&gt;2 -->
<g id="edge2" class="edge">
<title>1&#45;&gt;2</title>
<path fill="none" stroke="black" d="M475.72,-50.83C549.79,-55.97 655.88,-63.33 721.45,-67.88"/>
<polygon fill="black" stroke="black" points="721.08,-71.36 731.3,-68.56 721.57,-64.38 721.08,-71.36"/>
</g>
<!-- 4 -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 4, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>4</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="587.3" cy="-22" rx="71.52" ry="18"/>
<text text-anchor="middle" x="587.3" y="-16.57" font-family="Times New Roman,serif" font-size="14.00">example element</text>
</g>
<!-- 1&#45;&gt;4 -->
<g id="edge4" class="edge">
<title>1&#45;&gt;4</title>
<path fill="none" stroke="black" d="M468.66,-35.91C482.43,-34.28 496.78,-32.59 510.52,-30.96"/>
<polygon fill="black" stroke="black" points="510.87,-34.44 520.39,-29.79 510.05,-27.49 510.87,-34.44"/>
</g>
<!-- 3 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 3, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>3</title>
<ellipse fill="none" stroke="black" cx="986.8" cy="-72" rx="66.53" ry="18"/>
<text text-anchor="middle" x="986.8" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 2&#45;&gt;3 -->
<g id="edge3" class="edge">
<title>2&#45;&gt;3</title>
<path fill="none" stroke="black" d="M831.69,-72C854.79,-72 882.91,-72 908.77,-72"/>
<polygon fill="black" stroke="black" points="908.57,-75.5 918.57,-72 908.57,-68.5 908.57,-75.5"/>
</g>
<!-- 5 -->
<!-- name: &quot;Full Container Name&quot;, typeName: &quot;FullContainerName&quot;, id: 5, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>5</title>
<ellipse fill="none" stroke="black" cx="781.81" cy="-18" rx="86.99" ry="18"/>
<text text-anchor="middle" x="781.81" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Full Container Name</text>
</g>
<!-- 4&#45;&gt;5 -->
<g id="edge5" class="edge">
<title>4&#45;&gt;5</title>
<path fill="none" stroke="black" d="M658.89,-20.53C666.93,-20.37 675.23,-20.19 683.54,-20.02"/>
<polygon fill="black" stroke="black" points="683.41,-23.52 693.34,-19.82 683.27,-16.53 683.41,-23.52"/>
</g>
<!-- 6 -->
<!-- name: &quot;FullContainerName&quot;, typeName: &quot;&quot;, id: 6, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>6</title>
<ellipse fill="none" stroke="black" cx="986.8" cy="-18" rx="82" ry="18"/>
<text text-anchor="middle" x="986.8" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">FullContainerName</text>
</g>
<!-- 5&#45;&gt;6 -->
<g id="edge6" class="edge">
<title>5&#45;&gt;6</title>
<path fill="none" stroke="black" d="M869.19,-18C877.02,-18 884.98,-18 892.86,-18"/>
<polygon fill="black" stroke="black" points="892.82,-21.5 902.82,-18 892.82,-14.5 892.82,-21.5"/>
</g>
</g>
</svg>

After

(image error) Size: 5.1 KiB

@ -4,147 +4,173 @@
<!-- Generated by graphviz version 11.0.0 (20240428.1522)
-->
<!-- Title: EmotePacket Pages: 1 -->
<svg width="496pt" height="260pt"
viewBox="0.00 0.00 496.16 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
<svg width="516pt" height="314pt"
viewBox="0.00 0.00 516.12 314.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 310)">
<title>EmotePacket</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-256 492.16,-256 492.16,4 -4,4"/>
<polygon fill="white" stroke="none" points="-4,4 -4,-310 512.12,-310 512.12,4 -4,4"/>
<!-- 0 -->
<!-- name: &quot;EmotePacket&quot;, typeName: &quot;&quot;, id: 0, branchId: 138, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>0</title>
<ellipse fill="none" stroke="black" cx="59.55" cy="-126" rx="59.55" ry="18"/>
<text text-anchor="middle" x="59.55" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">EmotePacket</text>
<ellipse fill="none" stroke="black" cx="59.55" cy="-153" rx="59.55" ry="18"/>
<text text-anchor="middle" x="59.55" y="-147.57" font-family="Times New Roman,serif" font-size="14.00">EmotePacket</text>
</g>
<!-- 1 -->
<!-- name: &quot;Actor Runtime Id&quot;, typeName: &quot;ActorRuntimeID&quot;, id: 1, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>1</title>
<ellipse fill="none" stroke="black" cx="231.11" cy="-234" rx="76.01" ry="18"/>
<text text-anchor="middle" x="231.11" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">Actor Runtime Id</text>
<ellipse fill="none" stroke="black" cx="241.09" cy="-288" rx="76.01" ry="18"/>
<text text-anchor="middle" x="241.09" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">Actor Runtime Id</text>
</g>
<!-- 0&#45;&gt;1 -->
<g id="edge1" class="edge">
<title>0&#45;&gt;1</title>
<path fill="none" stroke="black" d="M77.19,-143.62C95.01,-161.63 124.83,-189.39 155.09,-207 160.4,-210.09 166.12,-212.92 171.96,-215.48"/>
<polygon fill="black" stroke="black" points="170.53,-218.68 181.11,-219.25 173.19,-212.21 170.53,-218.68"/>
<path fill="none" stroke="black" d="M71.73,-171.01C87.47,-194.94 118.4,-236.98 155.09,-261 161.27,-265.05 168.1,-268.52 175.12,-271.5"/>
<polygon fill="black" stroke="black" points="173.49,-274.62 184.08,-274.97 176.02,-268.09 173.49,-274.62"/>
</g>
<!-- 3 -->
<!-- name: &quot;Emote Id&quot;, typeName: &quot;&quot;, id: 3, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>3</title>
<ellipse fill="none" stroke="black" cx="231.11" cy="-180" rx="45.08" ry="18"/>
<text text-anchor="middle" x="231.11" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Emote Id</text>
<ellipse fill="none" stroke="black" cx="241.09" cy="-234" rx="45.08" ry="18"/>
<text text-anchor="middle" x="241.09" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">Emote Id</text>
</g>
<!-- 0&#45;&gt;3 -->
<g id="edge3" class="edge">
<title>0&#45;&gt;3</title>
<path fill="none" stroke="black" d="M101.59,-139.07C126.55,-147.02 158.47,-157.18 184.25,-165.4"/>
<polygon fill="black" stroke="black" points="182.85,-168.62 193.45,-168.32 184.98,-161.95 182.85,-168.62"/>
<path fill="none" stroke="black" d="M85.87,-169.42C104.48,-181 130.68,-196.3 155.09,-207 166.82,-212.14 179.84,-216.78 192.09,-220.7"/>
<polygon fill="black" stroke="black" points="191.03,-224.04 201.62,-223.65 193.1,-217.35 191.03,-224.04"/>
</g>
<!-- 5 -->
<!-- name: &quot;Xuid&quot;, typeName: &quot;&quot;, id: 5, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Emote Length Ticks&quot;, typeName: &quot;&quot;, id: 5, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>5</title>
<ellipse fill="none" stroke="black" cx="231.11" cy="-126" rx="28.61" ry="18"/>
<text text-anchor="middle" x="231.11" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Xuid</text>
<ellipse fill="none" stroke="black" cx="241.09" cy="-180" rx="85.99" ry="18"/>
<text text-anchor="middle" x="241.09" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Emote Length Ticks</text>
</g>
<!-- 0&#45;&gt;5 -->
<g id="edge5" class="edge">
<title>0&#45;&gt;5</title>
<path fill="none" stroke="black" d="M119.37,-126C142.99,-126 169.58,-126 190.79,-126"/>
<polygon fill="black" stroke="black" points="190.76,-129.5 200.76,-126 190.76,-122.5 190.76,-129.5"/>
<path fill="none" stroke="black" d="M113.44,-160.95C127.76,-163.11 143.59,-165.49 159.07,-167.82"/>
<polygon fill="black" stroke="black" points="158.35,-171.25 168.76,-169.27 159.39,-164.32 158.35,-171.25"/>
</g>
<!-- 7 -->
<!-- name: &quot;PlatformId&quot;, typeName: &quot;&quot;, id: 7, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Xuid&quot;, typeName: &quot;&quot;, id: 7, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node8" class="node">
<title>7</title>
<ellipse fill="none" stroke="black" cx="231.11" cy="-72" rx="50.56" ry="18"/>
<text text-anchor="middle" x="231.11" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">PlatformId</text>
<ellipse fill="none" stroke="black" cx="241.09" cy="-126" rx="28.61" ry="18"/>
<text text-anchor="middle" x="241.09" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Xuid</text>
</g>
<!-- 0&#45;&gt;7 -->
<g id="edge7" class="edge">
<title>0&#45;&gt;7</title>
<path fill="none" stroke="black" d="M101.59,-112.93C125.67,-105.26 156.23,-95.53 181.5,-87.48"/>
<polygon fill="black" stroke="black" points="182.43,-90.86 190.9,-84.49 180.31,-84.19 182.43,-90.86"/>
<path fill="none" stroke="black" d="M113.44,-145.05C141.7,-140.8 175.85,-135.66 201.57,-131.79"/>
<polygon fill="black" stroke="black" points="201.87,-135.29 211.24,-130.34 200.83,-128.36 201.87,-135.29"/>
</g>
<!-- 9 -->
<!-- name: &quot;Flags&quot;, typeName: &quot;&quot;, id: 9, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;PlatformId&quot;, typeName: &quot;&quot;, id: 9, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node10" class="node">
<title>9</title>
<ellipse fill="none" stroke="black" cx="231.11" cy="-18" rx="30.61" ry="18"/>
<text text-anchor="middle" x="231.11" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Flags</text>
<ellipse fill="none" stroke="black" cx="241.09" cy="-72" rx="50.56" ry="18"/>
<text text-anchor="middle" x="241.09" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">PlatformId</text>
</g>
<!-- 0&#45;&gt;9 -->
<g id="edge9" class="edge">
<title>0&#45;&gt;9</title>
<path fill="none" stroke="black" d="M77.19,-108.38C95.01,-90.37 124.83,-62.61 155.09,-45 166.45,-38.39 179.7,-32.97 191.88,-28.77"/>
<polygon fill="black" stroke="black" points="192.81,-32.14 201.24,-25.72 190.64,-25.49 192.81,-32.14"/>
<path fill="none" stroke="black" d="M85.87,-136.58C104.48,-125 130.68,-109.7 155.09,-99 165.95,-94.24 177.91,-89.91 189.34,-86.19"/>
<polygon fill="black" stroke="black" points="190.16,-89.6 198.65,-83.26 188.06,-82.92 190.16,-89.6"/>
</g>
<!-- 11 -->
<!-- name: &quot;Flags&quot;, typeName: &quot;&quot;, id: 11, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node12" class="node">
<title>11</title>
<ellipse fill="none" stroke="black" cx="241.09" cy="-18" rx="30.61" ry="18"/>
<text text-anchor="middle" x="241.09" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Flags</text>
</g>
<!-- 0&#45;&gt;11 -->
<g id="edge11" class="edge">
<title>0&#45;&gt;11</title>
<path fill="none" stroke="black" d="M71.73,-134.99C87.47,-111.06 118.4,-69.02 155.09,-45 168.62,-36.15 185.24,-30.02 200.19,-25.88"/>
<polygon fill="black" stroke="black" points="200.92,-29.3 209.75,-23.45 199.2,-22.52 200.92,-29.3"/>
</g>
<!-- 2 -->
<!-- name: &quot;ActorRuntimeID&quot;, typeName: &quot;&quot;, id: 2, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>2</title>
<ellipse fill="none" stroke="black" cx="415.64" cy="-234" rx="72.52" ry="18"/>
<text text-anchor="middle" x="415.64" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">ActorRuntimeID</text>
<ellipse fill="none" stroke="black" cx="435.6" cy="-288" rx="72.52" ry="18"/>
<text text-anchor="middle" x="435.6" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">ActorRuntimeID</text>
</g>
<!-- 1&#45;&gt;2 -->
<g id="edge2" class="edge">
<title>1&#45;&gt;2</title>
<path fill="none" stroke="black" d="M307.4,-234C315.35,-234 323.46,-234 331.48,-234"/>
<polygon fill="black" stroke="black" points="331.23,-237.5 341.23,-234 331.23,-230.5 331.23,-237.5"/>
<path fill="none" stroke="black" d="M317.35,-288C328.58,-288 340.21,-288 351.59,-288"/>
<polygon fill="black" stroke="black" points="351.35,-291.5 361.35,-288 351.35,-284.5 351.35,-291.5"/>
</g>
<!-- 4 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 4, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>4</title>
<ellipse fill="none" stroke="black" cx="415.64" cy="-180" rx="31.1" ry="18"/>
<text text-anchor="middle" x="415.64" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="435.6" cy="-234" rx="31.1" ry="18"/>
<text text-anchor="middle" x="435.6" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 3&#45;&gt;4 -->
<g id="edge4" class="edge">
<title>3&#45;&gt;4</title>
<path fill="none" stroke="black" d="M276.29,-180C305.69,-180 344.06,-180 372.93,-180"/>
<polygon fill="black" stroke="black" points="372.77,-183.5 382.77,-180 372.77,-176.5 372.77,-183.5"/>
<path fill="none" stroke="black" d="M286.25,-234C318.24,-234 361.22,-234 392.68,-234"/>
<polygon fill="black" stroke="black" points="392.61,-237.5 402.61,-234 392.61,-230.5 392.61,-237.5"/>
</g>
<!-- 6 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 6, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 6, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>6</title>
<ellipse fill="none" stroke="black" cx="415.64" cy="-126" rx="31.1" ry="18"/>
<text text-anchor="middle" x="415.64" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="435.6" cy="-180" rx="66.53" ry="18"/>
<text text-anchor="middle" x="435.6" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 5&#45;&gt;6 -->
<g id="edge6" class="edge">
<title>5&#45;&gt;6</title>
<path fill="none" stroke="black" d="M259.83,-126C289.94,-126 338.36,-126 373.03,-126"/>
<polygon fill="black" stroke="black" points="372.7,-129.5 382.7,-126 372.7,-122.5 372.7,-129.5"/>
<path fill="none" stroke="black" d="M327.37,-180C337.34,-180 347.48,-180 357.34,-180"/>
<polygon fill="black" stroke="black" points="357.24,-183.5 367.24,-180 357.24,-176.5 357.24,-183.5"/>
</g>
<!-- 8 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>8</title>
<ellipse fill="none" stroke="black" cx="415.64" cy="-72" rx="31.1" ry="18"/>
<text text-anchor="middle" x="415.64" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="435.6" cy="-126" rx="31.1" ry="18"/>
<text text-anchor="middle" x="435.6" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 7&#45;&gt;8 -->
<g id="edge8" class="edge">
<title>7&#45;&gt;8</title>
<path fill="none" stroke="black" d="M281.99,-72C310.49,-72 345.83,-72 372.86,-72"/>
<polygon fill="black" stroke="black" points="372.76,-75.5 382.76,-72 372.76,-68.5 372.76,-75.5"/>
<path fill="none" stroke="black" d="M270.08,-126C302.26,-126 355.42,-126 392.57,-126"/>
<polygon fill="black" stroke="black" points="392.52,-129.5 402.52,-126 392.52,-122.5 392.52,-129.5"/>
</g>
<!-- 10 -->
<!-- name: &quot;byte&quot;, typeName: &quot;&quot;, id: 10, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 10, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node11" class="node">
<title>10</title>
<ellipse fill="none" stroke="black" cx="415.64" cy="-18" rx="27" ry="18"/>
<text text-anchor="middle" x="415.64" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">byte</text>
<ellipse fill="none" stroke="black" cx="435.6" cy="-72" rx="31.1" ry="18"/>
<text text-anchor="middle" x="435.6" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 9&#45;&gt;10 -->
<g id="edge10" class="edge">
<title>9&#45;&gt;10</title>
<path fill="none" stroke="black" d="M261.84,-18C293.2,-18 342.7,-18 376.81,-18"/>
<polygon fill="black" stroke="black" points="376.67,-21.5 386.67,-18 376.67,-14.5 376.67,-21.5"/>
<path fill="none" stroke="black" d="M291.91,-72C323.29,-72 363.32,-72 392.99,-72"/>
<polygon fill="black" stroke="black" points="392.7,-75.5 402.7,-72 392.7,-68.5 392.7,-75.5"/>
</g>
<!-- 12 -->
<!-- name: &quot;byte&quot;, typeName: &quot;&quot;, id: 12, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node13" class="node">
<title>12</title>
<ellipse fill="none" stroke="black" cx="435.6" cy="-18" rx="27" ry="18"/>
<text text-anchor="middle" x="435.6" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">byte</text>
</g>
<!-- 11&#45;&gt;12 -->
<g id="edge12" class="edge">
<title>11&#45;&gt;12</title>
<path fill="none" stroke="black" d="M272.17,-18C305.85,-18 360.49,-18 396.98,-18"/>
<polygon fill="black" stroke="black" points="396.62,-21.5 406.62,-18 396.62,-14.5 396.62,-21.5"/>
</g>
</g>
</svg>

Before

(image error) Size: 7.6 KiB

After

(image error) Size: 9.1 KiB

@ -4,69 +4,69 @@
<!-- Generated by graphviz version 11.0.0 (20240428.1522)
-->
<!-- Title: FullContainerName Pages: 1 -->
<svg width="667pt" height="98pt"
viewBox="0.00 0.00 666.82 98.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<svg width="724pt" height="98pt"
viewBox="0.00 0.00 723.70 98.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 94)">
<title>FullContainerName</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-94 662.82,-94 662.82,4 -4,4"/>
<!-- 101 -->
<!-- name: &quot;FullContainerName&quot;, typeName: &quot;&quot;, id: 101, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<polygon fill="white" stroke="none" points="-4,4 -4,-94 719.7,-94 719.7,4 -4,4"/>
<!-- 10 -->
<!-- name: &quot;FullContainerName&quot;, typeName: &quot;&quot;, id: 10, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>101</title>
<title>10</title>
<ellipse fill="none" stroke="black" cx="82" cy="-45" rx="82" ry="18"/>
<text text-anchor="middle" x="82" y="-39.58" font-family="Times New Roman,serif" font-size="14.00">FullContainerName</text>
</g>
<!-- 102 -->
<!-- name: &quot;Container Name&quot;, typeName: &quot;&quot;, id: 102, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 11 -->
<!-- name: &quot;Container Name&quot;, typeName: &quot;&quot;, id: 11, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>102</title>
<ellipse fill="none" stroke="black" cx="356.36" cy="-72" rx="70.52" ry="18"/>
<text text-anchor="middle" x="356.36" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Container Name</text>
<title>11</title>
<ellipse fill="none" stroke="black" cx="328.41" cy="-72" rx="70.52" ry="18"/>
<text text-anchor="middle" x="328.41" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Container Name</text>
</g>
<!-- 101&#45;&gt;102 -->
<!-- 10&#45;&gt;11 -->
<g id="edge1" class="edge">
<title>101&#45;&gt;102</title>
<path fill="none" stroke="black" d="M157.42,-52.38C195.27,-56.13 241.18,-60.68 279.26,-64.46"/>
<polygon fill="black" stroke="black" points="278.49,-67.9 288.79,-65.4 279.18,-60.93 278.49,-67.9"/>
<title>10&#45;&gt;11</title>
<path fill="none" stroke="black" d="M156,-53.06C186.19,-56.4 221.18,-60.26 251.65,-63.63"/>
<polygon fill="black" stroke="black" points="251.25,-67.11 261.58,-64.73 252.02,-60.15 251.25,-67.11"/>
</g>
<!-- 104 -->
<!-- name: &quot;ID if container is dynamic, 0 otherwise.&quot;, typeName: &quot;&quot;, id: 104, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 13 -->
<!-- name: &quot;Optional Dynamic Container ID&quot;, typeName: &quot;std::optional&lt;unsigned int&gt;&quot;, id: 13, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>104</title>
<ellipse fill="none" stroke="black" cx="356.36" cy="-18" rx="156.35" ry="18"/>
<text text-anchor="middle" x="356.36" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">ID if container is dynamic, 0 otherwise.</text>
<title>13</title>
<ellipse fill="none" stroke="black" cx="328.41" cy="-18" rx="128.41" ry="18"/>
<text text-anchor="middle" x="328.41" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Optional Dynamic Container ID</text>
</g>
<!-- 101&#45;&gt;104 -->
<!-- 10&#45;&gt;13 -->
<g id="edge3" class="edge">
<title>101&#45;&gt;104</title>
<path fill="none" stroke="black" d="M157.42,-37.62C178.27,-35.56 201.56,-33.25 224.64,-30.96"/>
<polygon fill="black" stroke="black" points="224.83,-34.46 234.44,-29.99 224.14,-27.49 224.83,-34.46"/>
<title>10&#45;&gt;13</title>
<path fill="none" stroke="black" d="M156,-36.94C174.55,-34.89 194.91,-32.64 214.92,-30.43"/>
<polygon fill="black" stroke="black" points="215.26,-33.91 224.82,-29.33 214.49,-26.95 215.26,-33.91"/>
</g>
<!-- 103 -->
<!-- name: &quot;byte&quot;, typeName: &quot;&quot;, id: 103, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 12 -->
<!-- name: &quot;byte&quot;, typeName: &quot;&quot;, id: 12, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>103</title>
<ellipse fill="none" stroke="black" cx="603.76" cy="-72" rx="27" ry="18"/>
<text text-anchor="middle" x="603.76" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">byte</text>
<title>12</title>
<ellipse fill="none" stroke="black" cx="604.26" cy="-72" rx="27" ry="18"/>
<text text-anchor="middle" x="604.26" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">byte</text>
</g>
<!-- 102&#45;&gt;103 -->
<!-- 11&#45;&gt;12 -->
<g id="edge2" class="edge">
<title>102&#45;&gt;103</title>
<path fill="none" stroke="black" d="M427.35,-72C472.22,-72 528.7,-72 565.26,-72"/>
<polygon fill="black" stroke="black" points="564.87,-75.5 574.87,-72 564.87,-68.5 564.87,-75.5"/>
<title>11&#45;&gt;12</title>
<path fill="none" stroke="black" d="M399.22,-72C452.09,-72 522.7,-72 565.48,-72"/>
<polygon fill="black" stroke="black" points="565.25,-75.5 575.25,-72 565.25,-68.5 565.25,-75.5"/>
</g>
<!-- 105 -->
<!-- name: &quot;unsigned int&quot;, typeName: &quot;&quot;, id: 105, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 17 -->
<!-- name: &quot;std::optional&lt;unsigned int&gt;&quot;, typeName: &quot;&quot;, id: 17, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>105</title>
<ellipse fill="none" stroke="black" cx="603.76" cy="-18" rx="55.06" ry="18"/>
<text text-anchor="middle" x="603.76" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">unsigned int</text>
<title>17</title>
<ellipse fill="none" stroke="black" cx="604.26" cy="-18" rx="111.44" ry="18"/>
<text text-anchor="middle" x="604.26" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;unsigned int&gt;</text>
</g>
<!-- 104&#45;&gt;105 -->
<!-- 13&#45;&gt;17 -->
<g id="edge4" class="edge">
<title>104&#45;&gt;105</title>
<path fill="none" stroke="black" d="M513.12,-18C521.44,-18 529.53,-18 537.24,-18"/>
<polygon fill="black" stroke="black" points="537.1,-21.5 547.1,-18 537.1,-14.5 537.1,-21.5"/>
<title>13&#45;&gt;17</title>
<path fill="none" stroke="black" d="M457.12,-18C465.17,-18 473.27,-18 481.3,-18"/>
<polygon fill="black" stroke="black" points="481.08,-21.5 491.08,-18 481.08,-14.5 481.08,-21.5"/>
</g>
</g>
</svg>

Before

(image error) Size: 3.7 KiB

After

(image error) Size: 3.7 KiB

@ -4,147 +4,173 @@
<!-- Generated by graphviz version 11.0.0 (20240428.1522)
-->
<!-- Title: InventoryContentPacket Pages: 1 -->
<svg width="1482pt" height="206pt"
viewBox="0.00 0.00 1481.99 206.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 202)">
<svg width="1079pt" height="260pt"
viewBox="0.00 0.00 1078.80 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
<title>InventoryContentPacket</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-202 1477.99,-202 1477.99,4 -4,4"/>
<polygon fill="white" stroke="none" points="-4,4 -4,-256 1074.8,-256 1074.8,4 -4,4"/>
<!-- 0 -->
<!-- name: &quot;InventoryContentPacket&quot;, typeName: &quot;&quot;, id: 0, branchId: 49, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>0</title>
<ellipse fill="none" stroke="black" cx="100.46" cy="-74" rx="100.46" ry="18"/>
<text text-anchor="middle" x="100.46" y="-68.58" font-family="Times New Roman,serif" font-size="14.00">InventoryContentPacket</text>
<ellipse fill="none" stroke="black" cx="100.46" cy="-99" rx="100.46" ry="18"/>
<text text-anchor="middle" x="100.46" y="-93.58" font-family="Times New Roman,serif" font-size="14.00">InventoryContentPacket</text>
</g>
<!-- 1 -->
<!-- name: &quot;Inventory Id&quot;, typeName: &quot;&quot;, id: 1, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>1</title>
<ellipse fill="none" stroke="black" cx="293.48" cy="-154" rx="56.55" ry="18"/>
<text text-anchor="middle" x="293.48" y="-148.57" font-family="Times New Roman,serif" font-size="14.00">Inventory Id</text>
<ellipse fill="none" stroke="black" cx="739.4" cy="-234" rx="56.55" ry="18"/>
<text text-anchor="middle" x="739.4" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">Inventory Id</text>
</g>
<!-- 0&#45;&gt;1 -->
<g id="edge1" class="edge">
<title>0&#45;&gt;1</title>
<path fill="none" stroke="black" d="M141.51,-90.77C172.47,-103.74 215.33,-121.69 247.48,-135.15"/>
<polygon fill="black" stroke="black" points="245.96,-138.31 256.54,-138.95 248.67,-131.86 245.96,-138.31"/>
<path fill="none" stroke="black" d="M138.08,-116.14C164.92,-128.07 202.52,-143.49 236.93,-153 390.28,-195.4 576.55,-218.27 673.17,-228.07"/>
<polygon fill="black" stroke="black" points="672.7,-231.54 683,-229.06 673.39,-224.58 672.7,-231.54"/>
</g>
<!-- 3 -->
<!-- name: &quot;Slots&quot;, typeName: &quot;&quot;, id: 3, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>3</title>
<ellipse fill="none" stroke="black" cx="293.48" cy="-74" rx="29.61" ry="18"/>
<text text-anchor="middle" x="293.48" y="-68.58" font-family="Times New Roman,serif" font-size="14.00">Slots</text>
<ellipse fill="none" stroke="black" cx="336.89" cy="-126" rx="29.61" ry="18"/>
<text text-anchor="middle" x="336.89" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Slots</text>
</g>
<!-- 0&#45;&gt;3 -->
<g id="edge3" class="edge">
<title>0&#45;&gt;3</title>
<path fill="none" stroke="black" d="M201.17,-74C219.16,-74 236.95,-74 251.98,-74"/>
<polygon fill="black" stroke="black" points="251.88,-77.5 261.88,-74 251.88,-70.5 251.88,-77.5"/>
<path fill="none" stroke="black" d="M186.1,-108.75C223.61,-113.07 265.96,-117.95 296.04,-121.41"/>
<polygon fill="black" stroke="black" points="295.49,-124.87 305.82,-122.54 296.29,-117.92 295.49,-124.87"/>
</g>
<!-- 9 -->
<!-- name: &quot;ID of the particular container instance if this is a dynamic container, otherwise zero&quot;, typeName: &quot;&quot;, id: 9, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Full Container Name&quot;, typeName: &quot;FullContainerName&quot;, id: 9, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;Used to reference a specific container within a given screen container context.&quot; -->
<g id="node10" class="node">
<title>9</title>
<ellipse fill="none" stroke="black" cx="882.11" cy="-18" rx="317.03" ry="18"/>
<text text-anchor="middle" x="882.11" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">ID of the particular container instance if this is a dynamic container, otherwise zero</text>
<ellipse fill="none" stroke="black" cx="559.85" cy="-72" rx="86.99" ry="18"/>
<text text-anchor="middle" x="559.85" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Full Container Name</text>
</g>
<!-- 0&#45;&gt;9 -->
<g id="edge9" class="edge">
<title>0&#45;&gt;9</title>
<path fill="none" stroke="black" d="M163.53,-59.57C186.47,-54.79 212.77,-49.93 236.93,-47 342.41,-34.19 458.23,-26.89 562.22,-22.78"/>
<polygon fill="black" stroke="black" points="562.17,-26.28 572.03,-22.4 561.9,-19.29 562.17,-26.28"/>
<path fill="none" stroke="black" d="M196.51,-93.39C275.1,-88.75 386.11,-82.2 464.5,-77.57"/>
<polygon fill="black" stroke="black" points="464.53,-81.07 474.31,-76.99 464.12,-74.09 464.53,-81.07"/>
</g>
<!-- 19 -->
<!-- name: &quot;Dynamic Container Size&quot;, typeName: &quot;&quot;, id: 19, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;Size of the particular container instance if this is a dynamic container, otherwise zero.&quot; -->
<g id="node12" class="node">
<title>19</title>
<ellipse fill="none" stroke="black" cx="336.89" cy="-22" rx="99.97" ry="18"/>
<text text-anchor="middle" x="336.89" y="-16.57" font-family="Times New Roman,serif" font-size="14.00">Dynamic Container Size</text>
</g>
<!-- 0&#45;&gt;19 -->
<g id="edge11" class="edge">
<title>0&#45;&gt;19</title>
<path fill="none" stroke="black" d="M150.32,-82.95C186.92,-70.93 237.18,-54.42 276.17,-41.62"/>
<polygon fill="black" stroke="black" points="277.25,-44.95 285.66,-38.5 275.07,-38.3 277.25,-44.95"/>
</g>
<!-- 2 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 2, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>2</title>
<ellipse fill="none" stroke="black" cx="1354.56" cy="-180" rx="66.53" ry="18"/>
<text text-anchor="middle" x="1354.56" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
<ellipse fill="none" stroke="black" cx="951.37" cy="-234" rx="66.53" ry="18"/>
<text text-anchor="middle" x="951.37" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 1&#45;&gt;2 -->
<g id="edge2" class="edge">
<title>1&#45;&gt;2</title>
<path fill="none" stroke="black" d="M350.3,-155.37C526.81,-159.7 1073.13,-173.12 1276.36,-178.1"/>
<polygon fill="black" stroke="black" points="1276.21,-181.6 1286.29,-178.35 1276.38,-174.6 1276.21,-181.6"/>
<path fill="none" stroke="black" d="M796.39,-234C819.88,-234 847.6,-234 872.99,-234"/>
<polygon fill="black" stroke="black" points="872.96,-237.5 882.96,-234 872.96,-230.5 872.96,-237.5"/>
</g>
<!-- 4 -->
<!-- name: &quot;Array Size&quot;, typeName: &quot;&quot;, id: 4, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>4</title>
<ellipse fill="none" stroke="black" cx="457.56" cy="-126" rx="49.57" ry="18"/>
<text text-anchor="middle" x="457.56" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
<ellipse fill="none" stroke="black" cx="739.4" cy="-180" rx="49.57" ry="18"/>
<text text-anchor="middle" x="739.4" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
</g>
<!-- 3&#45;&gt;4 -->
<g id="edge4" class="edge">
<title>3&#45;&gt;4</title>
<path fill="none" stroke="black" d="M320.16,-82.24C343.91,-89.86 379.8,-101.37 408.8,-110.68"/>
<polygon fill="black" stroke="black" points="407.51,-113.94 418.1,-113.66 409.65,-107.27 407.51,-113.94"/>
<path fill="none" stroke="black" d="M365.16,-132.26C392.32,-138.3 435.29,-147.35 472.86,-153 543.3,-163.6 624.89,-171.21 678.84,-175.59"/>
<polygon fill="black" stroke="black" points="678.5,-179.07 688.74,-176.38 679.05,-172.1 678.5,-179.07"/>
</g>
<!-- 6 -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 6, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>6</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="457.56" cy="-72" rx="71.52" ry="18"/>
<text text-anchor="middle" x="457.56" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">example element</text>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="559.85" cy="-126" rx="71.52" ry="18"/>
<text text-anchor="middle" x="559.85" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">example element</text>
</g>
<!-- 3&#45;&gt;6 -->
<g id="edge6" class="edge">
<title>3&#45;&gt;6</title>
<path fill="none" stroke="black" d="M323.46,-73.64C337.86,-73.46 356.07,-73.24 374.35,-73.01"/>
<polygon fill="black" stroke="black" points="374.24,-76.52 384.2,-72.89 374.16,-69.52 374.24,-76.52"/>
<path fill="none" stroke="black" d="M366.78,-126C394.68,-126 438.25,-126 476.85,-126"/>
<polygon fill="black" stroke="black" points="476.6,-129.5 486.6,-126 476.6,-122.5 476.6,-129.5"/>
</g>
<!-- 5 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 5, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>5</title>
<ellipse fill="none" stroke="black" cx="1354.56" cy="-126" rx="66.53" ry="18"/>
<text text-anchor="middle" x="1354.56" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
<ellipse fill="none" stroke="black" cx="951.37" cy="-180" rx="66.53" ry="18"/>
<text text-anchor="middle" x="951.37" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 4&#45;&gt;5 -->
<g id="edge5" class="edge">
<title>4&#45;&gt;5</title>
<path fill="none" stroke="black" d="M507.31,-126C654.73,-126 1096.65,-126 1276.33,-126"/>
<polygon fill="black" stroke="black" points="1276.26,-129.5 1286.26,-126 1276.26,-122.5 1276.26,-129.5"/>
<path fill="none" stroke="black" d="M789.36,-180C814.29,-180 845.17,-180 873.2,-180"/>
<polygon fill="black" stroke="black" points="873.08,-183.5 883.08,-180 873.08,-176.5 873.08,-183.5"/>
</g>
<!-- 7 -->
<!-- name: &quot;Item stack&quot;, typeName: &quot;NetworkItemStackDescriptor&quot;, id: 7, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node8" class="node">
<title>7</title>
<ellipse fill="none" stroke="black" cx="882.11" cy="-72" rx="49.07" ry="18"/>
<text text-anchor="middle" x="882.11" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Item stack</text>
<ellipse fill="none" stroke="black" cx="739.4" cy="-126" rx="49.07" ry="18"/>
<text text-anchor="middle" x="739.4" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Item stack</text>
</g>
<!-- 6&#45;&gt;7 -->
<g id="edge7" class="edge">
<title>6&#45;&gt;7</title>
<path fill="none" stroke="black" d="M529.28,-72C611.07,-72 744.29,-72 821.19,-72"/>
<polygon fill="black" stroke="black" points="821.06,-75.5 831.06,-72 821.06,-68.5 821.06,-75.5"/>
<path fill="none" stroke="black" d="M631.79,-126C647.33,-126 663.64,-126 678.7,-126"/>
<polygon fill="black" stroke="black" points="678.42,-129.5 688.42,-126 678.42,-122.5 678.42,-129.5"/>
</g>
<!-- 8 -->
<!-- name: &quot;NetworkItemStackDescriptor&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>8</title>
<ellipse fill="none" stroke="black" cx="1354.56" cy="-72" rx="119.43" ry="18"/>
<text text-anchor="middle" x="1354.56" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">NetworkItemStackDescriptor</text>
<ellipse fill="none" stroke="black" cx="951.37" cy="-126" rx="119.43" ry="18"/>
<text text-anchor="middle" x="951.37" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">NetworkItemStackDescriptor</text>
</g>
<!-- 7&#45;&gt;8 -->
<g id="edge8" class="edge">
<title>7&#45;&gt;8</title>
<path fill="none" stroke="black" d="M931.24,-72C999.39,-72 1126.48,-72 1223.51,-72"/>
<polygon fill="black" stroke="black" points="1223.37,-75.5 1233.37,-72 1223.37,-68.5 1223.37,-75.5"/>
<path fill="none" stroke="black" d="M788.83,-126C798.64,-126 809.39,-126 820.54,-126"/>
<polygon fill="black" stroke="black" points="820.28,-129.5 830.28,-126 820.28,-122.5 820.28,-129.5"/>
</g>
<!-- 10 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 10, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 18 -->
<!-- name: &quot;FullContainerName&quot;, typeName: &quot;&quot;, id: 18, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node11" class="node">
<title>10</title>
<ellipse fill="none" stroke="black" cx="1354.56" cy="-18" rx="66.53" ry="18"/>
<text text-anchor="middle" x="1354.56" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
<title>18</title>
<ellipse fill="none" stroke="black" cx="951.37" cy="-72" rx="82" ry="18"/>
<text text-anchor="middle" x="951.37" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">FullContainerName</text>
</g>
<!-- 9&#45;&gt;10 -->
<!-- 9&#45;&gt;18 -->
<g id="edge10" class="edge">
<title>9&#45;&gt;10</title>
<path fill="none" stroke="black" d="M1199.52,-18C1227.4,-18 1253.55,-18 1276.11,-18"/>
<polygon fill="black" stroke="black" points="1276.05,-21.5 1286.05,-18 1276.05,-14.5 1276.05,-21.5"/>
<title>9&#45;&gt;18</title>
<path fill="none" stroke="black" d="M647.3,-72C709.78,-72 794.07,-72 857.89,-72"/>
<polygon fill="black" stroke="black" points="857.65,-75.5 867.65,-72 857.65,-68.5 857.65,-75.5"/>
</g>
<!-- 20 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 20, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node13" class="node">
<title>20</title>
<ellipse fill="none" stroke="black" cx="951.37" cy="-18" rx="66.53" ry="18"/>
<text text-anchor="middle" x="951.37" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 19&#45;&gt;20 -->
<g id="edge12" class="edge">
<title>19&#45;&gt;20</title>
<path fill="none" stroke="black" d="M436.98,-21.35C558.62,-20.56 762.35,-19.23 873.06,-18.5"/>
<polygon fill="black" stroke="black" points="872.97,-22.01 882.95,-18.44 872.92,-15.01 872.97,-22.01"/>
</g>
</g>
</svg>

Before

(image error) Size: 7.9 KiB

After

(image error) Size: 9.4 KiB

@ -4,121 +4,147 @@
<!-- Generated by graphviz version 11.0.0 (20240428.1522)
-->
<!-- Title: InventorySlotPacket Pages: 1 -->
<svg width="883pt" height="206pt"
viewBox="0.00 0.00 883.38 206.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 202)">
<svg width="691pt" height="260pt"
viewBox="0.00 0.00 690.77 260.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 256)">
<title>InventorySlotPacket</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-202 879.38,-202 879.38,4 -4,4"/>
<polygon fill="white" stroke="none" points="-4,4 -4,-256 686.77,-256 686.77,4 -4,4"/>
<!-- 0 -->
<!-- name: &quot;InventorySlotPacket&quot;, typeName: &quot;&quot;, id: 0, branchId: 50, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>0</title>
<ellipse fill="none" stroke="black" cx="85.99" cy="-99" rx="85.99" ry="18"/>
<text text-anchor="middle" x="85.99" y="-93.58" font-family="Times New Roman,serif" font-size="14.00">InventorySlotPacket</text>
<ellipse fill="none" stroke="black" cx="85.99" cy="-126" rx="85.99" ry="18"/>
<text text-anchor="middle" x="85.99" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">InventorySlotPacket</text>
</g>
<!-- 1 -->
<!-- name: &quot;Container ID&quot;, typeName: &quot;&quot;, id: 1, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>1</title>
<ellipse fill="none" stroke="black" cx="404.26" cy="-180" rx="58.55" ry="18"/>
<text text-anchor="middle" x="404.26" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Container ID</text>
<ellipse fill="none" stroke="black" cx="307.95" cy="-234" rx="58.55" ry="18"/>
<text text-anchor="middle" x="307.95" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">Container ID</text>
</g>
<!-- 0&#45;&gt;1 -->
<g id="edge1" class="edge">
<title>0&#45;&gt;1</title>
<path fill="none" stroke="black" d="M118.67,-116.12C142.55,-128.28 176.47,-143.99 207.99,-153 249.29,-164.81 297.03,-171.53 334.97,-175.31"/>
<polygon fill="black" stroke="black" points="334.62,-178.8 344.9,-176.25 335.28,-171.83 334.62,-178.8"/>
<path fill="none" stroke="black" d="M108.45,-143.53C131.7,-161.73 170.5,-189.89 207.99,-207 220.33,-212.63 234.09,-217.3 247.33,-221.09"/>
<polygon fill="black" stroke="black" points="246.26,-224.42 256.82,-223.66 248.09,-217.67 246.26,-224.42"/>
</g>
<!-- 3 -->
<!-- name: &quot;Slot&quot;, typeName: &quot;&quot;, id: 3, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>3</title>
<ellipse fill="none" stroke="black" cx="404.26" cy="-126" rx="27" ry="18"/>
<text text-anchor="middle" x="404.26" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Slot</text>
<ellipse fill="none" stroke="black" cx="307.95" cy="-180" rx="27" ry="18"/>
<text text-anchor="middle" x="307.95" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Slot</text>
</g>
<!-- 0&#45;&gt;3 -->
<g id="edge3" class="edge">
<title>0&#45;&gt;3</title>
<path fill="none" stroke="black" d="M166.39,-105.78C230.29,-111.23 317.21,-118.65 366.03,-122.82"/>
<polygon fill="black" stroke="black" points="365.52,-126.29 375.78,-123.65 366.12,-119.32 365.52,-126.29"/>
<path fill="none" stroke="black" d="M143.35,-139.84C183.61,-149.72 236.55,-162.72 271.15,-171.21"/>
<polygon fill="black" stroke="black" points="270.12,-174.56 280.66,-173.55 271.79,-167.76 270.12,-174.56"/>
</g>
<!-- 5 -->
<!-- name: &quot;ID of the container if it is dynamic, zero otherwise&quot;, typeName: &quot;&quot;, id: 5, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Full Container Name&quot;, typeName: &quot;FullContainerName&quot;, id: 5, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;Used to reference a specific container within a given screen container context&quot; -->
<g id="node6" class="node">
<title>5</title>
<ellipse fill="none" stroke="black" cx="404.26" cy="-72" rx="196.27" ry="18"/>
<text text-anchor="middle" x="404.26" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">ID of the container if it is dynamic, zero otherwise</text>
<ellipse fill="none" stroke="black" cx="307.95" cy="-126" rx="86.99" ry="18"/>
<text text-anchor="middle" x="307.95" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Full Container Name</text>
</g>
<!-- 0&#45;&gt;5 -->
<g id="edge5" class="edge">
<title>0&#45;&gt;5</title>
<path fill="none" stroke="black" d="M166.39,-92.22C191.03,-90.12 219.08,-87.72 247.06,-85.34"/>
<polygon fill="black" stroke="black" points="247.01,-88.85 256.68,-84.51 246.42,-81.88 247.01,-88.85"/>
<path fill="none" stroke="black" d="M172.35,-126C184.46,-126 196.99,-126 209.32,-126"/>
<polygon fill="black" stroke="black" points="209.04,-129.5 219.04,-126 209.04,-122.5 209.04,-129.5"/>
</g>
<!-- 7 -->
<!-- name: &quot;Item&quot;, typeName: &quot;NetworkItemStackDescriptor&quot;, id: 7, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- name: &quot;Dynamic Container Size&quot;, typeName: &quot;&quot;, id: 7, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;Size of the container if it is dynamic, zero otherwise&quot; -->
<g id="node8" class="node">
<title>7</title>
<ellipse fill="none" stroke="black" cx="404.26" cy="-18" rx="27.11" ry="18"/>
<text text-anchor="middle" x="404.26" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Item</text>
<ellipse fill="none" stroke="black" cx="307.95" cy="-72" rx="99.97" ry="18"/>
<text text-anchor="middle" x="307.95" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Dynamic Container Size</text>
</g>
<!-- 0&#45;&gt;7 -->
<g id="edge7" class="edge">
<title>0&#45;&gt;7</title>
<path fill="none" stroke="black" d="M118.67,-81.88C142.55,-69.72 176.47,-54.01 207.99,-45 261.48,-29.7 325.78,-22.94 365.59,-20.05"/>
<polygon fill="black" stroke="black" points="365.62,-23.56 375.36,-19.39 365.15,-16.57 365.62,-23.56"/>
<path fill="none" stroke="black" d="M143.35,-112.16C171.69,-105.21 206.32,-96.7 236.42,-89.32"/>
<polygon fill="black" stroke="black" points="236.93,-92.79 245.81,-87.01 235.26,-86 236.93,-92.79"/>
</g>
<!-- 9 -->
<!-- name: &quot;Item&quot;, typeName: &quot;NetworkItemStackDescriptor&quot;, id: 9, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node10" class="node">
<title>9</title>
<ellipse fill="none" stroke="black" cx="307.95" cy="-18" rx="27.11" ry="18"/>
<text text-anchor="middle" x="307.95" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Item</text>
</g>
<!-- 0&#45;&gt;9 -->
<g id="edge9" class="edge">
<title>0&#45;&gt;9</title>
<path fill="none" stroke="black" d="M108.45,-108.47C131.7,-90.27 170.5,-62.11 207.99,-45 227.71,-36 251.05,-29.45 270.12,-25.06"/>
<polygon fill="black" stroke="black" points="270.86,-28.48 279.88,-22.93 269.36,-21.64 270.86,-28.48"/>
</g>
<!-- 2 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 2, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>2</title>
<ellipse fill="none" stroke="black" cx="755.96" cy="-180" rx="66.53" ry="18"/>
<text text-anchor="middle" x="755.96" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
<ellipse fill="none" stroke="black" cx="563.34" cy="-234" rx="66.53" ry="18"/>
<text text-anchor="middle" x="563.34" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 1&#45;&gt;2 -->
<g id="edge2" class="edge">
<title>1&#45;&gt;2</title>
<path fill="none" stroke="black" d="M463,-180C521.66,-180 612.85,-180 677.69,-180"/>
<polygon fill="black" stroke="black" points="677.56,-183.5 687.56,-180 677.56,-176.5 677.56,-183.5"/>
<path fill="none" stroke="black" d="M366.77,-234C402,-234 447.44,-234 485.65,-234"/>
<polygon fill="black" stroke="black" points="485.22,-237.5 495.22,-234 485.22,-230.5 485.22,-237.5"/>
</g>
<!-- 4 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 4, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>4</title>
<ellipse fill="none" stroke="black" cx="755.96" cy="-126" rx="66.53" ry="18"/>
<text text-anchor="middle" x="755.96" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
<ellipse fill="none" stroke="black" cx="563.34" cy="-180" rx="66.53" ry="18"/>
<text text-anchor="middle" x="563.34" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 3&#45;&gt;4 -->
<g id="edge4" class="edge">
<title>3&#45;&gt;4</title>
<path fill="none" stroke="black" d="M431.54,-126C483.17,-126 599.58,-126 677.71,-126"/>
<polygon fill="black" stroke="black" points="677.44,-129.5 687.44,-126 677.44,-122.5 677.44,-129.5"/>
<path fill="none" stroke="black" d="M335.12,-180C370.21,-180 434.01,-180 485.1,-180"/>
<polygon fill="black" stroke="black" points="484.94,-183.5 494.94,-180 484.94,-176.5 484.94,-183.5"/>
</g>
<!-- 6 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 6, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;FullContainerName&quot;, typeName: &quot;&quot;, id: 6, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>6</title>
<ellipse fill="none" stroke="black" cx="755.96" cy="-72" rx="66.53" ry="18"/>
<text text-anchor="middle" x="755.96" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
<ellipse fill="none" stroke="black" cx="563.34" cy="-126" rx="82" ry="18"/>
<text text-anchor="middle" x="563.34" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">FullContainerName</text>
</g>
<!-- 5&#45;&gt;6 -->
<g id="edge6" class="edge">
<title>5&#45;&gt;6</title>
<path fill="none" stroke="black" d="M600.81,-72C627.95,-72 654.41,-72 677.53,-72"/>
<polygon fill="black" stroke="black" points="677.44,-75.5 687.44,-72 677.44,-68.5 677.44,-75.5"/>
<path fill="none" stroke="black" d="M395.09,-126C419.12,-126 445.33,-126 469.71,-126"/>
<polygon fill="black" stroke="black" points="469.63,-129.5 479.63,-126 469.63,-122.5 469.63,-129.5"/>
</g>
<!-- 8 -->
<!-- name: &quot;NetworkItemStackDescriptor&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>8</title>
<ellipse fill="none" stroke="black" cx="755.96" cy="-18" rx="119.43" ry="18"/>
<text text-anchor="middle" x="755.96" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">NetworkItemStackDescriptor</text>
<ellipse fill="none" stroke="black" cx="563.34" cy="-72" rx="66.53" ry="18"/>
<text text-anchor="middle" x="563.34" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 7&#45;&gt;8 -->
<g id="edge8" class="edge">
<title>7&#45;&gt;8</title>
<path fill="none" stroke="black" d="M431.83,-18C472.83,-18 554.2,-18 625.02,-18"/>
<polygon fill="black" stroke="black" points="624.77,-21.5 634.77,-18 624.77,-14.5 624.77,-21.5"/>
<path fill="none" stroke="black" d="M408.37,-72C433.87,-72 460.91,-72 485.1,-72"/>
<polygon fill="black" stroke="black" points="484.85,-75.5 494.85,-72 484.85,-68.5 484.85,-75.5"/>
</g>
<!-- 10 -->
<!-- name: &quot;NetworkItemStackDescriptor&quot;, typeName: &quot;&quot;, id: 10, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node11" class="node">
<title>10</title>
<ellipse fill="none" stroke="black" cx="563.34" cy="-18" rx="119.43" ry="18"/>
<text text-anchor="middle" x="563.34" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">NetworkItemStackDescriptor</text>
</g>
<!-- 9&#45;&gt;10 -->
<g id="edge10" class="edge">
<title>9&#45;&gt;10</title>
<path fill="none" stroke="black" d="M335.12,-18C358.66,-18 395.15,-18 432.04,-18"/>
<polygon fill="black" stroke="black" points="431.97,-21.5 441.97,-18 431.97,-14.5 431.97,-21.5"/>
</g>
</g>
</svg>

Before

(image error) Size: 6.5 KiB

After

(image error) Size: 7.9 KiB

@ -29,68 +29,68 @@
<path fill="none" stroke="black" d="M174.69,-86.76C206.55,-94.02 245,-102.78 277.47,-110.18"/>
<polygon fill="black" stroke="black" points="276.68,-113.59 287.21,-112.4 278.24,-106.77 276.68,-113.59"/>
</g>
<!-- 107 -->
<!-- name: &quot;Slot&quot;, typeName: &quot;&quot;, id: 107, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 102 -->
<!-- name: &quot;Slot&quot;, typeName: &quot;&quot;, id: 102, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>107</title>
<title>102</title>
<ellipse fill="none" stroke="black" cx="347.87" cy="-72" rx="27" ry="18"/>
<text text-anchor="middle" x="347.87" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Slot</text>
</g>
<!-- 99&#45;&gt;107 -->
<!-- 99&#45;&gt;102 -->
<g id="edge3" class="edge">
<title>99&#45;&gt;107</title>
<title>99&#45;&gt;102</title>
<path fill="none" stroke="black" d="M218.36,-72C251.03,-72 284.72,-72 309.41,-72"/>
<polygon fill="black" stroke="black" points="309.25,-75.5 319.25,-72 309.25,-68.5 309.25,-75.5"/>
</g>
<!-- 109 -->
<!-- name: &quot;Raw Id (32 bit signed)&quot;, typeName: &quot;&quot;, id: 109, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 104 -->
<!-- name: &quot;Raw Id (32 bit signed)&quot;, typeName: &quot;&quot;, id: 104, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>109</title>
<title>104</title>
<ellipse fill="none" stroke="black" cx="347.87" cy="-18" rx="93.98" ry="18"/>
<text text-anchor="middle" x="347.87" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Raw Id (32 bit signed)</text>
</g>
<!-- 99&#45;&gt;109 -->
<!-- 99&#45;&gt;104 -->
<g id="edge5" class="edge">
<title>99&#45;&gt;109</title>
<title>99&#45;&gt;104</title>
<path fill="none" stroke="black" d="M174.69,-57.24C205.7,-50.18 242.93,-41.69 274.84,-34.42"/>
<polygon fill="black" stroke="black" points="275.43,-37.87 284.4,-32.24 273.87,-31.05 275.43,-37.87"/>
</g>
<!-- 106 -->
<!-- name: &quot;FullContainerName&quot;, typeName: &quot;&quot;, id: 106, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 101 -->
<!-- name: &quot;FullContainerName&quot;, typeName: &quot;&quot;, id: 101, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>106</title>
<title>101</title>
<ellipse fill="none" stroke="black" cx="559.85" cy="-126" rx="82" ry="18"/>
<text text-anchor="middle" x="559.85" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">FullContainerName</text>
</g>
<!-- 100&#45;&gt;106 -->
<!-- 100&#45;&gt;101 -->
<g id="edge2" class="edge">
<title>100&#45;&gt;106</title>
<title>100&#45;&gt;101</title>
<path fill="none" stroke="black" d="M433.67,-126C444.4,-126 455.42,-126 466.27,-126"/>
<polygon fill="black" stroke="black" points="465.97,-129.5 475.97,-126 465.97,-122.5 465.97,-129.5"/>
</g>
<!-- 108 -->
<!-- name: &quot;byte&quot;, typeName: &quot;&quot;, id: 108, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 103 -->
<!-- name: &quot;byte&quot;, typeName: &quot;&quot;, id: 103, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>108</title>
<title>103</title>
<ellipse fill="none" stroke="black" cx="559.85" cy="-72" rx="27" ry="18"/>
<text text-anchor="middle" x="559.85" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">byte</text>
</g>
<!-- 107&#45;&gt;108 -->
<!-- 102&#45;&gt;103 -->
<g id="edge4" class="edge">
<title>107&#45;&gt;108</title>
<title>102&#45;&gt;103</title>
<path fill="none" stroke="black" d="M375.04,-72C411.74,-72 478.73,-72 520.9,-72"/>
<polygon fill="black" stroke="black" points="520.84,-75.5 530.84,-72 520.84,-68.5 520.84,-75.5"/>
</g>
<!-- 110 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 110, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 105 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 105, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>110</title>
<title>105</title>
<ellipse fill="none" stroke="black" cx="559.85" cy="-18" rx="31.1" ry="18"/>
<text text-anchor="middle" x="559.85" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 109&#45;&gt;110 -->
<!-- 104&#45;&gt;105 -->
<g id="edge6" class="edge">
<title>109&#45;&gt;110</title>
<title>104&#45;&gt;105</title>
<path fill="none" stroke="black" d="M442.2,-18C468.44,-18 495.67,-18 517.22,-18"/>
<polygon fill="black" stroke="black" points="517.05,-21.5 527.05,-18 517.05,-14.5 517.05,-21.5"/>
</g>

Before

(image error) Size: 5.1 KiB

After

(image error) Size: 5.1 KiB

@ -191,46 +191,46 @@
<path fill="none" stroke="black" d="M102.39,-1156.55C116.29,-1112.07 157.18,-997.66 227.95,-930 267.13,-892.53 322.66,-866.57 367.24,-850.22"/>
<polygon fill="black" stroke="black" points="368.36,-853.54 376.6,-846.88 366,-846.94 368.36,-853.54"/>
</g>
<!-- 122 -->
<!-- name: &quot;Dependency on &#39;PerformBlockActions bit set&#39;&quot;, typeName: &quot;&quot;, id: 122, branchId: 0, recurseId: &#45;1, attributes: 2, notes: &quot;&quot; -->
<!-- 117 -->
<!-- name: &quot;Dependency on &#39;PerformBlockActions bit set&#39;&quot;, typeName: &quot;&quot;, id: 117, branchId: 0, recurseId: &#45;1, attributes: 2, notes: &quot;&quot; -->
<g id="node60" class="node">
<title>122</title>
<title>117</title>
<polygon fill="none" stroke="black" points="1261.52,-306 994.27,-306 994.27,-270 1267.52,-270 1267.52,-300 1261.52,-306"/>
<polyline fill="none" stroke="black" points="1261.52,-306 1261.52,-300"/>
<polyline fill="none" stroke="black" points="1267.52,-300 1261.52,-300"/>
<text text-anchor="middle" x="1130.89" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">Dependency on &#39;PerformBlockActions bit set&#39;</text>
</g>
<!-- 0&#45;&gt;122 -->
<!-- 0&#45;&gt;117 -->
<g id="edge59" class="edge">
<title>0&#45;&gt;122</title>
<title>0&#45;&gt;117</title>
<path fill="none" stroke="black" d="M99.2,-1156.68C107.05,-1098.77 137.97,-916.66 227.95,-801 454.66,-509.57 583.08,-492.16 920.39,-342 951.53,-328.14 986.92,-317.32 1019.63,-309.13"/>
<polygon fill="black" stroke="black" points="1020.25,-312.58 1029.14,-306.81 1018.59,-305.78 1020.25,-312.58"/>
</g>
<!-- 169 -->
<!-- name: &quot;Dependency on &#39;IsInClientPredictedVehicle bit set&#39;&quot;, typeName: &quot;&quot;, id: 169, branchId: 0, recurseId: &#45;1, attributes: 2, notes: &quot;&quot; -->
<!-- 164 -->
<!-- name: &quot;Dependency on &#39;IsInClientPredictedVehicle bit set&#39;&quot;, typeName: &quot;&quot;, id: 164, branchId: 0, recurseId: &#45;1, attributes: 2, notes: &quot;&quot; -->
<g id="node66" class="node">
<title>169</title>
<title>164</title>
<polygon fill="none" stroke="black" points="1274.64,-198 981.14,-198 981.14,-162 1280.64,-162 1280.64,-192 1274.64,-198"/>
<polyline fill="none" stroke="black" points="1274.64,-198 1274.64,-192"/>
<polyline fill="none" stroke="black" points="1280.64,-192 1274.64,-192"/>
<text text-anchor="middle" x="1130.89" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Dependency on &#39;IsInClientPredictedVehicle bit set&#39;</text>
</g>
<!-- 0&#45;&gt;169 -->
<!-- 0&#45;&gt;164 -->
<g id="edge65" class="edge">
<title>0&#45;&gt;169</title>
<title>0&#45;&gt;164</title>
<path fill="none" stroke="black" d="M97.78,-1156.54C102.57,-1054.6 130.59,-561.1 227.95,-452 417.24,-239.86 765.36,-190.41 969.31,-180.51"/>
<polygon fill="black" stroke="black" points="969.38,-184.01 979.21,-180.06 969.06,-177.02 969.38,-184.01"/>
</g>
<!-- 177 -->
<!-- name: &quot;Analog MoveVector&quot;, typeName: &quot;Vec2&quot;, id: 177, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 172 -->
<!-- name: &quot;Analog MoveVector&quot;, typeName: &quot;Vec2&quot;, id: 172, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node74" class="node">
<title>177</title>
<title>172</title>
<ellipse fill="none" stroke="black" cx="788.42" cy="-111" rx="86.49" ry="18"/>
<text text-anchor="middle" x="788.42" y="-105.58" font-family="Times New Roman,serif" font-size="14.00">Analog MoveVector</text>
</g>
<!-- 0&#45;&gt;177 -->
<!-- 0&#45;&gt;172 -->
<g id="edge73" class="edge">
<title>0&#45;&gt;177</title>
<title>0&#45;&gt;172</title>
<path fill="none" stroke="black" d="M97.21,-1156.63C99.01,-1043.11 113.95,-437.43 227.95,-301 343.59,-162.6 564.28,-124.69 691.18,-114.51"/>
<polygon fill="black" stroke="black" points="691.19,-118.02 700.9,-113.78 690.67,-111.04 691.19,-118.02"/>
</g>
@ -559,29 +559,29 @@
<path fill="none" stroke="black" d="M829.81,-666C892.17,-666 1011.76,-666 1079.63,-666"/>
<polygon fill="black" stroke="black" points="1079.35,-669.5 1089.35,-666 1079.35,-662.5 1079.35,-669.5"/>
</g>
<!-- 114 -->
<!-- name: &quot;Strings To Filter&quot;, typeName: &quot;&quot;, id: 114, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;Array of strings to submit to profanity filtering service&quot; -->
<!-- 109 -->
<!-- name: &quot;Strings To Filter&quot;, typeName: &quot;&quot;, id: 109, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;Array of strings to submit to profanity filtering service&quot; -->
<g id="node52" class="node">
<title>114</title>
<title>109</title>
<ellipse fill="none" stroke="black" cx="1130.89" cy="-450" rx="71.52" ry="18"/>
<text text-anchor="middle" x="1130.89" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">Strings To Filter</text>
</g>
<!-- 84&#45;&gt;114 -->
<!-- 84&#45;&gt;109 -->
<g id="edge51" class="edge">
<title>84&#45;&gt;114</title>
<title>84&#45;&gt;109</title>
<path fill="none" stroke="black" d="M805.84,-655.58C857.98,-622.5 1020.65,-519.31 1093.72,-472.95"/>
<polygon fill="black" stroke="black" points="1095.57,-475.92 1102.13,-467.61 1091.82,-470.01 1095.57,-475.92"/>
</g>
<!-- 120 -->
<!-- name: &quot;StringsToFilterOrigin&quot;, typeName: &quot;&quot;, id: 120, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 115 -->
<!-- name: &quot;StringsToFilterOrigin&quot;, typeName: &quot;&quot;, id: 115, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node58" class="node">
<title>120</title>
<title>115</title>
<ellipse fill="none" stroke="black" cx="1130.89" cy="-369" rx="89.49" ry="18"/>
<text text-anchor="middle" x="1130.89" y="-363.57" font-family="Times New Roman,serif" font-size="14.00">StringsToFilterOrigin</text>
</g>
<!-- 84&#45;&gt;120 -->
<!-- 84&#45;&gt;115 -->
<g id="edge57" class="edge">
<title>84&#45;&gt;120</title>
<title>84&#45;&gt;115</title>
<path fill="none" stroke="black" d="M804.44,-654.8C825.58,-638.22 863.82,-605.08 884.39,-568 916.61,-509.94 873.65,-470.16 920.39,-423 949.27,-393.86 991.65,-379.76 1030.74,-373.16"/>
<polygon fill="black" stroke="black" points="1031.08,-376.65 1040.44,-371.69 1030.03,-369.73 1031.08,-376.65"/>
</g>
@ -676,16 +676,16 @@
<path fill="none" stroke="black" d="M1499.66,-598.93C1533.98,-589.91 1579.16,-578.04 1612.02,-569.4"/>
<polygon fill="black" stroke="black" points="1612.84,-572.8 1621.63,-566.88 1611.06,-566.03 1612.84,-572.8"/>
</g>
<!-- 112 -->
<!-- name: &quot;Destination&quot;, typeName: &quot;ItemStackRequestSlotInfo&quot;, id: 112, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 107 -->
<!-- name: &quot;Destination&quot;, typeName: &quot;ItemStackRequestSlotInfo&quot;, id: 107, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node50" class="node">
<title>112</title>
<title>107</title>
<ellipse fill="none" stroke="black" cx="1656.4" cy="-504" rx="52.06" ry="18"/>
<text text-anchor="middle" x="1656.4" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">Destination</text>
</g>
<!-- 93&#45;&gt;112 -->
<!-- 93&#45;&gt;107 -->
<g id="edge49" class="edge">
<title>93&#45;&gt;112</title>
<title>93&#45;&gt;107</title>
<path fill="none" stroke="black" d="M1468.43,-594.33C1488.58,-576.01 1522.48,-547.75 1556.44,-531 1569.8,-524.41 1585,-519.24 1599.41,-515.27"/>
<polygon fill="black" stroke="black" points="1599.97,-518.74 1608.77,-512.85 1598.21,-511.97 1599.97,-518.74"/>
</g>
@ -715,276 +715,276 @@
<path fill="none" stroke="black" d="M1697.4,-612C1766.45,-612 1907.07,-612 1974.45,-612"/>
<polygon fill="black" stroke="black" points="1974.25,-615.5 1984.25,-612 1974.25,-608.5 1974.25,-615.5"/>
</g>
<!-- 111 -->
<!-- name: &quot;ItemStackRequestSlotInfo&quot;, typeName: &quot;&quot;, id: 111, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 106 -->
<!-- name: &quot;ItemStackRequestSlotInfo&quot;, typeName: &quot;&quot;, id: 106, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node49" class="node">
<title>111</title>
<title>106</title>
<ellipse fill="none" stroke="black" cx="2013.09" cy="-558" rx="108.95" ry="18"/>
<text text-anchor="middle" x="2013.09" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">ItemStackRequestSlotInfo</text>
</g>
<!-- 98&#45;&gt;111 -->
<!-- 98&#45;&gt;106 -->
<g id="edge48" class="edge">
<title>98&#45;&gt;111</title>
<title>98&#45;&gt;106</title>
<path fill="none" stroke="black" d="M1693.7,-558C1740.11,-558 1822.79,-558 1892.26,-558"/>
<polygon fill="black" stroke="black" points="1892.22,-561.5 1902.22,-558 1892.22,-554.5 1892.22,-561.5"/>
</g>
<!-- 113 -->
<!-- name: &quot;ItemStackRequestSlotInfo&quot;, typeName: &quot;&quot;, id: 113, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 108 -->
<!-- name: &quot;ItemStackRequestSlotInfo&quot;, typeName: &quot;&quot;, id: 108, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node51" class="node">
<title>113</title>
<title>108</title>
<ellipse fill="none" stroke="black" cx="2013.09" cy="-504" rx="108.95" ry="18"/>
<text text-anchor="middle" x="2013.09" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">ItemStackRequestSlotInfo</text>
</g>
<!-- 112&#45;&gt;113 -->
<!-- 107&#45;&gt;108 -->
<g id="edge50" class="edge">
<title>112&#45;&gt;113</title>
<title>107&#45;&gt;108</title>
<path fill="none" stroke="black" d="M1708.6,-504C1756.56,-504 1830.04,-504 1892.68,-504"/>
<polygon fill="black" stroke="black" points="1892.33,-507.5 1902.33,-504 1892.33,-500.5 1892.33,-507.5"/>
</g>
<!-- 115 -->
<!-- name: &quot;Array Size&quot;, typeName: &quot;&quot;, id: 115, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 110 -->
<!-- name: &quot;Array Size&quot;, typeName: &quot;&quot;, id: 110, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node53" class="node">
<title>115</title>
<title>110</title>
<ellipse fill="none" stroke="black" cx="1448.92" cy="-450" rx="49.57" ry="18"/>
<text text-anchor="middle" x="1448.92" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
</g>
<!-- 114&#45;&gt;115 -->
<!-- 109&#45;&gt;110 -->
<g id="edge52" class="edge">
<title>114&#45;&gt;115</title>
<title>109&#45;&gt;110</title>
<path fill="none" stroke="black" d="M1202.82,-450C1258.59,-450 1335.43,-450 1388.12,-450"/>
<polygon fill="black" stroke="black" points="1387.8,-453.5 1397.8,-450 1387.8,-446.5 1387.8,-453.5"/>
</g>
<!-- 117 -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 117, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<!-- 112 -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 112, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<g id="node55" class="node">
<title>117</title>
<title>112</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="1448.92" cy="-396" rx="71.52" ry="18"/>
<text text-anchor="middle" x="1448.92" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">example element</text>
</g>
<!-- 114&#45;&gt;117 -->
<!-- 109&#45;&gt;112 -->
<g id="edge54" class="edge">
<title>114&#45;&gt;117</title>
<title>109&#45;&gt;112</title>
<path fill="none" stroke="black" d="M1190.96,-439.91C1243.86,-430.87 1321.52,-417.6 1377.6,-408.02"/>
<polygon fill="black" stroke="black" points="1378.11,-411.48 1387.38,-406.34 1376.93,-404.58 1378.11,-411.48"/>
</g>
<!-- 116 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 116, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 111 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 111, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node54" class="node">
<title>116</title>
<title>111</title>
<ellipse fill="none" stroke="black" cx="2013.09" cy="-450" rx="66.53" ry="18"/>
<text text-anchor="middle" x="2013.09" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 115&#45;&gt;116 -->
<!-- 110&#45;&gt;111 -->
<g id="edge53" class="edge">
<title>115&#45;&gt;116</title>
<title>110&#45;&gt;111</title>
<path fill="none" stroke="black" d="M1498.82,-450C1596.68,-450 1817.23,-450 1934.83,-450"/>
<polygon fill="black" stroke="black" points="1934.71,-453.5 1944.71,-450 1934.71,-446.5 1934.71,-453.5"/>
</g>
<!-- 118 -->
<!-- name: &quot;String To Filter&quot;, typeName: &quot;&quot;, id: 118, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;Indivdiual string that needs checking&quot; -->
<!-- 113 -->
<!-- name: &quot;String To Filter&quot;, typeName: &quot;&quot;, id: 113, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;Indivdiual string that needs checking&quot; -->
<g id="node56" class="node">
<title>118</title>
<title>113</title>
<ellipse fill="none" stroke="black" cx="1656.4" cy="-396" rx="67.53" ry="18"/>
<text text-anchor="middle" x="1656.4" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">String To Filter</text>
</g>
<!-- 117&#45;&gt;118 -->
<!-- 112&#45;&gt;113 -->
<g id="edge55" class="edge">
<title>117&#45;&gt;118</title>
<title>112&#45;&gt;113</title>
<path fill="none" stroke="black" d="M1520.92,-396C1539.08,-396 1558.7,-396 1577.2,-396"/>
<polygon fill="black" stroke="black" points="1577.03,-399.5 1587.03,-396 1577.03,-392.5 1577.03,-399.5"/>
</g>
<!-- 119 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 119, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 114 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 114, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node57" class="node">
<title>119</title>
<title>114</title>
<ellipse fill="none" stroke="black" cx="2013.09" cy="-396" rx="31.1" ry="18"/>
<text text-anchor="middle" x="2013.09" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 118&#45;&gt;119 -->
<!-- 113&#45;&gt;114 -->
<g id="edge56" class="edge">
<title>118&#45;&gt;119</title>
<title>113&#45;&gt;114</title>
<path fill="none" stroke="black" d="M1724.12,-396C1796.36,-396 1909.38,-396 1970.12,-396"/>
<polygon fill="black" stroke="black" points="1970.03,-399.5 1980.03,-396 1970.03,-392.5 1970.03,-399.5"/>
</g>
<!-- 121 -->
<!-- name: &quot;int&quot;, typeName: &quot;&quot;, id: 121, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 116 -->
<!-- name: &quot;int&quot;, typeName: &quot;&quot;, id: 116, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node59" class="node">
<title>121</title>
<title>116</title>
<ellipse fill="none" stroke="black" cx="2013.09" cy="-342" rx="27" ry="18"/>
<text text-anchor="middle" x="2013.09" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">int</text>
</g>
<!-- 120&#45;&gt;121 -->
<!-- 115&#45;&gt;116 -->
<g id="edge58" class="edge">
<title>120&#45;&gt;121</title>
<title>115&#45;&gt;116</title>
<path fill="none" stroke="black" d="M1219.91,-366.3C1408.22,-360.52 1843.66,-347.17 1974.34,-343.16"/>
<polygon fill="black" stroke="black" points="1974.28,-346.66 1984.16,-342.86 1974.06,-339.67 1974.28,-346.66"/>
</g>
<!-- 123 -->
<!-- name: &quot;if (0)&quot;, typeName: &quot;&quot;, id: 123, branchId: 0, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<!-- 118 -->
<!-- name: &quot;if (0)&quot;, typeName: &quot;&quot;, id: 118, branchId: 0, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node61" class="node">
<title>123</title>
<title>118</title>
<polygon fill="none" stroke="black" points="1448.92,-306 1408.46,-288 1448.92,-270 1489.38,-288 1448.92,-306"/>
<text text-anchor="middle" x="1448.92" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">if (0)</text>
</g>
<!-- 122&#45;&gt;123 -->
<!-- 117&#45;&gt;118 -->
<g id="edge60" class="edge">
<title>122&#45;&gt;123</title>
<title>117&#45;&gt;118</title>
<path fill="none" stroke="black" d="M1267.75,-288C1313.14,-288 1361.02,-288 1396,-288"/>
<polygon fill="black" stroke="black" points="1395.84,-291.5 1405.84,-288 1395.84,-284.5 1395.84,-291.5"/>
</g>
<!-- 125 -->
<!-- name: &quot;if (1)&quot;, typeName: &quot;&quot;, id: 125, branchId: 1, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<!-- 120 -->
<!-- name: &quot;if (1)&quot;, typeName: &quot;&quot;, id: 120, branchId: 1, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node63" class="node">
<title>125</title>
<title>120</title>
<polygon fill="none" stroke="black" points="1448.92,-252 1408.46,-234 1448.92,-216 1489.38,-234 1448.92,-252"/>
<text text-anchor="middle" x="1448.92" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">if (1)</text>
</g>
<!-- 122&#45;&gt;125 -->
<!-- 117&#45;&gt;120 -->
<g id="edge62" class="edge">
<title>122&#45;&gt;125</title>
<title>117&#45;&gt;120</title>
<path fill="none" stroke="black" d="M1239.77,-269.57C1297.63,-259.68 1365.49,-248.08 1407.6,-240.89"/>
<polygon fill="black" stroke="black" points="1408.01,-244.37 1417.28,-239.24 1406.83,-237.47 1408.01,-244.37"/>
</g>
<!-- 124 -->
<!-- name: &quot;[No Data]&quot;, typeName: &quot;&quot;, id: 124, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 119 -->
<!-- name: &quot;[No Data]&quot;, typeName: &quot;&quot;, id: 119, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node62" class="node">
<title>124</title>
<title>119</title>
<ellipse fill="none" stroke="black" cx="2013.09" cy="-288" rx="47.57" ry="18"/>
<text text-anchor="middle" x="2013.09" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">[No Data]</text>
</g>
<!-- 123&#45;&gt;124 -->
<!-- 118&#45;&gt;119 -->
<g id="edge61" class="edge">
<title>123&#45;&gt;124</title>
<title>118&#45;&gt;119</title>
<path fill="none" stroke="black" d="M1490.35,-288C1588.56,-288 1840,-288 1954.15,-288"/>
<polygon fill="black" stroke="black" points="1953.9,-291.5 1963.9,-288 1953.9,-284.5 1953.9,-291.5"/>
</g>
<!-- 126 -->
<!-- name: &quot;Player Block Actions&quot;, typeName: &quot;PlayerBlockActions&quot;, id: 126, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 121 -->
<!-- name: &quot;Player Block Actions&quot;, typeName: &quot;PlayerBlockActions&quot;, id: 121, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node64" class="node">
<title>126</title>
<title>121</title>
<ellipse fill="none" stroke="black" cx="1656.4" cy="-234" rx="89.49" ry="18"/>
<text text-anchor="middle" x="1656.4" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">Player Block Actions</text>
</g>
<!-- 125&#45;&gt;126 -->
<!-- 120&#45;&gt;121 -->
<g id="edge63" class="edge">
<title>125&#45;&gt;126</title>
<title>120&#45;&gt;121</title>
<path fill="none" stroke="black" d="M1490.51,-234C1509.21,-234 1532.3,-234 1555.23,-234"/>
<polygon fill="black" stroke="black" points="1554.93,-237.5 1564.93,-234 1554.93,-230.5 1554.93,-237.5"/>
</g>
<!-- 168 -->
<!-- name: &quot;PlayerBlockActions&quot;, typeName: &quot;&quot;, id: 168, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 163 -->
<!-- name: &quot;PlayerBlockActions&quot;, typeName: &quot;&quot;, id: 163, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node65" class="node">
<title>168</title>
<title>163</title>
<ellipse fill="none" stroke="black" cx="2013.09" cy="-234" rx="84.5" ry="18"/>
<text text-anchor="middle" x="2013.09" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">PlayerBlockActions</text>
</g>
<!-- 126&#45;&gt;168 -->
<!-- 121&#45;&gt;163 -->
<g id="edge64" class="edge">
<title>126&#45;&gt;168</title>
<title>121&#45;&gt;163</title>
<path fill="none" stroke="black" d="M1745.99,-234C1797.99,-234 1863.7,-234 1916.81,-234"/>
<polygon fill="black" stroke="black" points="1916.78,-237.5 1926.78,-234 1916.78,-230.5 1916.78,-237.5"/>
</g>
<!-- 170 -->
<!-- name: &quot;if (0)&quot;, typeName: &quot;&quot;, id: 170, branchId: 0, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<!-- 165 -->
<!-- name: &quot;if (0)&quot;, typeName: &quot;&quot;, id: 165, branchId: 0, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node67" class="node">
<title>170</title>
<title>165</title>
<polygon fill="none" stroke="black" points="1656.4,-198 1615.95,-180 1656.4,-162 1696.86,-180 1656.4,-198"/>
<text text-anchor="middle" x="1656.4" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">if (0)</text>
</g>
<!-- 169&#45;&gt;170 -->
<!-- 164&#45;&gt;165 -->
<g id="edge66" class="edge">
<title>169&#45;&gt;170</title>
<title>164&#45;&gt;165</title>
<path fill="none" stroke="black" d="M1280.86,-180C1389.02,-180 1528.96,-180 1603.41,-180"/>
<polygon fill="black" stroke="black" points="1603.27,-183.5 1613.27,-180 1603.27,-176.5 1603.27,-183.5"/>
</g>
<!-- 172 -->
<!-- name: &quot;if (1)&quot;, typeName: &quot;&quot;, id: 172, branchId: 1, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<!-- 167 -->
<!-- name: &quot;if (1)&quot;, typeName: &quot;&quot;, id: 167, branchId: 1, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node69" class="node">
<title>172</title>
<title>167</title>
<polygon fill="none" stroke="black" points="1448.92,-144 1408.46,-126 1448.92,-108 1489.38,-126 1448.92,-144"/>
<text text-anchor="middle" x="1448.92" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">if (1)</text>
</g>
<!-- 169&#45;&gt;172 -->
<!-- 164&#45;&gt;167 -->
<g id="edge68" class="edge">
<title>169&#45;&gt;172</title>
<title>164&#45;&gt;167</title>
<path fill="none" stroke="black" d="M1239.77,-161.57C1297.63,-151.68 1365.49,-140.08 1407.6,-132.89"/>
<polygon fill="black" stroke="black" points="1408.01,-136.37 1417.28,-131.24 1406.83,-129.47 1408.01,-136.37"/>
</g>
<!-- 171 -->
<!-- name: &quot;[No Data]&quot;, typeName: &quot;&quot;, id: 171, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 166 -->
<!-- name: &quot;[No Data]&quot;, typeName: &quot;&quot;, id: 166, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node68" class="node">
<title>171</title>
<title>166</title>
<ellipse fill="none" stroke="black" cx="2013.09" cy="-180" rx="47.57" ry="18"/>
<text text-anchor="middle" x="2013.09" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">[No Data]</text>
</g>
<!-- 170&#45;&gt;171 -->
<!-- 165&#45;&gt;166 -->
<g id="edge67" class="edge">
<title>170&#45;&gt;171</title>
<title>165&#45;&gt;166</title>
<path fill="none" stroke="black" d="M1698.09,-180C1760.96,-180 1881.98,-180 1954.03,-180"/>
<polygon fill="black" stroke="black" points="1953.64,-183.5 1963.64,-180 1953.64,-176.5 1953.64,-183.5"/>
</g>
<!-- 173 -->
<!-- name: &quot;Vehicle Rotation&quot;, typeName: &quot;Vec2&quot;, id: 173, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 168 -->
<!-- name: &quot;Vehicle Rotation&quot;, typeName: &quot;Vec2&quot;, id: 168, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node70" class="node">
<title>173</title>
<title>168</title>
<ellipse fill="none" stroke="black" cx="1656.4" cy="-126" rx="72.52" ry="18"/>
<text text-anchor="middle" x="1656.4" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Vehicle Rotation</text>
</g>
<!-- 172&#45;&gt;173 -->
<!-- 167&#45;&gt;168 -->
<g id="edge69" class="edge">
<title>172&#45;&gt;173</title>
<title>167&#45;&gt;168</title>
<path fill="none" stroke="black" d="M1490.51,-126C1513.85,-126 1544.04,-126 1572.19,-126"/>
<polygon fill="black" stroke="black" points="1572.18,-129.5 1582.18,-126 1572.18,-122.5 1572.18,-129.5"/>
</g>
<!-- 175 -->
<!-- name: &quot;Client Predicted Vehicle&quot;, typeName: &quot;ActorUniqueID&quot;, id: 175, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 170 -->
<!-- name: &quot;Client Predicted Vehicle&quot;, typeName: &quot;ActorUniqueID&quot;, id: 170, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node72" class="node">
<title>175</title>
<title>170</title>
<ellipse fill="none" stroke="black" cx="1656.4" cy="-72" rx="99.97" ry="18"/>
<text text-anchor="middle" x="1656.4" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Client Predicted Vehicle</text>
</g>
<!-- 172&#45;&gt;175 -->
<!-- 167&#45;&gt;170 -->
<g id="edge71" class="edge">
<title>172&#45;&gt;175</title>
<title>167&#45;&gt;170</title>
<path fill="none" stroke="black" d="M1475.11,-119.38C1502.93,-112.07 1548.89,-99.99 1587.44,-89.86"/>
<polygon fill="black" stroke="black" points="1587.85,-93.37 1596.63,-87.44 1586.07,-86.6 1587.85,-93.37"/>
</g>
<!-- 174 -->
<!-- name: &quot;Vec2&quot;, typeName: &quot;&quot;, id: 174, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 169 -->
<!-- name: &quot;Vec2&quot;, typeName: &quot;&quot;, id: 169, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node71" class="node">
<title>174</title>
<title>169</title>
<ellipse fill="none" stroke="black" cx="2013.09" cy="-126" rx="30.11" ry="18"/>
<text text-anchor="middle" x="2013.09" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Vec2</text>
</g>
<!-- 173&#45;&gt;174 -->
<!-- 168&#45;&gt;169 -->
<g id="edge70" class="edge">
<title>173&#45;&gt;174</title>
<title>168&#45;&gt;169</title>
<path fill="none" stroke="black" d="M1729.18,-126C1802.09,-126 1912.43,-126 1971.45,-126"/>
<polygon fill="black" stroke="black" points="1971.38,-129.5 1981.38,-126 1971.38,-122.5 1971.38,-129.5"/>
</g>
<!-- 176 -->
<!-- name: &quot;ActorUniqueID&quot;, typeName: &quot;&quot;, id: 176, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 171 -->
<!-- name: &quot;ActorUniqueID&quot;, typeName: &quot;&quot;, id: 171, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node73" class="node">
<title>176</title>
<title>171</title>
<ellipse fill="none" stroke="black" cx="2013.09" cy="-72" rx="68.03" ry="18"/>
<text text-anchor="middle" x="2013.09" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">ActorUniqueID</text>
</g>
<!-- 175&#45;&gt;176 -->
<!-- 170&#45;&gt;171 -->
<g id="edge72" class="edge">
<title>175&#45;&gt;176</title>
<title>170&#45;&gt;171</title>
<path fill="none" stroke="black" d="M1756.68,-72C1812.52,-72 1881.28,-72 1933.38,-72"/>
<polygon fill="black" stroke="black" points="1933.05,-75.5 1943.05,-72 1933.05,-68.5 1933.05,-75.5"/>
</g>
<!-- 178 -->
<!-- name: &quot;Vec2&quot;, typeName: &quot;&quot;, id: 178, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 173 -->
<!-- name: &quot;Vec2&quot;, typeName: &quot;&quot;, id: 173, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node75" class="node">
<title>178</title>
<title>173</title>
<ellipse fill="none" stroke="black" cx="2013.09" cy="-18" rx="30.11" ry="18"/>
<text text-anchor="middle" x="2013.09" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Vec2</text>
</g>
<!-- 177&#45;&gt;178 -->
<!-- 172&#45;&gt;173 -->
<g id="edge74" class="edge">
<title>177&#45;&gt;178</title>
<title>172&#45;&gt;173</title>
<path fill="none" stroke="black" d="M867.76,-103.56C1006.49,-90.55 1304.5,-63.3 1556.44,-45 1709.43,-33.89 1891.56,-24.14 1971.3,-20.05"/>
<polygon fill="black" stroke="black" points="1971.44,-23.55 1981.24,-19.54 1971.08,-16.56 1971.44,-23.55"/>
</g>

Before

(image error) Size: 56 KiB

After

(image error) Size: 56 KiB

@ -9,441 +9,441 @@
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 688)">
<title>PlayerBlockActionData</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-688 835.12,-688 835.12,4 -4,4"/>
<!-- 133 -->
<!-- name: &quot;PlayerBlockActionData&quot;, typeName: &quot;&quot;, id: 133, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 128 -->
<!-- name: &quot;PlayerBlockActionData&quot;, typeName: &quot;&quot;, id: 128, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>133</title>
<title>128</title>
<ellipse fill="none" stroke="black" cx="97.47" cy="-396" rx="97.47" ry="18"/>
<text text-anchor="middle" x="97.47" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">PlayerBlockActionData</text>
</g>
<!-- 134 -->
<!-- name: &quot;Player Action Type&quot;, typeName: &quot;&quot;, id: 134, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 129 -->
<!-- name: &quot;Player Action Type&quot;, typeName: &quot;&quot;, id: 129, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>134</title>
<title>129</title>
<ellipse fill="none" stroke="black" cx="342.07" cy="-558" rx="83" ry="18"/>
<text text-anchor="middle" x="342.07" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">Player Action Type</text>
</g>
<!-- 133&#45;&gt;134 -->
<!-- 128&#45;&gt;129 -->
<g id="edge1" class="edge">
<title>133&#45;&gt;134</title>
<title>128&#45;&gt;129</title>
<path fill="none" stroke="black" d="M124.89,-413.65C168.76,-442.94 256.63,-501.61 305.76,-534.42"/>
<polygon fill="black" stroke="black" points="303.52,-537.14 313.78,-539.78 307.41,-531.32 303.52,-537.14"/>
</g>
<!-- 136 -->
<!-- name: &quot;Dependency on &#39;Player Action Type&#39;&quot;, typeName: &quot;&quot;, id: 136, branchId: 0, recurseId: &#45;1, attributes: 2, notes: &quot;&quot; -->
<!-- 131 -->
<!-- name: &quot;Dependency on &#39;Player Action Type&#39;&quot;, typeName: &quot;&quot;, id: 131, branchId: 0, recurseId: &#45;1, attributes: 2, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>136</title>
<title>131</title>
<polygon fill="none" stroke="black" points="447.19,-387 230.94,-387 230.94,-351 453.19,-351 453.19,-381 447.19,-387"/>
<polyline fill="none" stroke="black" points="447.19,-387 447.19,-381"/>
<polyline fill="none" stroke="black" points="453.19,-381 447.19,-381"/>
<text text-anchor="middle" x="342.07" y="-363.57" font-family="Times New Roman,serif" font-size="14.00">Dependency on &#39;Player Action Type&#39;</text>
</g>
<!-- 133&#45;&gt;136 -->
<!-- 128&#45;&gt;131 -->
<g id="edge3" class="edge">
<title>133&#45;&gt;136</title>
<title>128&#45;&gt;131</title>
<path fill="none" stroke="black" d="M181.96,-386.71C194.15,-385.35 206.91,-383.93 219.66,-382.51"/>
<polygon fill="black" stroke="black" points="219.81,-386.02 229.36,-381.43 219.03,-379.06 219.81,-386.02"/>
</g>
<!-- 135 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 135, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 130 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 130, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>135</title>
<title>130</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-666" rx="31.1" ry="18"/>
<text text-anchor="middle" x="784.05" y="-660.58" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 134&#45;&gt;135 -->
<!-- 129&#45;&gt;130 -->
<g id="edge2" class="edge">
<title>134&#45;&gt;135</title>
<title>129&#45;&gt;130</title>
<path fill="none" stroke="black" d="M388.48,-573.21C442.76,-590.95 536.6,-620.24 618.81,-639 660.39,-648.49 708.62,-656.01 742.01,-660.68"/>
<polygon fill="black" stroke="black" points="741.29,-664.11 751.67,-662.01 742.24,-657.18 741.29,-664.11"/>
</g>
<!-- 137 -->
<!-- name: &quot;if (26)&quot;, typeName: &quot;&quot;, id: 137, branchId: 26, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<!-- 132 -->
<!-- name: &quot;if (26)&quot;, typeName: &quot;&quot;, id: 132, branchId: 26, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>137</title>
<title>132</title>
<polygon fill="none" stroke="black" points="536,-576 489.19,-558 536,-540 582.81,-558 536,-576"/>
<text text-anchor="middle" x="536" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">if (26)</text>
</g>
<!-- 136&#45;&gt;137 -->
<!-- 131&#45;&gt;132 -->
<g id="edge4" class="edge">
<title>136&#45;&gt;137</title>
<title>131&#45;&gt;132</title>
<path fill="none" stroke="black" d="M361.82,-387.47C397.95,-423.04 476.95,-500.83 514.45,-537.76"/>
<polygon fill="black" stroke="black" points="511.55,-539.82 521.13,-544.34 516.46,-534.83 511.55,-539.82"/>
</g>
<!-- 142 -->
<!-- name: &quot;if (0)&quot;, typeName: &quot;&quot;, id: 142, branchId: 0, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<!-- 137 -->
<!-- name: &quot;if (0)&quot;, typeName: &quot;&quot;, id: 137, branchId: 0, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node10" class="node">
<title>142</title>
<title>137</title>
<polygon fill="none" stroke="black" points="536,-468 495.54,-450 536,-432 576.46,-450 536,-468"/>
<text text-anchor="middle" x="536" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">if (0)</text>
</g>
<!-- 136&#45;&gt;142 -->
<!-- 131&#45;&gt;137 -->
<g id="edge9" class="edge">
<title>136&#45;&gt;142</title>
<title>131&#45;&gt;137</title>
<path fill="none" stroke="black" d="M386.62,-387.38C422.43,-402.49 472.3,-423.54 504.12,-436.97"/>
<polygon fill="black" stroke="black" points="502.6,-440.12 513.17,-440.79 505.32,-433.67 502.6,-440.12"/>
</g>
<!-- 147 -->
<!-- name: &quot;if (1)&quot;, typeName: &quot;&quot;, id: 147, branchId: 1, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<!-- 142 -->
<!-- name: &quot;if (1)&quot;, typeName: &quot;&quot;, id: 142, branchId: 1, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node15" class="node">
<title>147</title>
<title>142</title>
<polygon fill="none" stroke="black" points="536,-387 495.54,-369 536,-351 576.46,-369 536,-387"/>
<text text-anchor="middle" x="536" y="-363.57" font-family="Times New Roman,serif" font-size="14.00">if (1)</text>
</g>
<!-- 136&#45;&gt;147 -->
<!-- 131&#45;&gt;142 -->
<g id="edge14" class="edge">
<title>136&#45;&gt;147</title>
<title>131&#45;&gt;142</title>
<path fill="none" stroke="black" d="M453.6,-369C463.8,-369 473.77,-369 483.04,-369"/>
<polygon fill="black" stroke="black" points="482.86,-372.5 492.86,-369 482.86,-365.5 482.86,-372.5"/>
</g>
<!-- 152 -->
<!-- name: &quot;if (18)&quot;, typeName: &quot;&quot;, id: 152, branchId: 18, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<!-- 147 -->
<!-- name: &quot;if (18)&quot;, typeName: &quot;&quot;, id: 147, branchId: 18, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node20" class="node">
<title>152</title>
<title>147</title>
<polygon fill="none" stroke="black" points="536,-306 489.19,-288 536,-270 582.81,-288 536,-306"/>
<text text-anchor="middle" x="536" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">if (18)</text>
</g>
<!-- 136&#45;&gt;152 -->
<!-- 131&#45;&gt;147 -->
<g id="edge19" class="edge">
<title>136&#45;&gt;152</title>
<title>131&#45;&gt;147</title>
<path fill="none" stroke="black" d="M386.62,-350.62C421.64,-335.84 470.1,-315.39 501.98,-301.93"/>
<polygon fill="black" stroke="black" points="503.27,-305.19 511.12,-298.08 500.55,-298.74 503.27,-305.19"/>
</g>
<!-- 157 -->
<!-- name: &quot;if (27)&quot;, typeName: &quot;&quot;, id: 157, branchId: 27, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<!-- 152 -->
<!-- name: &quot;if (27)&quot;, typeName: &quot;&quot;, id: 152, branchId: 27, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node25" class="node">
<title>157</title>
<title>152</title>
<polygon fill="none" stroke="black" points="536,-198 489.19,-180 536,-162 582.81,-180 536,-198"/>
<text text-anchor="middle" x="536" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">if (27)</text>
</g>
<!-- 136&#45;&gt;157 -->
<!-- 131&#45;&gt;152 -->
<g id="edge24" class="edge">
<title>136&#45;&gt;157</title>
<title>131&#45;&gt;152</title>
<path fill="none" stroke="black" d="M361.82,-350.53C397.95,-314.96 476.95,-237.17 514.45,-200.24"/>
<polygon fill="black" stroke="black" points="516.46,-203.17 521.13,-193.66 511.55,-198.18 516.46,-203.17"/>
</g>
<!-- 162 -->
<!-- name: &quot;if (2)&quot;, typeName: &quot;&quot;, id: 162, branchId: 2, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<!-- 157 -->
<!-- name: &quot;if (2)&quot;, typeName: &quot;&quot;, id: 157, branchId: 2, recurseId: &#45;1, attributes: 4, notes: &quot;&quot; -->
<g id="node30" class="node">
<title>162</title>
<title>157</title>
<polygon fill="none" stroke="black" points="536,-90 495.54,-72 536,-54 576.46,-72 536,-90"/>
<text text-anchor="middle" x="536" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">if (2)</text>
</g>
<!-- 136&#45;&gt;162 -->
<!-- 131&#45;&gt;157 -->
<g id="edge29" class="edge">
<title>136&#45;&gt;162</title>
<title>131&#45;&gt;157</title>
<path fill="none" stroke="black" d="M354.78,-350.87C387.96,-299.53 482.54,-153.18 519.72,-95.64"/>
<polygon fill="black" stroke="black" points="522.66,-97.54 525.15,-87.24 516.78,-93.74 522.66,-97.54"/>
</g>
<!-- 138 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 138, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 133 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 133, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>138</title>
<title>133</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-612" rx="41.08" ry="18"/>
<text text-anchor="middle" x="659.9" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">Position</text>
</g>
<!-- 137&#45;&gt;138 -->
<!-- 132&#45;&gt;133 -->
<g id="edge5" class="edge">
<title>137&#45;&gt;138</title>
<title>132&#45;&gt;133</title>
<path fill="none" stroke="black" d="M558.79,-567.65C575.63,-575.11 599.37,-585.63 619.51,-594.55"/>
<polygon fill="black" stroke="black" points="618.01,-597.72 628.57,-598.57 620.85,-591.32 618.01,-597.72"/>
</g>
<!-- 140 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 140, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 135 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 135, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node8" class="node">
<title>140</title>
<title>135</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-558" rx="35.6" ry="18"/>
<text text-anchor="middle" x="659.9" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">Facing</text>
</g>
<!-- 137&#45;&gt;140 -->
<!-- 132&#45;&gt;135 -->
<g id="edge7" class="edge">
<title>137&#45;&gt;140</title>
<title>132&#45;&gt;135</title>
<path fill="none" stroke="black" d="M584.13,-558C593.46,-558 603.24,-558 612.54,-558"/>
<polygon fill="black" stroke="black" points="612.48,-561.5 622.48,-558 612.48,-554.5 612.48,-561.5"/>
</g>
<!-- 139 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 139, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 134 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 134, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>139</title>
<title>134</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-612" rx="47.07" ry="18"/>
<text text-anchor="middle" x="784.05" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">BlockPos</text>
</g>
<!-- 138&#45;&gt;139 -->
<!-- 133&#45;&gt;134 -->
<g id="edge6" class="edge">
<title>138&#45;&gt;139</title>
<title>133&#45;&gt;134</title>
<path fill="none" stroke="black" d="M701.23,-612C708.98,-612 717.23,-612 725.4,-612"/>
<polygon fill="black" stroke="black" points="725.32,-615.5 735.32,-612 725.32,-608.5 725.32,-615.5"/>
</g>
<!-- 141 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 141, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 136 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 136, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>141</title>
<title>136</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-558" rx="31.1" ry="18"/>
<text text-anchor="middle" x="784.05" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 140&#45;&gt;141 -->
<!-- 135&#45;&gt;136 -->
<g id="edge8" class="edge">
<title>140&#45;&gt;141</title>
<title>135&#45;&gt;136</title>
<path fill="none" stroke="black" d="M695.9,-558C710.03,-558 726.45,-558 741.21,-558"/>
<polygon fill="black" stroke="black" points="741.09,-561.5 751.09,-558 741.09,-554.5 741.09,-561.5"/>
</g>
<!-- 143 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 143, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 138 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 138, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node11" class="node">
<title>143</title>
<title>138</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-504" rx="41.08" ry="18"/>
<text text-anchor="middle" x="659.9" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">Position</text>
</g>
<!-- 142&#45;&gt;143 -->
<!-- 137&#45;&gt;138 -->
<g id="edge10" class="edge">
<title>142&#45;&gt;143</title>
<title>137&#45;&gt;138</title>
<path fill="none" stroke="black" d="M557.13,-458.92C574.06,-466.42 598.76,-477.36 619.59,-486.59"/>
<polygon fill="black" stroke="black" points="618.13,-489.77 628.69,-490.62 620.96,-483.37 618.13,-489.77"/>
</g>
<!-- 145 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 145, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 140 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 140, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node13" class="node">
<title>145</title>
<title>140</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-450" rx="35.6" ry="18"/>
<text text-anchor="middle" x="659.9" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">Facing</text>
</g>
<!-- 142&#45;&gt;145 -->
<!-- 137&#45;&gt;140 -->
<g id="edge12" class="edge">
<title>142&#45;&gt;145</title>
<title>137&#45;&gt;140</title>
<path fill="none" stroke="black" d="M577.59,-450C588.91,-450 601.3,-450 612.91,-450"/>
<polygon fill="black" stroke="black" points="612.68,-453.5 622.68,-450 612.68,-446.5 612.68,-453.5"/>
</g>
<!-- 144 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 144, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 139 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 139, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node12" class="node">
<title>144</title>
<title>139</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-504" rx="47.07" ry="18"/>
<text text-anchor="middle" x="784.05" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">BlockPos</text>
</g>
<!-- 143&#45;&gt;144 -->
<!-- 138&#45;&gt;139 -->
<g id="edge11" class="edge">
<title>143&#45;&gt;144</title>
<title>138&#45;&gt;139</title>
<path fill="none" stroke="black" d="M701.23,-504C708.98,-504 717.23,-504 725.4,-504"/>
<polygon fill="black" stroke="black" points="725.32,-507.5 735.32,-504 725.32,-500.5 725.32,-507.5"/>
</g>
<!-- 146 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 146, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 141 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 141, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node14" class="node">
<title>146</title>
<title>141</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-450" rx="31.1" ry="18"/>
<text text-anchor="middle" x="784.05" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 145&#45;&gt;146 -->
<!-- 140&#45;&gt;141 -->
<g id="edge13" class="edge">
<title>145&#45;&gt;146</title>
<title>140&#45;&gt;141</title>
<path fill="none" stroke="black" d="M695.9,-450C710.03,-450 726.45,-450 741.21,-450"/>
<polygon fill="black" stroke="black" points="741.09,-453.5 751.09,-450 741.09,-446.5 741.09,-453.5"/>
</g>
<!-- 148 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 148, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 143 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 143, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node16" class="node">
<title>148</title>
<title>143</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-396" rx="41.08" ry="18"/>
<text text-anchor="middle" x="659.9" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">Position</text>
</g>
<!-- 147&#45;&gt;148 -->
<!-- 142&#45;&gt;143 -->
<g id="edge15" class="edge">
<title>147&#45;&gt;148</title>
<title>142&#45;&gt;143</title>
<path fill="none" stroke="black" d="M564.05,-374.99C578.07,-378.1 595.6,-381.98 611.76,-385.56"/>
<polygon fill="black" stroke="black" points="610.67,-388.9 621.19,-387.65 612.18,-382.07 610.67,-388.9"/>
</g>
<!-- 150 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 150, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 145 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 145, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node18" class="node">
<title>150</title>
<title>145</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-342" rx="35.6" ry="18"/>
<text text-anchor="middle" x="659.9" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">Facing</text>
</g>
<!-- 147&#45;&gt;150 -->
<!-- 142&#45;&gt;145 -->
<g id="edge17" class="edge">
<title>147&#45;&gt;150</title>
<title>142&#45;&gt;145</title>
<path fill="none" stroke="black" d="M564.05,-363.01C579.24,-359.64 598.55,-355.37 615.78,-351.55"/>
<polygon fill="black" stroke="black" points="616.25,-355.03 625.25,-349.45 614.73,-348.2 616.25,-355.03"/>
</g>
<!-- 149 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 149, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 144 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 144, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node17" class="node">
<title>149</title>
<title>144</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-396" rx="47.07" ry="18"/>
<text text-anchor="middle" x="784.05" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">BlockPos</text>
</g>
<!-- 148&#45;&gt;149 -->
<!-- 143&#45;&gt;144 -->
<g id="edge16" class="edge">
<title>148&#45;&gt;149</title>
<title>143&#45;&gt;144</title>
<path fill="none" stroke="black" d="M701.23,-396C708.98,-396 717.23,-396 725.4,-396"/>
<polygon fill="black" stroke="black" points="725.32,-399.5 735.32,-396 725.32,-392.5 725.32,-399.5"/>
</g>
<!-- 151 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 151, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 146 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 146, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node19" class="node">
<title>151</title>
<title>146</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-342" rx="31.1" ry="18"/>
<text text-anchor="middle" x="784.05" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 150&#45;&gt;151 -->
<!-- 145&#45;&gt;146 -->
<g id="edge18" class="edge">
<title>150&#45;&gt;151</title>
<title>145&#45;&gt;146</title>
<path fill="none" stroke="black" d="M695.9,-342C710.03,-342 726.45,-342 741.21,-342"/>
<polygon fill="black" stroke="black" points="741.09,-345.5 751.09,-342 741.09,-338.5 741.09,-345.5"/>
</g>
<!-- 153 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 153, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 148 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 148, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node21" class="node">
<title>153</title>
<title>148</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-288" rx="41.08" ry="18"/>
<text text-anchor="middle" x="659.9" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">Position</text>
</g>
<!-- 152&#45;&gt;153 -->
<!-- 147&#45;&gt;148 -->
<g id="edge20" class="edge">
<title>152&#45;&gt;153</title>
<title>147&#45;&gt;148</title>
<path fill="none" stroke="black" d="M584.13,-288C591.69,-288 599.55,-288 607.22,-288"/>
<polygon fill="black" stroke="black" points="607.11,-291.5 617.11,-288 607.11,-284.5 607.11,-291.5"/>
</g>
<!-- 155 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 155, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 150 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 150, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node23" class="node">
<title>155</title>
<title>150</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-234" rx="35.6" ry="18"/>
<text text-anchor="middle" x="659.9" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">Facing</text>
</g>
<!-- 152&#45;&gt;155 -->
<!-- 147&#45;&gt;150 -->
<g id="edge22" class="edge">
<title>152&#45;&gt;155</title>
<title>147&#45;&gt;150</title>
<path fill="none" stroke="black" d="M558.79,-278.35C576.29,-270.6 601.25,-259.54 621.86,-250.41"/>
<polygon fill="black" stroke="black" points="623.08,-253.7 630.8,-246.44 620.24,-247.3 623.08,-253.7"/>
</g>
<!-- 154 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 154, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 149 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 149, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node22" class="node">
<title>154</title>
<title>149</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-288" rx="47.07" ry="18"/>
<text text-anchor="middle" x="784.05" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">BlockPos</text>
</g>
<!-- 153&#45;&gt;154 -->
<!-- 148&#45;&gt;149 -->
<g id="edge21" class="edge">
<title>153&#45;&gt;154</title>
<title>148&#45;&gt;149</title>
<path fill="none" stroke="black" d="M701.23,-288C708.98,-288 717.23,-288 725.4,-288"/>
<polygon fill="black" stroke="black" points="725.32,-291.5 735.32,-288 725.32,-284.5 725.32,-291.5"/>
</g>
<!-- 156 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 156, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 151 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 151, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node24" class="node">
<title>156</title>
<title>151</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-234" rx="31.1" ry="18"/>
<text text-anchor="middle" x="784.05" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 155&#45;&gt;156 -->
<!-- 150&#45;&gt;151 -->
<g id="edge23" class="edge">
<title>155&#45;&gt;156</title>
<title>150&#45;&gt;151</title>
<path fill="none" stroke="black" d="M695.9,-234C710.03,-234 726.45,-234 741.21,-234"/>
<polygon fill="black" stroke="black" points="741.09,-237.5 751.09,-234 741.09,-230.5 741.09,-237.5"/>
</g>
<!-- 158 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 158, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 153 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 153, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node26" class="node">
<title>158</title>
<title>153</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-180" rx="41.08" ry="18"/>
<text text-anchor="middle" x="659.9" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Position</text>
</g>
<!-- 157&#45;&gt;158 -->
<!-- 152&#45;&gt;153 -->
<g id="edge25" class="edge">
<title>157&#45;&gt;158</title>
<title>152&#45;&gt;153</title>
<path fill="none" stroke="black" d="M584.13,-180C591.69,-180 599.55,-180 607.22,-180"/>
<polygon fill="black" stroke="black" points="607.11,-183.5 617.11,-180 607.11,-176.5 607.11,-183.5"/>
</g>
<!-- 160 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 160, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 155 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 155, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node28" class="node">
<title>160</title>
<title>155</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-126" rx="35.6" ry="18"/>
<text text-anchor="middle" x="659.9" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Facing</text>
</g>
<!-- 157&#45;&gt;160 -->
<!-- 152&#45;&gt;155 -->
<g id="edge27" class="edge">
<title>157&#45;&gt;160</title>
<title>152&#45;&gt;155</title>
<path fill="none" stroke="black" d="M558.79,-170.35C576.29,-162.6 601.25,-151.54 621.86,-142.41"/>
<polygon fill="black" stroke="black" points="623.08,-145.7 630.8,-138.44 620.24,-139.3 623.08,-145.7"/>
</g>
<!-- 159 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 159, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 154 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 154, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node27" class="node">
<title>159</title>
<title>154</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-180" rx="47.07" ry="18"/>
<text text-anchor="middle" x="784.05" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">BlockPos</text>
</g>
<!-- 158&#45;&gt;159 -->
<!-- 153&#45;&gt;154 -->
<g id="edge26" class="edge">
<title>158&#45;&gt;159</title>
<title>153&#45;&gt;154</title>
<path fill="none" stroke="black" d="M701.23,-180C708.98,-180 717.23,-180 725.4,-180"/>
<polygon fill="black" stroke="black" points="725.32,-183.5 735.32,-180 725.32,-176.5 725.32,-183.5"/>
</g>
<!-- 161 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 161, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 156 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 156, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node29" class="node">
<title>161</title>
<title>156</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-126" rx="31.1" ry="18"/>
<text text-anchor="middle" x="784.05" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 160&#45;&gt;161 -->
<!-- 155&#45;&gt;156 -->
<g id="edge28" class="edge">
<title>160&#45;&gt;161</title>
<title>155&#45;&gt;156</title>
<path fill="none" stroke="black" d="M695.9,-126C710.03,-126 726.45,-126 741.21,-126"/>
<polygon fill="black" stroke="black" points="741.09,-129.5 751.09,-126 741.09,-122.5 741.09,-129.5"/>
</g>
<!-- 163 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 163, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 158 -->
<!-- name: &quot;Position&quot;, typeName: &quot;BlockPos&quot;, id: 158, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node31" class="node">
<title>163</title>
<title>158</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-72" rx="41.08" ry="18"/>
<text text-anchor="middle" x="659.9" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Position</text>
</g>
<!-- 162&#45;&gt;163 -->
<!-- 157&#45;&gt;158 -->
<g id="edge30" class="edge">
<title>162&#45;&gt;163</title>
<title>157&#45;&gt;158</title>
<path fill="none" stroke="black" d="M577.59,-72C587.05,-72 597.25,-72 607.11,-72"/>
<polygon fill="black" stroke="black" points="606.97,-75.5 616.97,-72 606.97,-68.5 606.97,-75.5"/>
</g>
<!-- 165 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 165, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 160 -->
<!-- name: &quot;Facing&quot;, typeName: &quot;&quot;, id: 160, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node33" class="node">
<title>165</title>
<title>160</title>
<ellipse fill="none" stroke="black" cx="659.9" cy="-18" rx="35.6" ry="18"/>
<text text-anchor="middle" x="659.9" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Facing</text>
</g>
<!-- 162&#45;&gt;165 -->
<!-- 157&#45;&gt;160 -->
<g id="edge32" class="edge">
<title>162&#45;&gt;165</title>
<title>157&#45;&gt;160</title>
<path fill="none" stroke="black" d="M557.13,-63.08C574.72,-55.29 600.69,-43.78 622,-34.35"/>
<polygon fill="black" stroke="black" points="623.22,-37.63 630.95,-30.38 620.39,-31.23 623.22,-37.63"/>
</g>
<!-- 164 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 164, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 159 -->
<!-- name: &quot;BlockPos&quot;, typeName: &quot;&quot;, id: 159, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node32" class="node">
<title>164</title>
<title>159</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-72" rx="47.07" ry="18"/>
<text text-anchor="middle" x="784.05" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">BlockPos</text>
</g>
<!-- 163&#45;&gt;164 -->
<!-- 158&#45;&gt;159 -->
<g id="edge31" class="edge">
<title>163&#45;&gt;164</title>
<title>158&#45;&gt;159</title>
<path fill="none" stroke="black" d="M701.23,-72C708.98,-72 717.23,-72 725.4,-72"/>
<polygon fill="black" stroke="black" points="725.32,-75.5 735.32,-72 725.32,-68.5 725.32,-75.5"/>
</g>
<!-- 166 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 166, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 161 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 161, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node34" class="node">
<title>166</title>
<title>161</title>
<ellipse fill="none" stroke="black" cx="784.05" cy="-18" rx="31.1" ry="18"/>
<text text-anchor="middle" x="784.05" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 165&#45;&gt;166 -->
<!-- 160&#45;&gt;161 -->
<g id="edge33" class="edge">
<title>165&#45;&gt;166</title>
<title>160&#45;&gt;161</title>
<path fill="none" stroke="black" d="M695.9,-18C710.03,-18 726.45,-18 741.21,-18"/>
<polygon fill="black" stroke="black" points="741.09,-21.5 751.09,-18 741.09,-14.5 741.09,-21.5"/>
</g>

Before

(image error) Size: 24 KiB

After

(image error) Size: 24 KiB

@ -9,88 +9,88 @@
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 94)">
<title>PlayerBlockActions</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-94 1059.83,-94 1059.83,4 -4,4"/>
<!-- 127 -->
<!-- name: &quot;PlayerBlockActions&quot;, typeName: &quot;&quot;, id: 127, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 122 -->
<!-- name: &quot;PlayerBlockActions&quot;, typeName: &quot;&quot;, id: 122, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>127</title>
<title>122</title>
<ellipse fill="none" stroke="black" cx="84.5" cy="-45" rx="84.5" ry="18"/>
<text text-anchor="middle" x="84.5" y="-39.58" font-family="Times New Roman,serif" font-size="14.00">PlayerBlockActions</text>
</g>
<!-- 128 -->
<!-- name: &quot;Player Block Actions&quot;, typeName: &quot;&quot;, id: 128, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;&quot; -->
<!-- 123 -->
<!-- name: &quot;Player Block Actions&quot;, typeName: &quot;&quot;, id: 123, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>128</title>
<title>123</title>
<ellipse fill="none" stroke="black" cx="294.48" cy="-45" rx="89.49" ry="18"/>
<text text-anchor="middle" x="294.48" y="-39.58" font-family="Times New Roman,serif" font-size="14.00">Player Block Actions</text>
</g>
<!-- 127&#45;&gt;128 -->
<!-- 122&#45;&gt;123 -->
<g id="edge1" class="edge">
<title>127&#45;&gt;128</title>
<title>122&#45;&gt;123</title>
<path fill="none" stroke="black" d="M169.49,-45C177.38,-45 185.44,-45 193.46,-45"/>
<polygon fill="black" stroke="black" points="193.24,-48.5 203.24,-45 193.24,-41.5 193.24,-48.5"/>
</g>
<!-- 129 -->
<!-- name: &quot;Player Block Actions count&quot;, typeName: &quot;&quot;, id: 129, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 124 -->
<!-- name: &quot;Player Block Actions count&quot;, typeName: &quot;&quot;, id: 124, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>129</title>
<title>124</title>
<ellipse fill="none" stroke="black" cx="711.95" cy="-72" rx="112.94" ry="18"/>
<text text-anchor="middle" x="711.95" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Player Block Actions count</text>
</g>
<!-- 128&#45;&gt;129 -->
<!-- 123&#45;&gt;124 -->
<g id="edge2" class="edge">
<title>128&#45;&gt;129</title>
<title>123&#45;&gt;124</title>
<path fill="none" stroke="black" d="M380.31,-50.51C442.36,-54.55 527.25,-60.06 595.48,-64.5"/>
<polygon fill="black" stroke="black" points="595,-67.97 605.21,-65.13 595.45,-60.99 595,-67.97"/>
</g>
<!-- 131 -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 131, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<!-- 126 -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 126, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>131</title>
<title>126</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="491.49" cy="-22" rx="71.52" ry="18"/>
<text text-anchor="middle" x="491.49" y="-16.57" font-family="Times New Roman,serif" font-size="14.00">example element</text>
</g>
<!-- 128&#45;&gt;131 -->
<!-- 123&#45;&gt;126 -->
<g id="edge4" class="edge">
<title>128&#45;&gt;131</title>
<title>123&#45;&gt;126</title>
<path fill="none" stroke="black" d="M372.55,-35.91C386.36,-34.28 400.74,-32.59 414.51,-30.96"/>
<polygon fill="black" stroke="black" points="414.89,-34.44 424.41,-29.79 414.07,-27.49 414.89,-34.44"/>
</g>
<!-- 130 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 130, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 125 -->
<!-- name: &quot;varint&quot;, typeName: &quot;&quot;, id: 125, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>130</title>
<title>125</title>
<ellipse fill="none" stroke="black" cx="958.36" cy="-72" rx="31.1" ry="18"/>
<text text-anchor="middle" x="958.36" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">varint</text>
</g>
<!-- 129&#45;&gt;130 -->
<!-- 124&#45;&gt;125 -->
<g id="edge3" class="edge">
<title>129&#45;&gt;130</title>
<title>124&#45;&gt;125</title>
<path fill="none" stroke="black" d="M825.14,-72C857.42,-72 890.65,-72 915.71,-72"/>
<polygon fill="black" stroke="black" points="915.46,-75.5 925.46,-72 915.46,-68.5 915.46,-75.5"/>
</g>
<!-- 132 -->
<!-- name: &quot;Player Block Action&quot;, typeName: &quot;PlayerBlockActionData&quot;, id: 132, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<!-- 127 -->
<!-- name: &quot;Player Block Action&quot;, typeName: &quot;PlayerBlockActionData&quot;, id: 127, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>132</title>
<title>127</title>
<ellipse fill="none" stroke="black" cx="711.95" cy="-18" rx="85.49" ry="18"/>
<text text-anchor="middle" x="711.95" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Player Block Action</text>
</g>
<!-- 131&#45;&gt;132 -->
<!-- 126&#45;&gt;127 -->
<g id="edge5" class="edge">
<title>131&#45;&gt;132</title>
<title>126&#45;&gt;127</title>
<path fill="none" stroke="black" d="M563.12,-20.71C579.68,-20.4 597.61,-20.08 615.07,-19.76"/>
<polygon fill="black" stroke="black" points="615.01,-23.26 624.95,-19.57 614.89,-16.26 615.01,-23.26"/>
</g>
<!-- 167 -->
<!-- name: &quot;PlayerBlockActionData&quot;, typeName: &quot;&quot;, id: 167, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 162 -->
<!-- name: &quot;PlayerBlockActionData&quot;, typeName: &quot;&quot;, id: 162, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>167</title>
<title>162</title>
<ellipse fill="none" stroke="black" cx="958.36" cy="-18" rx="97.47" ry="18"/>
<text text-anchor="middle" x="958.36" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">PlayerBlockActionData</text>
</g>
<!-- 132&#45;&gt;167 -->
<!-- 127&#45;&gt;162 -->
<g id="edge6" class="edge">
<title>132&#45;&gt;167</title>
<title>127&#45;&gt;162</title>
<path fill="none" stroke="black" d="M797.75,-18C814.37,-18 832.02,-18 849.29,-18"/>
<polygon fill="black" stroke="black" points="849.05,-21.5 859.05,-18 849.05,-14.5 849.05,-21.5"/>
</g>

Before

(image error) Size: 5.1 KiB

After

(image error) Size: 5.1 KiB

@ -4,771 +4,485 @@
<!-- Generated by graphviz version 11.0.0 (20240428.1522)
-->
<!-- Title: ResourcePacksInfoPacket Pages: 1 -->
<svg width="1141pt" height="1394pt"
viewBox="0.00 0.00 1140.68 1394.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1390)">
<svg width="1093pt" height="854pt"
viewBox="0.00 0.00 1092.77 854.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 850)">
<title>ResourcePacksInfoPacket</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-1390 1136.68,-1390 1136.68,4 -4,4"/>
<polygon fill="white" stroke="none" points="-4,4 -4,-850 1088.77,-850 1088.77,4 -4,4"/>
<!-- 0 -->
<!-- name: &quot;ResourcePacksInfoPacket&quot;, typeName: &quot;&quot;, id: 0, branchId: 6, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>0</title>
<ellipse fill="none" stroke="black" cx="108.95" cy="-1206" rx="108.95" ry="18"/>
<text text-anchor="middle" x="108.95" y="-1200.58" font-family="Times New Roman,serif" font-size="14.00">ResourcePacksInfoPacket</text>
<ellipse fill="none" stroke="black" cx="108.95" cy="-720" rx="108.95" ry="18"/>
<text text-anchor="middle" x="108.95" y="-714.58" font-family="Times New Roman,serif" font-size="14.00">ResourcePacksInfoPacket</text>
</g>
<!-- 1 -->
<!-- name: &quot;Resource Pack Required&quot;, typeName: &quot;&quot;, id: 1, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>1</title>
<ellipse fill="none" stroke="black" cx="626.22" cy="-1366" rx="103.46" ry="18"/>
<text text-anchor="middle" x="626.22" y="-1360.58" font-family="Times New Roman,serif" font-size="14.00">Resource Pack Required</text>
<ellipse fill="none" stroke="black" cx="357.35" cy="-821" rx="103.46" ry="18"/>
<text text-anchor="middle" x="357.35" y="-815.58" font-family="Times New Roman,serif" font-size="14.00">Resource Pack Required</text>
</g>
<!-- 0&#45;&gt;1 -->
<g id="edge1" class="edge">
<title>0&#45;&gt;1</title>
<path fill="none" stroke="black" d="M122.52,-1224.08C144.88,-1254.54 194.83,-1315.31 253.89,-1341 341.14,-1378.95 450.88,-1381.51 528.37,-1376.84"/>
<polygon fill="black" stroke="black" points="528.3,-1380.35 538.05,-1376.2 527.84,-1373.37 528.3,-1380.35"/>
<path fill="none" stroke="black" d="M148.55,-737.16C177.43,-749.87 217.96,-767.43 253.89,-782 269.16,-788.19 285.81,-794.65 301.17,-800.49"/>
<polygon fill="black" stroke="black" points="299.55,-803.62 310.14,-803.89 302.03,-797.08 299.55,-803.62"/>
</g>
<!-- 3 -->
<!-- name: &quot;Has Add&#45;on Packs&quot;, typeName: &quot;&quot;, id: 3, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>3</title>
<ellipse fill="none" stroke="black" cx="370.33" cy="-1314" rx="81.5" ry="18"/>
<text text-anchor="middle" x="370.33" y="-1308.58" font-family="Times New Roman,serif" font-size="14.00">Has Add&#45;on Packs</text>
<ellipse fill="none" stroke="black" cx="589.29" cy="-770" rx="81.5" ry="18"/>
<text text-anchor="middle" x="589.29" y="-764.58" font-family="Times New Roman,serif" font-size="14.00">Has Add&#45;on Packs</text>
</g>
<!-- 0&#45;&gt;3 -->
<g id="edge3" class="edge">
<title>0&#45;&gt;3</title>
<path fill="none" stroke="black" d="M136.15,-1223.76C164.17,-1242.02 210.47,-1270.1 253.89,-1287 266.91,-1292.07 281.14,-1296.34 295.02,-1299.89"/>
<polygon fill="black" stroke="black" points="294.03,-1303.26 304.57,-1302.23 295.69,-1296.46 294.03,-1303.26"/>
<path fill="none" stroke="black" d="M177.43,-734.34C201.47,-739 228.8,-743.79 253.89,-747 335.74,-757.45 429.51,-763.38 496.89,-766.59"/>
<polygon fill="black" stroke="black" points="496.65,-770.09 506.8,-767.05 496.97,-763.09 496.65,-770.09"/>
</g>
<!-- 5 -->
<!-- name: &quot;Has Scripts&quot;, typeName: &quot;&quot;, id: 5, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>5</title>
<ellipse fill="none" stroke="black" cx="370.33" cy="-1260" rx="54.06" ry="18"/>
<text text-anchor="middle" x="370.33" y="-1254.58" font-family="Times New Roman,serif" font-size="14.00">Has Scripts</text>
<ellipse fill="none" stroke="black" cx="357.35" cy="-720" rx="54.06" ry="18"/>
<text text-anchor="middle" x="357.35" y="-714.58" font-family="Times New Roman,serif" font-size="14.00">Has Scripts</text>
</g>
<!-- 0&#45;&gt;5 -->
<g id="edge5" class="edge">
<title>0&#45;&gt;5</title>
<path fill="none" stroke="black" d="M178.44,-1220.26C220.33,-1228.98 273.27,-1240 312.77,-1248.23"/>
<polygon fill="black" stroke="black" points="311.81,-1251.6 322.31,-1250.21 313.23,-1244.75 311.81,-1251.6"/>
<path fill="none" stroke="black" d="M218.38,-720C243.34,-720 269.12,-720 291.54,-720"/>
<polygon fill="black" stroke="black" points="291.43,-723.5 301.43,-720 291.43,-716.5 291.43,-723.5"/>
</g>
<!-- 7 -->
<!-- name: &quot;Force Server Packs Enabled&quot;, typeName: &quot;&quot;, id: 7, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Resource Packs&quot;, typeName: &quot;&quot;, id: 7, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;&quot; -->
<g id="node8" class="node">
<title>7</title>
<ellipse fill="none" stroke="black" cx="370.33" cy="-1206" rx="116.43" ry="18"/>
<text text-anchor="middle" x="370.33" y="-1200.58" font-family="Times New Roman,serif" font-size="14.00">Force Server Packs Enabled</text>
<ellipse fill="none" stroke="black" cx="357.35" cy="-666" rx="71.02" ry="18"/>
<text text-anchor="middle" x="357.35" y="-660.58" font-family="Times New Roman,serif" font-size="14.00">Resource Packs</text>
</g>
<!-- 0&#45;&gt;7 -->
<g id="edge7" class="edge">
<title>0&#45;&gt;7</title>
<path fill="none" stroke="black" d="M218.07,-1206C226.01,-1206 234.05,-1206 242.09,-1206"/>
<polygon fill="black" stroke="black" points="241.91,-1209.5 251.91,-1206 241.91,-1202.5 241.91,-1209.5"/>
</g>
<!-- 9 -->
<!-- name: &quot;Behavior Packs&quot;, typeName: &quot;&quot;, id: 9, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;&quot; -->
<g id="node10" class="node">
<title>9</title>
<ellipse fill="none" stroke="black" cx="370.33" cy="-1152" rx="68.53" ry="18"/>
<text text-anchor="middle" x="370.33" y="-1146.58" font-family="Times New Roman,serif" font-size="14.00">Behavior Packs</text>
</g>
<!-- 0&#45;&gt;9 -->
<g id="edge9" class="edge">
<title>0&#45;&gt;9</title>
<path fill="none" stroke="black" d="M178.44,-1191.74C217.51,-1183.61 266.19,-1173.47 304.61,-1165.47"/>
<polygon fill="black" stroke="black" points="305.11,-1168.94 314.19,-1163.48 303.69,-1162.09 305.11,-1168.94"/>
<path fill="none" stroke="black" d="M176.3,-705.46C212.06,-697.62 256,-687.99 291.52,-680.21"/>
<polygon fill="black" stroke="black" points="292.24,-683.63 301.26,-678.07 290.74,-676.8 292.24,-683.63"/>
</g>
<!-- 29 -->
<!-- name: &quot;Resource Packs&quot;, typeName: &quot;&quot;, id: 29, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;&quot; -->
<!-- name: &quot;CDN URLs&quot;, typeName: &quot;&quot;, id: 29, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;&quot; -->
<g id="node30" class="node">
<title>29</title>
<ellipse fill="none" stroke="black" cx="370.33" cy="-666" rx="71.02" ry="18"/>
<text text-anchor="middle" x="370.33" y="-660.58" font-family="Times New Roman,serif" font-size="14.00">Resource Packs</text>
<ellipse fill="none" stroke="black" cx="357.35" cy="-126" rx="55.06" ry="18"/>
<text text-anchor="middle" x="357.35" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">CDN URLs</text>
</g>
<!-- 0&#45;&gt;29 -->
<g id="edge29" class="edge">
<title>0&#45;&gt;29</title>
<path fill="none" stroke="black" d="M118.73,-1187.72C156.94,-1108.16 308.98,-791.64 355.64,-694.5"/>
<polygon fill="black" stroke="black" points="358.72,-696.17 359.9,-685.64 352.41,-693.13 358.72,-696.17"/>
</g>
<!-- 51 -->
<!-- name: &quot;CDN URLs&quot;, typeName: &quot;&quot;, id: 51, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;&quot; -->
<g id="node52" class="node">
<title>51</title>
<ellipse fill="none" stroke="black" cx="370.33" cy="-126" rx="55.06" ry="18"/>
<text text-anchor="middle" x="370.33" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">CDN URLs</text>
</g>
<!-- 0&#45;&gt;51 -->
<g id="edge51" class="edge">
<title>0&#45;&gt;51</title>
<path fill="none" stroke="black" d="M114.34,-1187.71C144.8,-1060.87 324.48,-312.74 362.33,-155.14"/>
<polygon fill="black" stroke="black" points="365.71,-156.05 364.64,-145.51 358.9,-154.42 365.71,-156.05"/>
<path fill="none" stroke="black" d="M117.59,-701.57C153.02,-616.17 301.32,-258.66 344.51,-154.56"/>
<polygon fill="black" stroke="black" points="347.62,-156.19 348.22,-145.61 341.15,-153.51 347.62,-156.19"/>
</g>
<!-- 2 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 2, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>2</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-1368" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-1362.58" font-family="Times New Roman,serif" font-size="14.00">bool</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-828" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-822.58" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 1&#45;&gt;2 -->
<g id="edge2" class="edge">
<title>1&#45;&gt;2</title>
<path fill="none" stroke="black" d="M729.89,-1366.47C824.85,-1366.9 960.92,-1367.52 1026.67,-1367.82"/>
<polygon fill="black" stroke="black" points="1026.57,-1371.32 1036.59,-1367.87 1026.6,-1364.32 1026.57,-1371.32"/>
<path fill="none" stroke="black" d="M460.94,-822.09C610.05,-823.67 879.69,-826.54 979.1,-827.59"/>
<polygon fill="black" stroke="black" points="978.81,-831.09 988.84,-827.7 978.88,-824.09 978.81,-831.09"/>
</g>
<!-- 4 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 4, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>4</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-1314" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-1308.58" font-family="Times New Roman,serif" font-size="14.00">bool</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-774" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-768.58" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 3&#45;&gt;4 -->
<g id="edge4" class="edge">
<title>3&#45;&gt;4</title>
<path fill="none" stroke="black" d="M452.27,-1314C602.15,-1314 917.56,-1314 1026.87,-1314"/>
<polygon fill="black" stroke="black" points="1026.77,-1317.5 1036.77,-1314 1026.77,-1310.5 1026.77,-1317.5"/>
<path fill="none" stroke="black" d="M671.1,-770.76C763.43,-771.62 910.6,-773 979.44,-773.65"/>
<polygon fill="black" stroke="black" points="979.02,-777.14 989.06,-773.74 979.09,-770.14 979.02,-777.14"/>
</g>
<!-- 6 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 6, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>6</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-1260" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-1254.58" font-family="Times New Roman,serif" font-size="14.00">bool</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-720" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-714.58" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 5&#45;&gt;6 -->
<g id="edge6" class="edge">
<title>5&#45;&gt;6</title>
<path fill="none" stroke="black" d="M424.62,-1260C559.16,-1260 910.13,-1260 1026.8,-1260"/>
<polygon fill="black" stroke="black" points="1026.78,-1263.5 1036.78,-1260 1026.78,-1256.5 1026.78,-1263.5"/>
<path fill="none" stroke="black" d="M411.71,-720C540.74,-720 867.21,-720 979,-720"/>
<polygon fill="black" stroke="black" points="978.83,-723.5 988.83,-720 978.83,-716.5 978.83,-723.5"/>
</g>
<!-- 8 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;Resource Pack Count&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>8</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-1206" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-1200.58" font-family="Times New Roman,serif" font-size="14.00">bool</text>
<ellipse fill="none" stroke="black" cx="589.29" cy="-666" rx="92.48" ry="18"/>
<text text-anchor="middle" x="589.29" y="-660.58" font-family="Times New Roman,serif" font-size="14.00">Resource Pack Count</text>
</g>
<!-- 7&#45;&gt;8 -->
<g id="edge8" class="edge">
<title>7&#45;&gt;8</title>
<path fill="none" stroke="black" d="M487.07,-1206C646.38,-1206 925.06,-1206 1026.67,-1206"/>
<polygon fill="black" stroke="black" points="1026.65,-1209.5 1036.65,-1206 1026.65,-1202.5 1026.65,-1209.5"/>
<path fill="none" stroke="black" d="M428.59,-666C446.39,-666 465.89,-666 484.96,-666"/>
<polygon fill="black" stroke="black" points="484.92,-669.5 494.92,-666 484.92,-662.5 484.92,-669.5"/>
</g>
<!-- 10 -->
<!-- name: &quot;Array Size&quot;, typeName: &quot;&quot;, id: 10, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 10, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<g id="node11" class="node">
<title>10</title>
<ellipse fill="none" stroke="black" cx="626.22" cy="-1152" rx="49.57" ry="18"/>
<text text-anchor="middle" x="626.22" y="-1146.58" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="589.29" cy="-423" rx="71.52" ry="18"/>
<text text-anchor="middle" x="589.29" y="-417.57" font-family="Times New Roman,serif" font-size="14.00">example element</text>
</g>
<!-- 9&#45;&gt;10 -->
<!-- 7&#45;&gt;10 -->
<g id="edge10" class="edge">
<title>9&#45;&gt;10</title>
<path fill="none" stroke="black" d="M439.03,-1152C478.17,-1152 526.99,-1152 564.82,-1152"/>
<polygon fill="black" stroke="black" points="564.68,-1155.5 574.68,-1152 564.68,-1148.5 564.68,-1155.5"/>
<title>7&#45;&gt;10</title>
<path fill="none" stroke="black" d="M375.26,-648.13C415.38,-605.74 516.45,-498.92 563.5,-449.21"/>
<polygon fill="black" stroke="black" points="565.99,-451.66 570.32,-441.99 560.9,-446.85 565.99,-451.66"/>
</g>
<!-- 12 -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 12, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<g id="node13" class="node">
<title>12</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="626.22" cy="-936" rx="71.52" ry="18"/>
<text text-anchor="middle" x="626.22" y="-930.58" font-family="Times New Roman,serif" font-size="14.00">example element</text>
<!-- 9 -->
<!-- name: &quot;unsigned short&quot;, typeName: &quot;&quot;, id: 9, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node10" class="node">
<title>9</title>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-666" rx="65.04" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-660.58" font-family="Times New Roman,serif" font-size="14.00">unsigned short</text>
</g>
<!-- 9&#45;&gt;12 -->
<g id="edge12" class="edge">
<title>9&#45;&gt;12</title>
<path fill="none" stroke="black" d="M391.67,-1134.69C436.52,-1096.54 544.01,-1005.09 596.03,-960.83"/>
<polygon fill="black" stroke="black" points="598.27,-963.52 603.62,-954.37 593.74,-958.19 598.27,-963.52"/>
<!-- 8&#45;&gt;9 -->
<g id="edge9" class="edge">
<title>8&#45;&gt;9</title>
<path fill="none" stroke="black" d="M682.15,-666C759.61,-666 869.15,-666 941.63,-666"/>
<polygon fill="black" stroke="black" points="941.42,-669.5 951.42,-666 941.42,-662.5 941.42,-669.5"/>
</g>
<!-- 11 -->
<!-- name: &quot;unsigned short&quot;, typeName: &quot;&quot;, id: 11, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;ID&quot;, typeName: &quot;&quot;, id: 11, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node12" class="node">
<title>11</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-1152" rx="65.04" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-1146.58" font-family="Times New Roman,serif" font-size="14.00">unsigned short</text>
<ellipse fill="none" stroke="black" cx="816.74" cy="-612" rx="27" ry="18"/>
<text text-anchor="middle" x="816.74" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">ID</text>
</g>
<!-- 10&#45;&gt;11 -->
<g id="edge11" class="edge">
<title>10&#45;&gt;11</title>
<path fill="none" stroke="black" d="M676.18,-1152C752.3,-1152 899.6,-1152 989.47,-1152"/>
<polygon fill="black" stroke="black" points="989.44,-1155.5 999.44,-1152 989.44,-1148.5 989.44,-1155.5"/>
<path fill="none" stroke="black" d="M599.48,-441.18C617.45,-474.86 660.54,-546.97 717.77,-585 735.87,-597.02 759.22,-603.73 778.59,-607.45"/>
<polygon fill="black" stroke="black" points="777.82,-610.87 788.26,-609.1 779,-603.97 777.82,-610.87"/>
</g>
<!-- 13 -->
<!-- name: &quot;ID&quot;, typeName: &quot;&quot;, id: 13, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Version&quot;, typeName: &quot;&quot;, id: 13, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node14" class="node">
<title>13</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-1098" rx="27" ry="18"/>
<text text-anchor="middle" x="864.64" y="-1092.58" font-family="Times New Roman,serif" font-size="14.00">ID</text>
<ellipse fill="none" stroke="black" cx="816.74" cy="-558" rx="39.59" ry="18"/>
<text text-anchor="middle" x="816.74" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">Version</text>
</g>
<!-- 12&#45;&gt;13 -->
<!-- 10&#45;&gt;13 -->
<g id="edge13" class="edge">
<title>12&#45;&gt;13</title>
<path fill="none" stroke="black" d="M640.46,-953.79C662.96,-982.74 711.51,-1039.93 765.68,-1071 784.31,-1081.69 807.37,-1088.32 826.44,-1092.33"/>
<polygon fill="black" stroke="black" points="825.75,-1095.76 836.23,-1094.22 827.08,-1088.89 825.75,-1095.76"/>
<title>10&#45;&gt;13</title>
<path fill="none" stroke="black" d="M606.25,-440.66C628.81,-464.57 672.37,-507.02 717.77,-531 733.36,-539.23 751.71,-545.15 768.29,-549.31"/>
<polygon fill="black" stroke="black" points="767.42,-552.7 777.95,-551.57 769.01,-545.89 767.42,-552.7"/>
</g>
<!-- 15 -->
<!-- name: &quot;Version&quot;, typeName: &quot;&quot;, id: 15, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Size&quot;, typeName: &quot;&quot;, id: 15, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node16" class="node">
<title>15</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-1044" rx="39.59" ry="18"/>
<text text-anchor="middle" x="864.64" y="-1038.58" font-family="Times New Roman,serif" font-size="14.00">Version</text>
<ellipse fill="none" stroke="black" cx="816.74" cy="-504" rx="27" ry="18"/>
<text text-anchor="middle" x="816.74" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">Size</text>
</g>
<!-- 12&#45;&gt;15 -->
<!-- 10&#45;&gt;15 -->
<g id="edge15" class="edge">
<title>12&#45;&gt;15</title>
<path fill="none" stroke="black" d="M651.71,-952.99C678.61,-971 723.59,-999.25 765.68,-1017 781.92,-1023.85 800.41,-1029.47 816.92,-1033.77"/>
<polygon fill="black" stroke="black" points="815.96,-1037.14 826.51,-1036.17 817.66,-1030.35 815.96,-1037.14"/>
<title>10&#45;&gt;15</title>
<path fill="none" stroke="black" d="M624.71,-439.04C650.09,-450.51 685.65,-465.82 717.77,-477 738.06,-484.06 761.2,-490.51 779.9,-495.33"/>
<polygon fill="black" stroke="black" points="778.88,-498.69 789.44,-497.75 780.6,-491.9 778.88,-498.69"/>
</g>
<!-- 17 -->
<!-- name: &quot;Size&quot;, typeName: &quot;&quot;, id: 17, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Content Key&quot;, typeName: &quot;&quot;, id: 17, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node18" class="node">
<title>17</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-990" rx="27" ry="18"/>
<text text-anchor="middle" x="864.64" y="-984.58" font-family="Times New Roman,serif" font-size="14.00">Size</text>
<ellipse fill="none" stroke="black" cx="816.74" cy="-450" rx="57.55" ry="18"/>
<text text-anchor="middle" x="816.74" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">Content Key</text>
</g>
<!-- 12&#45;&gt;17 -->
<!-- 10&#45;&gt;17 -->
<g id="edge17" class="edge">
<title>12&#45;&gt;17</title>
<path fill="none" stroke="black" d="M680.28,-948.12C725.16,-958.37 788.27,-972.78 827.52,-981.75"/>
<polygon fill="black" stroke="black" points="826.65,-985.14 837.17,-983.95 828.21,-978.32 826.65,-985.14"/>
<title>10&#45;&gt;17</title>
<path fill="none" stroke="black" d="M654.59,-430.7C684.83,-434.32 720.81,-438.63 751.09,-442.26"/>
<polygon fill="black" stroke="black" points="750.54,-445.72 760.89,-443.43 751.37,-438.77 750.54,-445.72"/>
</g>
<!-- 19 -->
<!-- name: &quot;Content Key&quot;, typeName: &quot;&quot;, id: 19, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Sub Pack Name&quot;, typeName: &quot;&quot;, id: 19, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node20" class="node">
<title>19</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-936" rx="57.55" ry="18"/>
<text text-anchor="middle" x="864.64" y="-930.58" font-family="Times New Roman,serif" font-size="14.00">Content Key</text>
<ellipse fill="none" stroke="black" cx="816.74" cy="-396" rx="70.52" ry="18"/>
<text text-anchor="middle" x="816.74" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">Sub Pack Name</text>
</g>
<!-- 12&#45;&gt;19 -->
<!-- 10&#45;&gt;19 -->
<g id="edge19" class="edge">
<title>12&#45;&gt;19</title>
<path fill="none" stroke="black" d="M698.15,-936C728.91,-936 764.78,-936 795.24,-936"/>
<polygon fill="black" stroke="black" points="795.12,-939.5 805.12,-936 795.12,-932.5 795.12,-939.5"/>
<title>10&#45;&gt;19</title>
<path fill="none" stroke="black" d="M654.59,-415.3C681.48,-412.08 712.89,-408.32 740.81,-404.97"/>
<polygon fill="black" stroke="black" points="741.12,-408.46 750.63,-403.8 740.28,-401.51 741.12,-408.46"/>
</g>
<!-- 21 -->
<!-- name: &quot;Sub Pack Name&quot;, typeName: &quot;&quot;, id: 21, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Content Identity&quot;, typeName: &quot;&quot;, id: 21, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node22" class="node">
<title>21</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-882" rx="70.52" ry="18"/>
<text text-anchor="middle" x="864.64" y="-876.58" font-family="Times New Roman,serif" font-size="14.00">Sub Pack Name</text>
<ellipse fill="none" stroke="black" cx="816.74" cy="-342" rx="70.52" ry="18"/>
<text text-anchor="middle" x="816.74" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">Content Identity</text>
</g>
<!-- 12&#45;&gt;21 -->
<!-- 10&#45;&gt;21 -->
<g id="edge21" class="edge">
<title>12&#45;&gt;21</title>
<path fill="none" stroke="black" d="M680.28,-923.88C715.84,-915.76 762.84,-905.02 800.36,-896.45"/>
<polygon fill="black" stroke="black" points="800.72,-899.96 809.69,-894.32 799.17,-893.14 800.72,-899.96"/>
<title>10&#45;&gt;21</title>
<path fill="none" stroke="black" d="M624.71,-406.96C650.09,-395.49 685.65,-380.18 717.77,-369 729.38,-364.96 741.93,-361.12 754.04,-357.67"/>
<polygon fill="black" stroke="black" points="754.85,-361.08 763.55,-355.02 752.98,-354.33 754.85,-361.08"/>
</g>
<!-- 23 -->
<!-- name: &quot;Content Identity&quot;, typeName: &quot;&quot;, id: 23, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Has Scripts&quot;, typeName: &quot;&quot;, id: 23, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node24" class="node">
<title>23</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-828" rx="70.52" ry="18"/>
<text text-anchor="middle" x="864.64" y="-822.58" font-family="Times New Roman,serif" font-size="14.00">Content Identity</text>
<ellipse fill="none" stroke="black" cx="816.74" cy="-288" rx="54.06" ry="18"/>
<text text-anchor="middle" x="816.74" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">Has Scripts</text>
</g>
<!-- 12&#45;&gt;23 -->
<!-- 10&#45;&gt;23 -->
<g id="edge23" class="edge">
<title>12&#45;&gt;23</title>
<path fill="none" stroke="black" d="M651.71,-919.01C678.61,-901 723.59,-872.75 765.68,-855 776.46,-850.45 788.22,-846.45 799.74,-843.02"/>
<polygon fill="black" stroke="black" points="800.56,-846.42 809.22,-840.31 798.64,-839.69 800.56,-846.42"/>
<title>10&#45;&gt;23</title>
<path fill="none" stroke="black" d="M606.25,-405.34C628.81,-381.43 672.37,-338.98 717.77,-315 730.21,-308.43 744.39,-303.34 758.03,-299.44"/>
<polygon fill="black" stroke="black" points="758.6,-302.91 767.35,-296.95 756.79,-296.15 758.6,-302.91"/>
</g>
<!-- 25 -->
<!-- name: &quot;Has Scripts&quot;, typeName: &quot;&quot;, id: 25, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Is Addon Pack&quot;, typeName: &quot;&quot;, id: 25, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;Indicates this pack is part of an Add&#45;On. Helps clients determine if the pack must be downloaded to join the server as Add&#45;On packs are required to play without issues.&quot; -->
<g id="node26" class="node">
<title>25</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-774" rx="54.06" ry="18"/>
<text text-anchor="middle" x="864.64" y="-768.58" font-family="Times New Roman,serif" font-size="14.00">Has Scripts</text>
<ellipse fill="none" stroke="black" cx="816.74" cy="-234" rx="67.03" ry="18"/>
<text text-anchor="middle" x="816.74" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">Is Addon Pack</text>
</g>
<!-- 12&#45;&gt;25 -->
<!-- 10&#45;&gt;25 -->
<g id="edge25" class="edge">
<title>12&#45;&gt;25</title>
<path fill="none" stroke="black" d="M640.46,-918.21C662.96,-889.26 711.51,-832.07 765.68,-801 777.63,-794.14 791.41,-788.95 804.79,-785.06"/>
<polygon fill="black" stroke="black" points="805.68,-788.44 814.43,-782.47 803.86,-781.68 805.68,-788.44"/>
<title>10&#45;&gt;25</title>
<path fill="none" stroke="black" d="M599.48,-404.82C617.45,-371.14 660.54,-299.03 717.77,-261 726.77,-255.02 737.07,-250.36 747.53,-246.72"/>
<polygon fill="black" stroke="black" points="748.51,-250.08 757,-243.75 746.41,-243.41 748.51,-250.08"/>
</g>
<!-- 27 -->
<!-- name: &quot;Is Addon Pack&quot;, typeName: &quot;&quot;, id: 27, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;Indicates this pack is part of an Add&#45;On. Helps clients determine if the pack must be downloaded to join the server as Add&#45;On packs are required to play without issues.&quot; -->
<!-- name: &quot;Is Ray Tracing Capable&quot;, typeName: &quot;&quot;, id: 27, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node28" class="node">
<title>27</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-720" rx="67.03" ry="18"/>
<text text-anchor="middle" x="864.64" y="-714.58" font-family="Times New Roman,serif" font-size="14.00">Is Addon Pack</text>
<ellipse fill="none" stroke="black" cx="816.74" cy="-180" rx="98.97" ry="18"/>
<text text-anchor="middle" x="816.74" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Is Ray Tracing Capable</text>
</g>
<!-- 12&#45;&gt;27 -->
<!-- 10&#45;&gt;27 -->
<g id="edge27" class="edge">
<title>12&#45;&gt;27</title>
<path fill="none" stroke="black" d="M635.38,-917.76C653.28,-879.89 699.71,-792.49 765.68,-747 774.52,-740.9 784.69,-736.18 795.06,-732.52"/>
<polygon fill="black" stroke="black" points="795.98,-735.9 804.45,-729.54 793.86,-729.23 795.98,-735.9"/>
<title>10&#45;&gt;27</title>
<path fill="none" stroke="black" d="M595.79,-404.74C609.32,-363.02 648.27,-260.2 717.77,-207 722.72,-203.21 728.17,-199.96 733.88,-197.16"/>
<polygon fill="black" stroke="black" points="735.23,-200.39 743.01,-193.2 732.45,-193.96 735.23,-200.39"/>
</g>
<!-- 12 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 12, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node13" class="node">
<title>12</title>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-612" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 11&#45;&gt;12 -->
<g id="edge12" class="edge">
<title>11&#45;&gt;12</title>
<path fill="none" stroke="black" d="M844.23,-612C877.73,-612 935.8,-612 975.34,-612"/>
<polygon fill="black" stroke="black" points="975.2,-615.5 985.2,-612 975.2,-608.5 975.2,-615.5"/>
</g>
<!-- 14 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 14, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node15" class="node">
<title>14</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-1098" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-1092.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-558" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 13&#45;&gt;14 -->
<g id="edge14" class="edge">
<title>13&#45;&gt;14</title>
<path fill="none" stroke="black" d="M892.14,-1098C925.64,-1098 983.7,-1098 1023.24,-1098"/>
<polygon fill="black" stroke="black" points="1023.1,-1101.5 1033.1,-1098 1023.1,-1094.5 1023.1,-1101.5"/>
<path fill="none" stroke="black" d="M856.68,-558C890.91,-558 940.59,-558 975.6,-558"/>
<polygon fill="black" stroke="black" points="975.36,-561.5 985.36,-558 975.36,-554.5 975.36,-561.5"/>
</g>
<!-- 16 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 16, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;unsigned int64&quot;, typeName: &quot;&quot;, id: 16, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node17" class="node">
<title>16</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-1044" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-1038.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-504" rx="64.04" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">unsigned int64</text>
</g>
<!-- 15&#45;&gt;16 -->
<g id="edge16" class="edge">
<title>15&#45;&gt;16</title>
<path fill="none" stroke="black" d="M904.58,-1044C938.81,-1044 988.5,-1044 1023.51,-1044"/>
<polygon fill="black" stroke="black" points="1023.26,-1047.5 1033.26,-1044 1023.26,-1040.5 1023.26,-1047.5"/>
<path fill="none" stroke="black" d="M844.23,-504C869.28,-504 908.05,-504 942.55,-504"/>
<polygon fill="black" stroke="black" points="942.55,-507.5 952.55,-504 942.55,-500.5 942.55,-507.5"/>
</g>
<!-- 18 -->
<!-- name: &quot;unsigned int64&quot;, typeName: &quot;&quot;, id: 18, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 18, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node19" class="node">
<title>18</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-990" rx="64.04" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-984.58" font-family="Times New Roman,serif" font-size="14.00">unsigned int64</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-450" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 17&#45;&gt;18 -->
<g id="edge18" class="edge">
<title>17&#45;&gt;18</title>
<path fill="none" stroke="black" d="M892.14,-990C917.18,-990 955.96,-990 990.46,-990"/>
<polygon fill="black" stroke="black" points="990.45,-993.5 1000.45,-990 990.45,-986.5 990.45,-993.5"/>
<path fill="none" stroke="black" d="M874.64,-450C906.73,-450 946.12,-450 975.37,-450"/>
<polygon fill="black" stroke="black" points="975.32,-453.5 985.32,-450 975.32,-446.5 975.32,-453.5"/>
</g>
<!-- 20 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 20, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node21" class="node">
<title>20</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-936" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-930.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-396" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 19&#45;&gt;20 -->
<g id="edge20" class="edge">
<title>19&#45;&gt;20</title>
<path fill="none" stroke="black" d="M922.55,-936C954.63,-936 994.02,-936 1023.27,-936"/>
<polygon fill="black" stroke="black" points="1023.22,-939.5 1033.22,-936 1023.22,-932.5 1023.22,-939.5"/>
<path fill="none" stroke="black" d="M887.52,-396C916.81,-396 949.91,-396 975.34,-396"/>
<polygon fill="black" stroke="black" points="975.28,-399.5 985.28,-396 975.28,-392.5 975.28,-399.5"/>
</g>
<!-- 22 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 22, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node23" class="node">
<title>22</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-882" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-876.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-342" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 21&#45;&gt;22 -->
<g id="edge22" class="edge">
<title>21&#45;&gt;22</title>
<path fill="none" stroke="black" d="M935.42,-882C964.71,-882 997.81,-882 1023.24,-882"/>
<polygon fill="black" stroke="black" points="1023.19,-885.5 1033.19,-882 1023.19,-878.5 1023.19,-885.5"/>
<path fill="none" stroke="black" d="M887.52,-342C916.81,-342 949.91,-342 975.34,-342"/>
<polygon fill="black" stroke="black" points="975.28,-345.5 985.28,-342 975.28,-338.5 975.28,-345.5"/>
</g>
<!-- 24 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 24, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 24, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node25" class="node">
<title>24</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-828" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-822.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-288" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 23&#45;&gt;24 -->
<g id="edge24" class="edge">
<title>23&#45;&gt;24</title>
<path fill="none" stroke="black" d="M935.42,-828C964.71,-828 997.81,-828 1023.24,-828"/>
<polygon fill="black" stroke="black" points="1023.19,-831.5 1033.19,-828 1023.19,-824.5 1023.19,-831.5"/>
<path fill="none" stroke="black" d="M871.2,-288C905.13,-288 948.24,-288 978.81,-288"/>
<polygon fill="black" stroke="black" points="978.75,-291.5 988.75,-288 978.75,-284.5 978.75,-291.5"/>
</g>
<!-- 26 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 26, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node27" class="node">
<title>26</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-774" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-768.58" font-family="Times New Roman,serif" font-size="14.00">bool</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-234" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 25&#45;&gt;26 -->
<g id="edge26" class="edge">
<title>25&#45;&gt;26</title>
<path fill="none" stroke="black" d="M919.11,-774C953.04,-774 996.15,-774 1026.71,-774"/>
<polygon fill="black" stroke="black" points="1026.66,-777.5 1036.66,-774 1026.66,-770.5 1026.66,-777.5"/>
<path fill="none" stroke="black" d="M884.17,-234C915.67,-234 952.17,-234 978.97,-234"/>
<polygon fill="black" stroke="black" points="978.67,-237.5 988.67,-234 978.67,-230.5 978.67,-237.5"/>
</g>
<!-- 28 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 28, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node29" class="node">
<title>28</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-720" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-714.58" font-family="Times New Roman,serif" font-size="14.00">bool</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-180" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 27&#45;&gt;28 -->
<g id="edge28" class="edge">
<title>27&#45;&gt;28</title>
<path fill="none" stroke="black" d="M932.07,-720C963.57,-720 1000.08,-720 1026.88,-720"/>
<polygon fill="black" stroke="black" points="1026.57,-723.5 1036.57,-720 1026.57,-716.5 1026.57,-723.5"/>
<path fill="none" stroke="black" d="M916.03,-180C938.35,-180 960.77,-180 978.82,-180"/>
<polygon fill="black" stroke="black" points="978.76,-183.5 988.76,-180 978.76,-176.5 978.76,-183.5"/>
</g>
<!-- 30 -->
<!-- name: &quot;Array Size&quot;, typeName: &quot;&quot;, id: 30, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node31" class="node">
<title>30</title>
<ellipse fill="none" stroke="black" cx="626.22" cy="-666" rx="49.57" ry="18"/>
<text text-anchor="middle" x="626.22" y="-660.58" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
<ellipse fill="none" stroke="black" cx="589.29" cy="-126" rx="49.57" ry="18"/>
<text text-anchor="middle" x="589.29" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
</g>
<!-- 29&#45;&gt;30 -->
<g id="edge30" class="edge">
<title>29&#45;&gt;30</title>
<path fill="none" stroke="black" d="M441.71,-666C480.55,-666 528.26,-666 565.3,-666"/>
<polygon fill="black" stroke="black" points="564.91,-669.5 574.91,-666 564.91,-662.5 564.91,-669.5"/>
<path fill="none" stroke="black" d="M412.85,-126C447.48,-126 492.35,-126 528.04,-126"/>
<polygon fill="black" stroke="black" points="527.77,-129.5 537.77,-126 527.77,-122.5 527.77,-129.5"/>
</g>
<!-- 32 -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 32, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<g id="node33" class="node">
<title>32</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="626.22" cy="-423" rx="71.52" ry="18"/>
<text text-anchor="middle" x="626.22" y="-417.57" font-family="Times New Roman,serif" font-size="14.00">example element</text>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="589.29" cy="-72" rx="71.52" ry="18"/>
<text text-anchor="middle" x="589.29" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">example element</text>
</g>
<!-- 29&#45;&gt;32 -->
<g id="edge32" class="edge">
<title>29&#45;&gt;32</title>
<path fill="none" stroke="black" d="M389.59,-648.52C433.85,-606.16 547.04,-497.82 598.74,-448.34"/>
<polygon fill="black" stroke="black" points="600.89,-451.13 605.69,-441.69 596.05,-446.08 600.89,-451.13"/>
<path fill="none" stroke="black" d="M402.96,-115.52C437.55,-107.4 485.95,-96.04 524.61,-86.96"/>
<polygon fill="black" stroke="black" points="525.35,-90.38 534.28,-84.68 523.75,-83.56 525.35,-90.38"/>
</g>
<!-- 31 -->
<!-- name: &quot;unsigned short&quot;, typeName: &quot;&quot;, id: 31, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 31, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node32" class="node">
<title>31</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-666" rx="65.04" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-660.58" font-family="Times New Roman,serif" font-size="14.00">unsigned short</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-126" rx="66.53" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 30&#45;&gt;31 -->
<g id="edge31" class="edge">
<title>30&#45;&gt;31</title>
<path fill="none" stroke="black" d="M676.18,-666C752.3,-666 899.6,-666 989.47,-666"/>
<polygon fill="black" stroke="black" points="989.44,-669.5 999.44,-666 989.44,-662.5 989.44,-669.5"/>
<path fill="none" stroke="black" d="M639.27,-126C712.85,-126 852.58,-126 939.98,-126"/>
<polygon fill="black" stroke="black" points="939.92,-129.5 949.92,-126 939.92,-122.5 939.92,-129.5"/>
</g>
<!-- 33 -->
<!-- name: &quot;ID&quot;, typeName: &quot;&quot;, id: 33, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;First&quot;, typeName: &quot;&quot;, id: 33, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node34" class="node">
<title>33</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-612" rx="27" ry="18"/>
<text text-anchor="middle" x="864.64" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">ID</text>
<ellipse fill="none" stroke="black" cx="816.74" cy="-72" rx="27.61" ry="18"/>
<text text-anchor="middle" x="816.74" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">First</text>
</g>
<!-- 32&#45;&gt;33 -->
<g id="edge33" class="edge">
<title>32&#45;&gt;33</title>
<path fill="none" stroke="black" d="M637.61,-441.17C657.82,-474.82 705.73,-546.89 765.68,-585 784.01,-596.65 807.37,-603.34 826.69,-607.15"/>
<polygon fill="black" stroke="black" points="825.87,-610.56 836.32,-608.85 827.08,-603.67 825.87,-610.56"/>
<path fill="none" stroke="black" d="M661.01,-72C699.48,-72 745.57,-72 777.39,-72"/>
<polygon fill="black" stroke="black" points="777.33,-75.5 787.33,-72 777.33,-68.5 777.33,-75.5"/>
</g>
<!-- 35 -->
<!-- name: &quot;Version&quot;, typeName: &quot;&quot;, id: 35, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Second&quot;, typeName: &quot;&quot;, id: 35, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node36" class="node">
<title>35</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-558" rx="39.59" ry="18"/>
<text text-anchor="middle" x="864.64" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">Version</text>
<ellipse fill="none" stroke="black" cx="816.74" cy="-18" rx="39.09" ry="18"/>
<text text-anchor="middle" x="816.74" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Second</text>
</g>
<!-- 32&#45;&gt;35 -->
<g id="edge35" class="edge">
<title>32&#45;&gt;35</title>
<path fill="none" stroke="black" d="M644.86,-440.58C669.73,-464.42 717.46,-506.77 765.68,-531 781.43,-538.92 799.81,-544.77 816.37,-548.96"/>
<polygon fill="black" stroke="black" points="815.48,-552.34 826.02,-551.25 817.1,-545.53 815.48,-552.34"/>
</g>
<!-- 37 -->
<!-- name: &quot;Size&quot;, typeName: &quot;&quot;, id: 37, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node38" class="node">
<title>37</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-504" rx="27" ry="18"/>
<text text-anchor="middle" x="864.64" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">Size</text>
</g>
<!-- 32&#45;&gt;37 -->
<g id="edge37" class="edge">
<title>32&#45;&gt;37</title>
<path fill="none" stroke="black" d="M664.16,-438.6C691.83,-450 730.78,-465.42 765.68,-477 786.06,-483.76 809.21,-490.2 827.89,-495.09"/>
<polygon fill="black" stroke="black" points="826.85,-498.44 837.41,-497.55 828.6,-491.66 826.85,-498.44"/>
</g>
<!-- 39 -->
<!-- name: &quot;Content Key&quot;, typeName: &quot;&quot;, id: 39, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node40" class="node">
<title>39</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-450" rx="57.55" ry="18"/>
<text text-anchor="middle" x="864.64" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">Content Key</text>
</g>
<!-- 32&#45;&gt;39 -->
<g id="edge39" class="edge">
<title>32&#45;&gt;39</title>
<path fill="none" stroke="black" d="M692.13,-430.41C725.27,-434.2 765.48,-438.79 798.63,-442.58"/>
<polygon fill="black" stroke="black" points="798.21,-446.05 808.54,-443.71 799,-439.09 798.21,-446.05"/>
</g>
<!-- 41 -->
<!-- name: &quot;Sub Pack Name&quot;, typeName: &quot;&quot;, id: 41, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node42" class="node">
<title>41</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-396" rx="70.52" ry="18"/>
<text text-anchor="middle" x="864.64" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">Sub Pack Name</text>
</g>
<!-- 32&#45;&gt;41 -->
<g id="edge41" class="edge">
<title>32&#45;&gt;41</title>
<path fill="none" stroke="black" d="M692.13,-415.59C721.96,-412.18 757.52,-408.12 788.5,-404.58"/>
<polygon fill="black" stroke="black" points="788.65,-408.09 798.19,-403.48 787.85,-401.13 788.65,-408.09"/>
</g>
<!-- 43 -->
<!-- name: &quot;Content Identity&quot;, typeName: &quot;&quot;, id: 43, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node44" class="node">
<title>43</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-342" rx="70.52" ry="18"/>
<text text-anchor="middle" x="864.64" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">Content Identity</text>
</g>
<!-- 32&#45;&gt;43 -->
<g id="edge43" class="edge">
<title>32&#45;&gt;43</title>
<path fill="none" stroke="black" d="M664.16,-407.4C691.83,-396 730.78,-380.58 765.68,-369 777.47,-365.09 790.19,-361.28 802.44,-357.82"/>
<polygon fill="black" stroke="black" points="803.35,-361.2 812.05,-355.16 801.48,-354.46 803.35,-361.2"/>
</g>
<!-- 45 -->
<!-- name: &quot;Has Scripts&quot;, typeName: &quot;&quot;, id: 45, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node46" class="node">
<title>45</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-288" rx="54.06" ry="18"/>
<text text-anchor="middle" x="864.64" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">Has Scripts</text>
</g>
<!-- 32&#45;&gt;45 -->
<g id="edge45" class="edge">
<title>32&#45;&gt;45</title>
<path fill="none" stroke="black" d="M644.86,-405.42C669.73,-381.58 717.46,-339.23 765.68,-315 778.24,-308.69 792.47,-303.69 806.12,-299.8"/>
<polygon fill="black" stroke="black" points="806.69,-303.27 815.44,-297.3 804.87,-296.51 806.69,-303.27"/>
</g>
<!-- 47 -->
<!-- name: &quot;Is Addon Pack&quot;, typeName: &quot;&quot;, id: 47, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;Indicates this pack is part of an Add&#45;On. Helps clients determine if the pack must be downloaded to join the server as Add&#45;On packs are required to play without issues.&quot; -->
<g id="node48" class="node">
<title>47</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-234" rx="67.03" ry="18"/>
<text text-anchor="middle" x="864.64" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">Is Addon Pack</text>
</g>
<!-- 32&#45;&gt;47 -->
<g id="edge47" class="edge">
<title>32&#45;&gt;47</title>
<path fill="none" stroke="black" d="M637.61,-404.83C657.82,-371.18 705.73,-299.11 765.68,-261 775,-255.07 785.63,-250.43 796.36,-246.8"/>
<polygon fill="black" stroke="black" points="797.11,-250.23 805.63,-243.94 795.05,-243.54 797.11,-250.23"/>
</g>
<!-- 49 -->
<!-- name: &quot;Is Ray Tracing Capable&quot;, typeName: &quot;&quot;, id: 49, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node50" class="node">
<title>49</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-180" rx="98.97" ry="18"/>
<text text-anchor="middle" x="864.64" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Is Ray Tracing Capable</text>
</g>
<!-- 32&#45;&gt;49 -->
<g id="edge49" class="edge">
<title>32&#45;&gt;49</title>
<path fill="none" stroke="black" d="M633.66,-404.73C649.35,-362.97 693.59,-260.1 765.68,-207 770.86,-203.18 776.56,-199.9 782.53,-197.08"/>
<polygon fill="black" stroke="black" points="783.51,-200.47 791.37,-193.36 780.79,-194.02 783.51,-200.47"/>
<path fill="none" stroke="black" d="M642.3,-59.54C681.07,-50.26 733.5,-37.7 770.54,-28.83"/>
<polygon fill="black" stroke="black" points="771.12,-32.29 780.03,-26.55 769.49,-25.48 771.12,-32.29"/>
</g>
<!-- 34 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 34, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node35" class="node">
<title>34</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-612" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-72" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 33&#45;&gt;34 -->
<g id="edge34" class="edge">
<title>33&#45;&gt;34</title>
<path fill="none" stroke="black" d="M892.14,-612C925.64,-612 983.7,-612 1023.24,-612"/>
<polygon fill="black" stroke="black" points="1023.1,-615.5 1033.1,-612 1023.1,-608.5 1023.1,-615.5"/>
<path fill="none" stroke="black" d="M844.65,-72C878.26,-72 936.14,-72 975.52,-72"/>
<polygon fill="black" stroke="black" points="975.34,-75.5 985.34,-72 975.34,-68.5 975.34,-75.5"/>
</g>
<!-- 36 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 36, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node37" class="node">
<title>36</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-558" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="1018.24" cy="-18" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1018.24" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 35&#45;&gt;36 -->
<g id="edge36" class="edge">
<title>35&#45;&gt;36</title>
<path fill="none" stroke="black" d="M904.58,-558C938.81,-558 988.5,-558 1023.51,-558"/>
<polygon fill="black" stroke="black" points="1023.26,-561.5 1033.26,-558 1023.26,-554.5 1023.26,-561.5"/>
</g>
<!-- 38 -->
<!-- name: &quot;unsigned int64&quot;, typeName: &quot;&quot;, id: 38, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node39" class="node">
<title>38</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-504" rx="64.04" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">unsigned int64</text>
</g>
<!-- 37&#45;&gt;38 -->
<g id="edge38" class="edge">
<title>37&#45;&gt;38</title>
<path fill="none" stroke="black" d="M892.14,-504C917.18,-504 955.96,-504 990.46,-504"/>
<polygon fill="black" stroke="black" points="990.45,-507.5 1000.45,-504 990.45,-500.5 990.45,-507.5"/>
</g>
<!-- 40 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 40, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node41" class="node">
<title>40</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-450" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 39&#45;&gt;40 -->
<g id="edge40" class="edge">
<title>39&#45;&gt;40</title>
<path fill="none" stroke="black" d="M922.55,-450C954.63,-450 994.02,-450 1023.27,-450"/>
<polygon fill="black" stroke="black" points="1023.22,-453.5 1033.22,-450 1023.22,-446.5 1023.22,-453.5"/>
</g>
<!-- 42 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 42, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node43" class="node">
<title>42</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-396" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 41&#45;&gt;42 -->
<g id="edge42" class="edge">
<title>41&#45;&gt;42</title>
<path fill="none" stroke="black" d="M935.42,-396C964.71,-396 997.81,-396 1023.24,-396"/>
<polygon fill="black" stroke="black" points="1023.19,-399.5 1033.19,-396 1023.19,-392.5 1023.19,-399.5"/>
</g>
<!-- 44 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 44, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node45" class="node">
<title>44</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-342" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 43&#45;&gt;44 -->
<g id="edge44" class="edge">
<title>43&#45;&gt;44</title>
<path fill="none" stroke="black" d="M935.42,-342C964.71,-342 997.81,-342 1023.24,-342"/>
<polygon fill="black" stroke="black" points="1023.19,-345.5 1033.19,-342 1023.19,-338.5 1023.19,-345.5"/>
</g>
<!-- 46 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 46, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node47" class="node">
<title>46</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-288" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 45&#45;&gt;46 -->
<g id="edge46" class="edge">
<title>45&#45;&gt;46</title>
<path fill="none" stroke="black" d="M919.11,-288C953.04,-288 996.15,-288 1026.71,-288"/>
<polygon fill="black" stroke="black" points="1026.66,-291.5 1036.66,-288 1026.66,-284.5 1026.66,-291.5"/>
</g>
<!-- 48 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 48, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node49" class="node">
<title>48</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-234" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 47&#45;&gt;48 -->
<g id="edge48" class="edge">
<title>47&#45;&gt;48</title>
<path fill="none" stroke="black" d="M932.07,-234C963.57,-234 1000.08,-234 1026.88,-234"/>
<polygon fill="black" stroke="black" points="1026.57,-237.5 1036.57,-234 1026.57,-230.5 1026.57,-237.5"/>
</g>
<!-- 50 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 50, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node51" class="node">
<title>50</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-180" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 49&#45;&gt;50 -->
<g id="edge50" class="edge">
<title>49&#45;&gt;50</title>
<path fill="none" stroke="black" d="M963.93,-180C986.26,-180 1008.68,-180 1026.72,-180"/>
<polygon fill="black" stroke="black" points="1026.67,-183.5 1036.67,-180 1026.67,-176.5 1026.67,-183.5"/>
</g>
<!-- 52 -->
<!-- name: &quot;Array Size&quot;, typeName: &quot;&quot;, id: 52, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node53" class="node">
<title>52</title>
<ellipse fill="none" stroke="black" cx="626.22" cy="-126" rx="49.57" ry="18"/>
<text text-anchor="middle" x="626.22" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
</g>
<!-- 51&#45;&gt;52 -->
<g id="edge52" class="edge">
<title>51&#45;&gt;52</title>
<path fill="none" stroke="black" d="M425.79,-126C466.77,-126 522.89,-126 565.17,-126"/>
<polygon fill="black" stroke="black" points="564.91,-129.5 574.91,-126 564.91,-122.5 564.91,-129.5"/>
</g>
<!-- 54 -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 54, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<g id="node55" class="node">
<title>54</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="626.22" cy="-72" rx="71.52" ry="18"/>
<text text-anchor="middle" x="626.22" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">example element</text>
</g>
<!-- 51&#45;&gt;54 -->
<g id="edge54" class="edge">
<title>51&#45;&gt;54</title>
<path fill="none" stroke="black" d="M417.3,-116.22C457.09,-107.76 515.08,-95.42 559.72,-85.93"/>
<polygon fill="black" stroke="black" points="560.23,-89.4 569.28,-83.9 558.77,-82.55 560.23,-89.4"/>
</g>
<!-- 53 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 53, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node54" class="node">
<title>53</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-126" rx="66.53" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 52&#45;&gt;53 -->
<g id="edge53" class="edge">
<title>52&#45;&gt;53</title>
<path fill="none" stroke="black" d="M676.18,-126C751.87,-126 897.94,-126 987.95,-126"/>
<polygon fill="black" stroke="black" points="987.94,-129.5 997.94,-126 987.94,-122.5 987.94,-129.5"/>
</g>
<!-- 55 -->
<!-- name: &quot;First&quot;, typeName: &quot;&quot;, id: 55, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node56" class="node">
<title>55</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-72" rx="27.61" ry="18"/>
<text text-anchor="middle" x="864.64" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">First</text>
</g>
<!-- 54&#45;&gt;55 -->
<g id="edge55" class="edge">
<title>54&#45;&gt;55</title>
<path fill="none" stroke="black" d="M698.15,-72C739.89,-72 791.03,-72 825.32,-72"/>
<polygon fill="black" stroke="black" points="825.19,-75.5 835.19,-72 825.19,-68.5 825.19,-75.5"/>
</g>
<!-- 57 -->
<!-- name: &quot;Second&quot;, typeName: &quot;&quot;, id: 57, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node58" class="node">
<title>57</title>
<ellipse fill="none" stroke="black" cx="864.64" cy="-18" rx="39.09" ry="18"/>
<text text-anchor="middle" x="864.64" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Second</text>
</g>
<!-- 54&#45;&gt;57 -->
<g id="edge57" class="edge">
<title>54&#45;&gt;57</title>
<path fill="none" stroke="black" d="M680.28,-59.88C721.66,-50.43 778.55,-37.44 817.93,-28.44"/>
<polygon fill="black" stroke="black" points="818.61,-31.88 827.58,-26.24 817.05,-25.05 818.61,-31.88"/>
</g>
<!-- 56 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 56, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node57" class="node">
<title>56</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-72" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 55&#45;&gt;56 -->
<g id="edge56" class="edge">
<title>55&#45;&gt;56</title>
<path fill="none" stroke="black" d="M892.55,-72C926.16,-72 984.05,-72 1023.43,-72"/>
<polygon fill="black" stroke="black" points="1023.24,-75.5 1033.24,-72 1023.24,-68.5 1023.24,-75.5"/>
</g>
<!-- 58 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 58, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node59" class="node">
<title>58</title>
<ellipse fill="none" stroke="black" cx="1066.14" cy="-18" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1066.14" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 57&#45;&gt;58 -->
<g id="edge58" class="edge">
<title>57&#45;&gt;58</title>
<path fill="none" stroke="black" d="M904.11,-18C938.29,-18 988.14,-18 1023.31,-18"/>
<polygon fill="black" stroke="black" points="1023.11,-21.5 1033.11,-18 1023.11,-14.5 1023.11,-21.5"/>
<path fill="none" stroke="black" d="M856.21,-18C890.39,-18 940.24,-18 975.41,-18"/>
<polygon fill="black" stroke="black" points="975.21,-21.5 985.21,-18 975.21,-14.5 975.21,-21.5"/>
</g>
</g>
</svg>

Before

(image error) Size: 41 KiB

After

(image error) Size: 26 KiB

@ -4,69 +4,95 @@
<!-- Generated by graphviz version 11.0.0 (20240428.1522)
-->
<!-- Title: TransferPacket Pages: 1 -->
<svg width="481pt" height="98pt"
viewBox="0.00 0.00 481.19 98.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 94)">
<svg width="481pt" height="152pt"
viewBox="0.00 0.00 481.19 152.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 148)">
<title>TransferPacket</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-94 477.19,-94 477.19,4 -4,4"/>
<polygon fill="white" stroke="none" points="-4,4 -4,-148 477.19,-148 477.19,4 -4,4"/>
<!-- 0 -->
<!-- name: &quot;TransferPacket&quot;, typeName: &quot;&quot;, id: 0, branchId: 85, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>0</title>
<ellipse fill="none" stroke="black" cx="67.03" cy="-45" rx="67.03" ry="18"/>
<text text-anchor="middle" x="67.03" y="-39.58" font-family="Times New Roman,serif" font-size="14.00">TransferPacket</text>
<ellipse fill="none" stroke="black" cx="67.03" cy="-72" rx="67.03" ry="18"/>
<text text-anchor="middle" x="67.03" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">TransferPacket</text>
</g>
<!-- 1 -->
<!-- name: &quot;Server Address&quot;, typeName: &quot;&quot;, id: 1, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>1</title>
<ellipse fill="none" stroke="black" cx="238.59" cy="-72" rx="68.53" ry="18"/>
<text text-anchor="middle" x="238.59" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Server Address</text>
<ellipse fill="none" stroke="black" cx="238.59" cy="-126" rx="68.53" ry="18"/>
<text text-anchor="middle" x="238.59" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Server Address</text>
</g>
<!-- 0&#45;&gt;1 -->
<g id="edge1" class="edge">
<title>0&#45;&gt;1</title>
<path fill="none" stroke="black" d="M125.44,-54.14C139.08,-56.31 153.79,-58.66 167.92,-60.91"/>
<polygon fill="black" stroke="black" points="167.17,-64.33 177.6,-62.45 168.27,-57.42 167.17,-64.33"/>
<path fill="none" stroke="black" d="M111.26,-85.77C133.11,-92.73 159.86,-101.24 183.11,-108.65"/>
<polygon fill="black" stroke="black" points="181.82,-111.91 192.41,-111.61 183.95,-105.24 181.82,-111.91"/>
</g>
<!-- 3 -->
<!-- name: &quot;Server Port&quot;, typeName: &quot;&quot;, id: 3, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node4" class="node">
<title>3</title>
<ellipse fill="none" stroke="black" cx="238.59" cy="-18" rx="53.06" ry="18"/>
<text text-anchor="middle" x="238.59" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Server Port</text>
<ellipse fill="none" stroke="black" cx="238.59" cy="-72" rx="53.06" ry="18"/>
<text text-anchor="middle" x="238.59" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">Server Port</text>
</g>
<!-- 0&#45;&gt;3 -->
<g id="edge3" class="edge">
<title>0&#45;&gt;3</title>
<path fill="none" stroke="black" d="M125.44,-35.86C142.62,-33.12 161.48,-30.12 178.75,-27.37"/>
<polygon fill="black" stroke="black" points="179.02,-30.87 188.34,-25.84 177.92,-23.96 179.02,-30.87"/>
<path fill="none" stroke="black" d="M134.56,-72C147.42,-72 160.86,-72 173.64,-72"/>
<polygon fill="black" stroke="black" points="173.63,-75.5 183.63,-72 173.63,-68.5 173.63,-75.5"/>
</g>
<!-- 5 -->
<!-- name: &quot;Reload World&quot;, typeName: &quot;&quot;, id: 5, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>5</title>
<ellipse fill="none" stroke="black" cx="238.59" cy="-18" rx="63.54" ry="18"/>
<text text-anchor="middle" x="238.59" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Reload World</text>
</g>
<!-- 0&#45;&gt;5 -->
<g id="edge5" class="edge">
<title>0&#45;&gt;5</title>
<path fill="none" stroke="black" d="M111.26,-58.23C133.45,-51.17 160.69,-42.49 184.19,-35.01"/>
<polygon fill="black" stroke="black" points="185.12,-38.38 193.59,-32.01 183,-31.71 185.12,-38.38"/>
</g>
<!-- 2 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 2, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>2</title>
<ellipse fill="none" stroke="black" cx="408.16" cy="-72" rx="31.1" ry="18"/>
<text text-anchor="middle" x="408.16" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="408.16" cy="-126" rx="31.1" ry="18"/>
<text text-anchor="middle" x="408.16" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 1&#45;&gt;2 -->
<g id="edge2" class="edge">
<title>1&#45;&gt;2</title>
<path fill="none" stroke="black" d="M307.26,-72C326.99,-72 347.95,-72 365.56,-72"/>
<polygon fill="black" stroke="black" points="365.35,-75.5 375.35,-72 365.35,-68.5 365.35,-75.5"/>
<path fill="none" stroke="black" d="M307.26,-126C326.99,-126 347.95,-126 365.56,-126"/>
<polygon fill="black" stroke="black" points="365.35,-129.5 375.35,-126 365.35,-122.5 365.35,-129.5"/>
</g>
<!-- 4 -->
<!-- name: &quot;unsigned short&quot;, typeName: &quot;&quot;, id: 4, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>4</title>
<ellipse fill="none" stroke="black" cx="408.16" cy="-18" rx="65.04" ry="18"/>
<text text-anchor="middle" x="408.16" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">unsigned short</text>
<ellipse fill="none" stroke="black" cx="408.16" cy="-72" rx="65.04" ry="18"/>
<text text-anchor="middle" x="408.16" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">unsigned short</text>
</g>
<!-- 3&#45;&gt;4 -->
<g id="edge4" class="edge">
<title>3&#45;&gt;4</title>
<path fill="none" stroke="black" d="M292.15,-18C304.55,-18 318.01,-18 331.21,-18"/>
<polygon fill="black" stroke="black" points="331.19,-21.5 341.19,-18 331.19,-14.5 331.19,-21.5"/>
<path fill="none" stroke="black" d="M292.15,-72C304.55,-72 318.01,-72 331.21,-72"/>
<polygon fill="black" stroke="black" points="331.19,-75.5 341.19,-72 331.19,-68.5 331.19,-75.5"/>
</g>
<!-- 6 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 6, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>6</title>
<ellipse fill="none" stroke="black" cx="408.16" cy="-18" rx="27.61" ry="18"/>
<text text-anchor="middle" x="408.16" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 5&#45;&gt;6 -->
<g id="edge6" class="edge">
<title>5&#45;&gt;6</title>
<path fill="none" stroke="black" d="M302.46,-18C324.87,-18 349.41,-18 369.1,-18"/>
<polygon fill="black" stroke="black" points="368.85,-21.5 378.85,-18 368.85,-14.5 368.85,-21.5"/>
</g>
</g>
</svg>

Before

(image error) Size: 3.6 KiB

After

(image error) Size: 4.9 KiB

@ -4,459 +4,511 @@
<!-- Generated by graphviz version 11.0.0 (20240428.1522)
-->
<!-- Title: UpdateAttributesPacket Pages: 1 -->
<svg width="1461pt" height="800pt"
viewBox="0.00 0.00 1460.84 800.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 796)">
<svg width="1465pt" height="908pt"
viewBox="0.00 0.00 1464.84 908.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 904)">
<title>UpdateAttributesPacket</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-796 1456.84,-796 1456.84,4 -4,4"/>
<polygon fill="white" stroke="none" points="-4,4 -4,-904 1460.84,-904 1460.84,4 -4,4"/>
<!-- 0 -->
<!-- name: &quot;UpdateAttributesPacket&quot;, typeName: &quot;&quot;, id: 0, branchId: 29, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>0</title>
<ellipse fill="none" stroke="black" cx="98.97" cy="-588" rx="98.97" ry="18"/>
<text text-anchor="middle" x="98.97" y="-582.58" font-family="Times New Roman,serif" font-size="14.00">UpdateAttributesPacket</text>
<ellipse fill="none" stroke="black" cx="98.97" cy="-652" rx="98.97" ry="18"/>
<text text-anchor="middle" x="98.97" y="-646.58" font-family="Times New Roman,serif" font-size="14.00">UpdateAttributesPacket</text>
</g>
<!-- 1 -->
<!-- name: &quot;Target Runtime ID&quot;, typeName: &quot;ActorRuntimeID&quot;, id: 1, branchId: 0, recurseId: &#45;1, attributes: 256, notes: &quot;&quot; -->
<g id="node2" class="node">
<title>1</title>
<ellipse fill="none" stroke="black" cx="655.66" cy="-761" rx="80.01" ry="18"/>
<text text-anchor="middle" x="655.66" y="-755.58" font-family="Times New Roman,serif" font-size="14.00">Target Runtime ID</text>
<ellipse fill="none" stroke="black" cx="655.66" cy="-868" rx="80.01" ry="18"/>
<text text-anchor="middle" x="655.66" y="-862.58" font-family="Times New Roman,serif" font-size="14.00">Target Runtime ID</text>
</g>
<!-- 0&#45;&gt;1 -->
<g id="edge1" class="edge">
<title>0&#45;&gt;1</title>
<path fill="none" stroke="black" d="M150.17,-603.66C253.04,-635.74 487.27,-708.8 596.53,-742.87"/>
<polygon fill="black" stroke="black" points="595.3,-746.15 605.89,-745.79 597.38,-739.47 595.3,-746.15"/>
<path fill="none" stroke="black" d="M142.57,-668.59C243.13,-707.75 494.92,-805.8 603.5,-848.08"/>
<polygon fill="black" stroke="black" points="602.17,-851.32 612.76,-851.68 604.71,-844.79 602.17,-851.32"/>
</g>
<!-- 3 -->
<!-- name: &quot;Attribute List&quot;, typeName: &quot;&quot;, id: 3, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;AttributeData &#45; Helper Struct&quot; -->
<g id="node4" class="node">
<title>3</title>
<ellipse fill="none" stroke="black" cx="386.79" cy="-588" rx="59.55" ry="18"/>
<text text-anchor="middle" x="386.79" y="-582.58" font-family="Times New Roman,serif" font-size="14.00">Attribute List</text>
<ellipse fill="none" stroke="black" cx="386.79" cy="-652" rx="59.55" ry="18"/>
<text text-anchor="middle" x="386.79" y="-646.58" font-family="Times New Roman,serif" font-size="14.00">Attribute List</text>
</g>
<!-- 0&#45;&gt;3 -->
<g id="edge3" class="edge">
<title>0&#45;&gt;3</title>
<path fill="none" stroke="black" d="M198.33,-588C236.95,-588 280.38,-588 315.71,-588"/>
<polygon fill="black" stroke="black" points="315.37,-591.5 325.37,-588 315.37,-584.5 315.37,-591.5"/>
<path fill="none" stroke="black" d="M198.33,-652C236.95,-652 280.38,-652 315.71,-652"/>
<polygon fill="black" stroke="black" points="315.37,-655.5 325.37,-652 315.37,-648.5 315.37,-655.5"/>
</g>
<!-- 33 -->
<!-- name: &quot;Count of ticks since simulation started&quot;, typeName: &quot;&quot;, id: 33, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node34" class="node">
<title>33</title>
<ellipse fill="none" stroke="black" cx="386.79" cy="-291" rx="152.86" ry="18"/>
<text text-anchor="middle" x="386.79" y="-285.57" font-family="Times New Roman,serif" font-size="14.00">Count of ticks since simulation started</text>
<!-- 37 -->
<!-- name: &quot;Count of ticks since simulation started&quot;, typeName: &quot;&quot;, id: 37, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node38" class="node">
<title>37</title>
<ellipse fill="none" stroke="black" cx="386.79" cy="-328" rx="152.86" ry="18"/>
<text text-anchor="middle" x="386.79" y="-322.57" font-family="Times New Roman,serif" font-size="14.00">Count of ticks since simulation started</text>
</g>
<!-- 0&#45;&gt;33 -->
<g id="edge33" class="edge">
<title>0&#45;&gt;33</title>
<path fill="none" stroke="black" d="M117.42,-569.87C166.05,-519.33 303.3,-376.72 360.39,-317.4"/>
<polygon fill="black" stroke="black" points="362.75,-319.99 367.16,-310.36 357.7,-315.14 362.75,-319.99"/>
<!-- 0&#45;&gt;37 -->
<g id="edge37" class="edge">
<title>0&#45;&gt;37</title>
<path fill="none" stroke="black" d="M115.74,-634.12C163.36,-580.14 305.83,-418.64 362.33,-354.59"/>
<polygon fill="black" stroke="black" points="364.72,-357.17 368.71,-347.36 359.47,-352.54 364.72,-357.17"/>
</g>
<!-- 2 -->
<!-- name: &quot;ActorRuntimeID&quot;, typeName: &quot;&quot;, id: 2, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>2</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-774" rx="72.52" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-768.58" font-family="Times New Roman,serif" font-size="14.00">ActorRuntimeID</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-882" rx="72.52" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-876.58" font-family="Times New Roman,serif" font-size="14.00">ActorRuntimeID</text>
</g>
<!-- 1&#45;&gt;2 -->
<g id="edge2" class="edge">
<title>1&#45;&gt;2</title>
<path fill="none" stroke="black" d="M735.73,-762.43C872.82,-764.9 1153.32,-769.97 1293.19,-772.5"/>
<polygon fill="black" stroke="black" points="1293.07,-776 1303.13,-772.68 1293.2,-769 1293.07,-776"/>
<path fill="none" stroke="black" d="M735.83,-869.53C873.84,-872.2 1157.13,-877.68 1297.59,-880.4"/>
<polygon fill="black" stroke="black" points="1297.11,-883.89 1307.17,-880.58 1297.24,-876.89 1297.11,-883.89"/>
</g>
<!-- 4 -->
<!-- name: &quot;Array Size&quot;, typeName: &quot;&quot;, id: 4, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node5" class="node">
<title>4</title>
<ellipse fill="none" stroke="black" cx="1034.21" cy="-716" rx="49.57" ry="18"/>
<text text-anchor="middle" x="1034.21" y="-710.58" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
<ellipse fill="none" stroke="black" cx="1038.2" cy="-824" rx="49.57" ry="18"/>
<text text-anchor="middle" x="1038.2" y="-818.58" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
</g>
<!-- 3&#45;&gt;4 -->
<g id="edge4" class="edge">
<title>3&#45;&gt;4</title>
<path fill="none" stroke="black" d="M437.37,-597.83C556.01,-621.36 855.6,-680.78 978.9,-705.23"/>
<polygon fill="black" stroke="black" points="977.95,-708.61 988.44,-707.12 979.31,-701.74 977.95,-708.61"/>
<path fill="none" stroke="black" d="M432.69,-663.89C549.62,-694.86 863.04,-777.87 986.36,-810.53"/>
<polygon fill="black" stroke="black" points="985.31,-813.88 995.88,-813.06 987.11,-807.11 985.31,-813.88"/>
</g>
<!-- 6 -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 6, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<g id="node7" class="node">
<title>6</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="655.66" cy="-558" rx="71.52" ry="18"/>
<text text-anchor="middle" x="655.66" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">example element</text>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="655.66" cy="-612" rx="71.52" ry="18"/>
<text text-anchor="middle" x="655.66" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">example element</text>
</g>
<!-- 3&#45;&gt;6 -->
<g id="edge6" class="edge">
<title>3&#45;&gt;6</title>
<path fill="none" stroke="black" d="M443.09,-581.78C482.19,-577.39 535.11,-571.44 578.24,-566.59"/>
<polygon fill="black" stroke="black" points="578.5,-570.08 588.05,-565.49 577.72,-563.13 578.5,-570.08"/>
<path fill="none" stroke="black" d="M440.84,-644.05C481.25,-637.99 537.34,-629.58 581.94,-622.9"/>
<polygon fill="black" stroke="black" points="582.44,-626.36 591.81,-621.42 581.4,-619.44 582.44,-626.36"/>
</g>
<!-- 5 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 5, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node6" class="node">
<title>5</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-720" rx="66.53" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-714.58" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-828" rx="66.53" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-822.58" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 4&#45;&gt;5 -->
<g id="edge5" class="edge">
<title>4&#45;&gt;5</title>
<path fill="none" stroke="black" d="M1084.08,-716.57C1140.33,-717.23 1233.43,-718.32 1299.42,-719.1"/>
<polygon fill="black" stroke="black" points="1299.03,-722.59 1309.07,-719.21 1299.11,-715.59 1299.03,-722.59"/>
<path fill="none" stroke="black" d="M1088.07,-824.57C1144.32,-825.23 1237.42,-826.32 1303.41,-827.1"/>
<polygon fill="black" stroke="black" points="1303.02,-830.59 1313.06,-827.21 1303.11,-823.59 1303.02,-830.59"/>
</g>
<!-- 7 -->
<!-- name: &quot;Min Value&quot;, typeName: &quot;&quot;, id: 7, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node8" class="node">
<title>7</title>
<ellipse fill="none" stroke="black" cx="1034.21" cy="-661" rx="48.57" ry="18"/>
<text text-anchor="middle" x="1034.21" y="-655.58" font-family="Times New Roman,serif" font-size="14.00">Min Value</text>
<ellipse fill="none" stroke="black" cx="1038.2" cy="-770" rx="48.57" ry="18"/>
<text text-anchor="middle" x="1038.2" y="-764.58" font-family="Times New Roman,serif" font-size="14.00">Min Value</text>
</g>
<!-- 6&#45;&gt;7 -->
<g id="edge7" class="edge">
<title>6&#45;&gt;7</title>
<path fill="none" stroke="black" d="M690.51,-574.11C713.09,-584.36 743.67,-597.3 771.66,-606 841.22,-627.62 923.82,-643.4 977.31,-652.38"/>
<polygon fill="black" stroke="black" points="976.67,-655.82 987.1,-654 977.81,-648.92 976.67,-655.82"/>
<path fill="none" stroke="black" d="M677.42,-629.55C699.51,-647.46 736.13,-674.98 771.66,-692 841.25,-725.33 928.01,-747.54 983.03,-759.46"/>
<polygon fill="black" stroke="black" points="982.28,-762.88 992.79,-761.54 983.73,-756.03 982.28,-762.88"/>
</g>
<!-- 9 -->
<!-- name: &quot;Max Value&quot;, typeName: &quot;&quot;, id: 9, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node10" class="node">
<title>9</title>
<ellipse fill="none" stroke="black" cx="1034.21" cy="-605" rx="50.56" ry="18"/>
<text text-anchor="middle" x="1034.21" y="-599.58" font-family="Times New Roman,serif" font-size="14.00">Max Value</text>
<ellipse fill="none" stroke="black" cx="1038.2" cy="-715" rx="50.56" ry="18"/>
<text text-anchor="middle" x="1038.2" y="-709.58" font-family="Times New Roman,serif" font-size="14.00">Max Value</text>
</g>
<!-- 6&#45;&gt;9 -->
<g id="edge9" class="edge">
<title>6&#45;&gt;9</title>
<path fill="none" stroke="black" d="M705.58,-571.24C725.89,-576.28 749.77,-581.61 771.66,-585 840.01,-595.57 919.3,-600.64 972.5,-603.01"/>
<polygon fill="black" stroke="black" points="972.13,-606.5 982.27,-603.43 972.43,-599.5 972.13,-606.5"/>
<path fill="none" stroke="black" d="M690.5,-628.14C713.08,-638.4 743.66,-651.34 771.66,-660 842,-681.74 925.49,-697.45 979.81,-706.37"/>
<polygon fill="black" stroke="black" points="979.02,-709.79 989.46,-707.93 980.14,-702.88 979.02,-709.79"/>
</g>
<!-- 11 -->
<!-- name: &quot;Current Value&quot;, typeName: &quot;&quot;, id: 11, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node12" class="node">
<title>11</title>
<ellipse fill="none" stroke="black" cx="849.17" cy="-558" rx="62.04" ry="18"/>
<text text-anchor="middle" x="849.17" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">Current Value</text>
<ellipse fill="none" stroke="black" cx="1038.2" cy="-659" rx="62.04" ry="18"/>
<text text-anchor="middle" x="1038.2" y="-653.58" font-family="Times New Roman,serif" font-size="14.00">Current Value</text>
</g>
<!-- 6&#45;&gt;11 -->
<g id="edge11" class="edge">
<title>6&#45;&gt;11</title>
<path fill="none" stroke="black" d="M727.43,-558C743.12,-558 759.77,-558 775.54,-558"/>
<polygon fill="black" stroke="black" points="775.32,-561.5 785.32,-558 775.32,-554.5 775.32,-561.5"/>
<path fill="none" stroke="black" d="M705.58,-625.26C725.88,-630.29 749.77,-635.63 771.66,-639 836.58,-649 911.23,-654.06 964.81,-656.59"/>
<polygon fill="black" stroke="black" points="964.59,-660.08 974.74,-657.03 964.91,-653.09 964.59,-660.08"/>
</g>
<!-- 13 -->
<!-- name: &quot;Default Value&quot;, typeName: &quot;&quot;, id: 13, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Default Min Value&quot;, typeName: &quot;&quot;, id: 13, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node14" class="node">
<title>13</title>
<ellipse fill="none" stroke="black" cx="849.17" cy="-504" rx="60.54" ry="18"/>
<text text-anchor="middle" x="849.17" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">Default Value</text>
<ellipse fill="none" stroke="black" cx="851.17" cy="-612" rx="77.51" ry="18"/>
<text text-anchor="middle" x="851.17" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">Default Min Value</text>
</g>
<!-- 6&#45;&gt;13 -->
<g id="edge13" class="edge">
<title>6&#45;&gt;13</title>
<path fill="none" stroke="black" d="M704.49,-544.51C731.49,-536.9 765.33,-527.36 793.39,-519.45"/>
<polygon fill="black" stroke="black" points="794.09,-522.89 802.77,-516.8 792.19,-516.15 794.09,-522.89"/>
<path fill="none" stroke="black" d="M727.62,-612C738.78,-612 750.44,-612 761.94,-612"/>
<polygon fill="black" stroke="black" points="761.84,-615.5 771.84,-612 761.84,-608.5 761.84,-615.5"/>
</g>
<!-- 15 -->
<!-- name: &quot;Attribute Name&quot;, typeName: &quot;&quot;, id: 15, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;Default Max Value&quot;, typeName: &quot;&quot;, id: 15, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node16" class="node">
<title>15</title>
<ellipse fill="none" stroke="black" cx="849.17" cy="-450" rx="67.03" ry="18"/>
<text text-anchor="middle" x="849.17" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">Attribute Name</text>
<ellipse fill="none" stroke="black" cx="851.17" cy="-558" rx="79.51" ry="18"/>
<text text-anchor="middle" x="851.17" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">Default Max Value</text>
</g>
<!-- 6&#45;&gt;15 -->
<g id="edge15" class="edge">
<title>6&#45;&gt;15</title>
<path fill="none" stroke="black" d="M677.57,-540.6C699.79,-522.76 736.51,-495.14 771.66,-477 778.39,-473.53 785.67,-470.32 792.96,-467.43"/>
<polygon fill="black" stroke="black" points="794.07,-470.75 802.19,-463.94 791.6,-464.2 794.07,-470.75"/>
<path fill="none" stroke="black" d="M704.49,-598.65C729.97,-591.54 761.59,-582.72 788.85,-575.11"/>
<polygon fill="black" stroke="black" points="789.7,-578.51 798.39,-572.45 787.82,-571.77 789.7,-578.51"/>
</g>
<!-- 17 -->
<!-- name: &quot;Attribute Modifier&quot;, typeName: &quot;&quot;, id: 17, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;&quot; -->
<!-- name: &quot;Default Value&quot;, typeName: &quot;&quot;, id: 17, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node18" class="node">
<title>17</title>
<ellipse fill="none" stroke="black" cx="849.17" cy="-396" rx="77.51" ry="18"/>
<text text-anchor="middle" x="849.17" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">Attribute Modifier</text>
<ellipse fill="none" stroke="black" cx="851.17" cy="-504" rx="60.54" ry="18"/>
<text text-anchor="middle" x="851.17" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">Default Value</text>
</g>
<!-- 6&#45;&gt;17 -->
<g id="edge17" class="edge">
<title>6&#45;&gt;17</title>
<path fill="none" stroke="black" d="M667.46,-540.05C685.57,-511.4 724.72,-455.27 771.66,-423 776.4,-419.74 781.58,-416.84 786.93,-414.25"/>
<polygon fill="black" stroke="black" points="788.22,-417.51 795.97,-410.29 785.41,-411.1 788.22,-417.51"/>
<path fill="none" stroke="black" d="M677.54,-594.54C699.74,-576.66 736.44,-549 771.66,-531 779.25,-527.12 787.52,-523.6 795.75,-520.47"/>
<polygon fill="black" stroke="black" points="796.85,-523.79 805.06,-517.1 794.47,-517.21 796.85,-523.79"/>
</g>
<!-- 19 -->
<!-- name: &quot;Attribute Name&quot;, typeName: &quot;&quot;, id: 19, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node20" class="node">
<title>19</title>
<ellipse fill="none" stroke="black" cx="851.17" cy="-450" rx="67.03" ry="18"/>
<text text-anchor="middle" x="851.17" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">Attribute Name</text>
</g>
<!-- 6&#45;&gt;19 -->
<g id="edge19" class="edge">
<title>6&#45;&gt;19</title>
<path fill="none" stroke="black" d="M667.43,-594.01C685.5,-565.29 724.6,-509.08 771.66,-477 777.53,-473 784.04,-469.55 790.73,-466.57"/>
<polygon fill="black" stroke="black" points="791.97,-469.84 799.92,-462.84 789.34,-463.36 791.97,-469.84"/>
</g>
<!-- 21 -->
<!-- name: &quot;Attribute Modifier&quot;, typeName: &quot;&quot;, id: 21, branchId: 0, recurseId: &#45;1, attributes: 8, notes: &quot;&quot; -->
<g id="node22" class="node">
<title>21</title>
<ellipse fill="none" stroke="black" cx="851.17" cy="-396" rx="77.51" ry="18"/>
<text text-anchor="middle" x="851.17" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">Attribute Modifier</text>
</g>
<!-- 6&#45;&gt;21 -->
<g id="edge21" class="edge">
<title>6&#45;&gt;21</title>
<path fill="none" stroke="black" d="M662.88,-593.79C676.57,-556.35 712.87,-470.32 771.66,-423 776.04,-419.48 780.91,-416.4 786.01,-413.71"/>
<polygon fill="black" stroke="black" points="787.11,-417.07 794.69,-409.66 784.14,-410.72 787.11,-417.07"/>
</g>
<!-- 8 -->
<!-- name: &quot;float&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node9" class="node">
<title>8</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-666" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-660.58" font-family="Times New Roman,serif" font-size="14.00">float</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-774" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-768.58" font-family="Times New Roman,serif" font-size="14.00">float</text>
</g>
<!-- 7&#45;&gt;8 -->
<g id="edge8" class="edge">
<title>7&#45;&gt;8</title>
<path fill="none" stroke="black" d="M1083,-661.7C1151.56,-662.71 1276.42,-664.54 1338.78,-665.45"/>
<polygon fill="black" stroke="black" points="1338.47,-668.95 1348.52,-665.59 1338.57,-661.95 1338.47,-668.95"/>
<path fill="none" stroke="black" d="M1086.99,-770.56C1155.55,-771.36 1280.41,-772.83 1342.78,-773.56"/>
<polygon fill="black" stroke="black" points="1342.47,-777.06 1352.51,-773.67 1342.55,-770.06 1342.47,-777.06"/>
</g>
<!-- 10 -->
<!-- name: &quot;float&quot;, typeName: &quot;&quot;, id: 10, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node11" class="node">
<title>10</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-612" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">float</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-720" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-714.58" font-family="Times New Roman,serif" font-size="14.00">float</text>
</g>
<!-- 9&#45;&gt;10 -->
<g id="edge10" class="edge">
<title>9&#45;&gt;10</title>
<path fill="none" stroke="black" d="M1085.18,-606.03C1154.2,-607.44 1277.16,-609.96 1338.85,-611.23"/>
<polygon fill="black" stroke="black" points="1338.4,-614.72 1348.47,-611.43 1338.54,-607.72 1338.4,-614.72"/>
<path fill="none" stroke="black" d="M1089.17,-715.73C1158.19,-716.74 1281.15,-718.55 1342.84,-719.45"/>
<polygon fill="black" stroke="black" points="1342.41,-722.94 1352.46,-719.59 1342.51,-715.95 1342.41,-722.94"/>
</g>
<!-- 12 -->
<!-- name: &quot;float&quot;, typeName: &quot;&quot;, id: 12, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node13" class="node">
<title>12</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-558" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">float</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-666" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-660.58" font-family="Times New Roman,serif" font-size="14.00">float</text>
</g>
<!-- 11&#45;&gt;12 -->
<g id="edge12" class="edge">
<title>11&#45;&gt;12</title>
<path fill="none" stroke="black" d="M911.56,-558C1021.43,-558 1248.6,-558 1338.5,-558"/>
<polygon fill="black" stroke="black" points="1338.25,-561.5 1348.25,-558 1338.25,-554.5 1338.25,-561.5"/>
<path fill="none" stroke="black" d="M1100.58,-660.26C1170.93,-661.7 1284.02,-664.02 1342.53,-665.22"/>
<polygon fill="black" stroke="black" points="1342.23,-668.72 1352.3,-665.43 1342.38,-661.72 1342.23,-668.72"/>
</g>
<!-- 14 -->
<!-- name: &quot;float&quot;, typeName: &quot;&quot;, id: 14, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node15" class="node">
<title>14</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-504" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">float</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-612" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-606.58" font-family="Times New Roman,serif" font-size="14.00">float</text>
</g>
<!-- 13&#45;&gt;14 -->
<g id="edge14" class="edge">
<title>13&#45;&gt;14</title>
<path fill="none" stroke="black" d="M910.02,-504C1019.31,-504 1248.27,-504 1338.56,-504"/>
<polygon fill="black" stroke="black" points="1338.35,-507.5 1348.35,-504 1338.35,-500.5 1338.35,-507.5"/>
<path fill="none" stroke="black" d="M928.97,-612C1043.87,-612 1256.22,-612 1342.45,-612"/>
<polygon fill="black" stroke="black" points="1342.24,-615.5 1352.24,-612 1342.24,-608.5 1342.24,-615.5"/>
</g>
<!-- 16 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 16, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;float&quot;, typeName: &quot;&quot;, id: 16, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node17" class="node">
<title>16</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-450" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-558" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-552.58" font-family="Times New Roman,serif" font-size="14.00">float</text>
</g>
<!-- 15&#45;&gt;16 -->
<g id="edge16" class="edge">
<title>15&#45;&gt;16</title>
<path fill="none" stroke="black" d="M916.55,-450C1026.53,-450 1243.48,-450 1334.54,-450"/>
<polygon fill="black" stroke="black" points="1334.51,-453.5 1344.51,-450 1334.51,-446.5 1334.51,-453.5"/>
<path fill="none" stroke="black" d="M930.95,-558C1046.32,-558 1256.81,-558 1342.5,-558"/>
<polygon fill="black" stroke="black" points="1342.47,-561.5 1352.47,-558 1342.47,-554.5 1342.47,-561.5"/>
</g>
<!-- 18 -->
<!-- name: &quot;Array Size&quot;, typeName: &quot;&quot;, id: 18, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- name: &quot;float&quot;, typeName: &quot;&quot;, id: 18, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node19" class="node">
<title>18</title>
<ellipse fill="none" stroke="black" cx="1034.21" cy="-396" rx="49.57" ry="18"/>
<text text-anchor="middle" x="1034.21" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-504" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-498.57" font-family="Times New Roman,serif" font-size="14.00">float</text>
</g>
<!-- 17&#45;&gt;18 -->
<g id="edge18" class="edge">
<title>17&#45;&gt;18</title>
<path fill="none" stroke="black" d="M927,-396C942.29,-396 958.13,-396 972.77,-396"/>
<polygon fill="black" stroke="black" points="972.71,-399.5 982.71,-396 972.71,-392.5 972.71,-399.5"/>
<path fill="none" stroke="black" d="M911.99,-504C1021.58,-504 1251.63,-504 1342.36,-504"/>
<polygon fill="black" stroke="black" points="1342.21,-507.5 1352.21,-504 1342.21,-500.5 1342.21,-507.5"/>
</g>
<!-- 20 -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 20, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 20, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node21" class="node">
<title>20</title>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="1034.21" cy="-234" rx="71.52" ry="18"/>
<text text-anchor="middle" x="1034.21" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">example element</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-450" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-444.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 17&#45;&gt;20 -->
<!-- 19&#45;&gt;20 -->
<g id="edge20" class="edge">
<title>17&#45;&gt;20</title>
<path fill="none" stroke="black" d="M870.11,-378.35C902.71,-349.51 967.51,-292.15 1004.87,-259.08"/>
<polygon fill="black" stroke="black" points="1006.99,-261.88 1012.16,-252.63 1002.36,-256.63 1006.99,-261.88"/>
</g>
<!-- 19 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 19, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node20" class="node">
<title>19</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-396" rx="66.53" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 18&#45;&gt;19 -->
<g id="edge19" class="edge">
<title>18&#45;&gt;19</title>
<path fill="none" stroke="black" d="M1084.08,-396C1140.33,-396 1233.43,-396 1299.42,-396"/>
<polygon fill="black" stroke="black" points="1299.07,-399.5 1309.07,-396 1299.07,-392.5 1299.07,-399.5"/>
</g>
<!-- 21 -->
<!-- name: &quot;ID&quot;, typeName: &quot;&quot;, id: 21, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node22" class="node">
<title>21</title>
<ellipse fill="none" stroke="black" cx="1203.77" cy="-342" rx="27" ry="18"/>
<text text-anchor="middle" x="1203.77" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">ID</text>
</g>
<!-- 20&#45;&gt;21 -->
<g id="edge21" class="edge">
<title>20&#45;&gt;21</title>
<path fill="none" stroke="black" d="M1055.41,-251.66C1076.11,-269.19 1109.72,-296.1 1141.73,-315 1150.41,-320.12 1160.24,-324.88 1169.43,-328.93"/>
<polygon fill="black" stroke="black" points="1167.86,-332.07 1178.43,-332.75 1170.59,-325.62 1167.86,-332.07"/>
</g>
<!-- 23 -->
<!-- name: &quot;Name&quot;, typeName: &quot;&quot;, id: 23, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node24" class="node">
<title>23</title>
<ellipse fill="none" stroke="black" cx="1203.77" cy="-288" rx="32.1" ry="18"/>
<text text-anchor="middle" x="1203.77" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">Name</text>
</g>
<!-- 20&#45;&gt;23 -->
<g id="edge23" class="edge">
<title>20&#45;&gt;23</title>
<path fill="none" stroke="black" d="M1079.67,-248.33C1106.19,-256.88 1139.51,-267.61 1164.79,-275.76"/>
<polygon fill="black" stroke="black" points="1163.41,-278.99 1174,-278.73 1165.56,-272.33 1163.41,-278.99"/>
</g>
<!-- 25 -->
<!-- name: &quot;Amount&quot;, typeName: &quot;&quot;, id: 25, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node26" class="node">
<title>25</title>
<ellipse fill="none" stroke="black" cx="1203.77" cy="-234" rx="40.58" ry="18"/>
<text text-anchor="middle" x="1203.77" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">Amount</text>
</g>
<!-- 20&#45;&gt;25 -->
<g id="edge25" class="edge">
<title>20&#45;&gt;25</title>
<path fill="none" stroke="black" d="M1105.79,-234C1121.17,-234 1137.17,-234 1151.62,-234"/>
<polygon fill="black" stroke="black" points="1151.33,-237.5 1161.33,-234 1151.33,-230.5 1151.33,-237.5"/>
</g>
<!-- 27 -->
<!-- name: &quot;Operation&quot;, typeName: &quot;&quot;, id: 27, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node28" class="node">
<title>27</title>
<ellipse fill="none" stroke="black" cx="1203.77" cy="-180" rx="47.57" ry="18"/>
<text text-anchor="middle" x="1203.77" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Operation</text>
</g>
<!-- 20&#45;&gt;27 -->
<g id="edge27" class="edge">
<title>20&#45;&gt;27</title>
<path fill="none" stroke="black" d="M1079.67,-219.67C1103.11,-212.12 1131.85,-202.85 1155.67,-195.18"/>
<polygon fill="black" stroke="black" points="1156.69,-198.53 1165.13,-192.13 1154.54,-191.87 1156.69,-198.53"/>
</g>
<!-- 29 -->
<!-- name: &quot;Operand&quot;, typeName: &quot;&quot;, id: 29, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node30" class="node">
<title>29</title>
<ellipse fill="none" stroke="black" cx="1203.77" cy="-126" rx="43.08" ry="18"/>
<text text-anchor="middle" x="1203.77" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Operand</text>
</g>
<!-- 20&#45;&gt;29 -->
<g id="edge29" class="edge">
<title>20&#45;&gt;29</title>
<path fill="none" stroke="black" d="M1055.41,-216.34C1076.11,-198.81 1109.72,-171.9 1141.73,-153 1147.82,-149.4 1154.48,-145.99 1161.08,-142.87"/>
<polygon fill="black" stroke="black" points="1162.28,-146.17 1169.95,-138.86 1159.4,-139.79 1162.28,-146.17"/>
</g>
<!-- 31 -->
<!-- name: &quot;isSerializable?&quot;, typeName: &quot;&quot;, id: 31, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node32" class="node">
<title>31</title>
<ellipse fill="none" stroke="black" cx="1203.77" cy="-72" rx="62.04" ry="18"/>
<text text-anchor="middle" x="1203.77" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">isSerializable?</text>
</g>
<!-- 20&#45;&gt;31 -->
<g id="edge31" class="edge">
<title>20&#45;&gt;31</title>
<path fill="none" stroke="black" d="M1045.45,-215.96C1062.28,-187.68 1098.32,-132.66 1141.73,-99 1145.39,-96.16 1149.39,-93.56 1153.54,-91.17"/>
<polygon fill="black" stroke="black" points="1154.81,-94.46 1162.06,-86.72 1151.57,-88.25 1154.81,-94.46"/>
<title>19&#45;&gt;20</title>
<path fill="none" stroke="black" d="M918.53,-450C1028.94,-450 1247.26,-450 1338.6,-450"/>
<polygon fill="black" stroke="black" points="1338.35,-453.5 1348.35,-450 1338.35,-446.5 1338.35,-453.5"/>
</g>
<!-- 22 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 22, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;Array Size&quot;, typeName: &quot;&quot;, id: 22, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node23" class="node">
<title>22</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-342" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" cx="1038.2" cy="-396" rx="49.57" ry="18"/>
<text text-anchor="middle" x="1038.2" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">Array Size</text>
</g>
<!-- 21&#45;&gt;22 -->
<g id="edge22" class="edge">
<title>21&#45;&gt;22</title>
<path fill="none" stroke="black" d="M1231.2,-342C1258.74,-342 1302.29,-342 1334.51,-342"/>
<polygon fill="black" stroke="black" points="1334.3,-345.5 1344.3,-342 1334.3,-338.5 1334.3,-345.5"/>
<path fill="none" stroke="black" d="M929.03,-396C945.02,-396 961.64,-396 976.92,-396"/>
<polygon fill="black" stroke="black" points="976.8,-399.5 986.8,-396 976.8,-392.5 976.8,-399.5"/>
</g>
<!-- 24 -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 24, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;example element&quot;, typeName: &quot;&quot;, id: 24, branchId: 0, recurseId: &#45;1, attributes: 16, notes: &quot;&quot; -->
<g id="node25" class="node">
<title>24</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-288" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
<ellipse fill="none" stroke="black" stroke-dasharray="1,5" cx="1038.2" cy="-234" rx="71.52" ry="18"/>
<text text-anchor="middle" x="1038.2" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">example element</text>
</g>
<!-- 23&#45;&gt;24 -->
<!-- 21&#45;&gt;24 -->
<g id="edge24" class="edge">
<title>23&#45;&gt;24</title>
<path fill="none" stroke="black" d="M1236.24,-288C1263.82,-288 1304.13,-288 1334.44,-288"/>
<polygon fill="black" stroke="black" points="1334.41,-291.5 1344.41,-288 1334.41,-284.5 1334.41,-291.5"/>
<title>21&#45;&gt;24</title>
<path fill="none" stroke="black" d="M872.32,-378.35C905.27,-349.51 970.78,-292.15 1008.55,-259.08"/>
<polygon fill="black" stroke="black" points="1010.71,-261.84 1015.93,-252.62 1006.1,-256.57 1010.71,-261.84"/>
</g>
<!-- 23 -->
<!-- name: &quot;unsigned varint&quot;, typeName: &quot;&quot;, id: 23, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node24" class="node">
<title>23</title>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-396" rx="66.53" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-390.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint</text>
</g>
<!-- 22&#45;&gt;23 -->
<g id="edge23" class="edge">
<title>22&#45;&gt;23</title>
<path fill="none" stroke="black" d="M1088.07,-396C1144.32,-396 1237.42,-396 1303.41,-396"/>
<polygon fill="black" stroke="black" points="1303.06,-399.5 1313.06,-396 1303.06,-392.5 1303.06,-399.5"/>
</g>
<!-- 25 -->
<!-- name: &quot;ID&quot;, typeName: &quot;&quot;, id: 25, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node26" class="node">
<title>25</title>
<ellipse fill="none" stroke="black" cx="1207.76" cy="-342" rx="27" ry="18"/>
<text text-anchor="middle" x="1207.76" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">ID</text>
</g>
<!-- 24&#45;&gt;25 -->
<g id="edge25" class="edge">
<title>24&#45;&gt;25</title>
<path fill="none" stroke="black" d="M1059.4,-251.66C1080.1,-269.19 1113.71,-296.1 1145.72,-315 1154.4,-320.12 1164.23,-324.88 1173.42,-328.93"/>
<polygon fill="black" stroke="black" points="1171.85,-332.07 1182.42,-332.75 1174.58,-325.62 1171.85,-332.07"/>
</g>
<!-- 27 -->
<!-- name: &quot;Name&quot;, typeName: &quot;&quot;, id: 27, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node28" class="node">
<title>27</title>
<ellipse fill="none" stroke="black" cx="1207.76" cy="-288" rx="32.1" ry="18"/>
<text text-anchor="middle" x="1207.76" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">Name</text>
</g>
<!-- 24&#45;&gt;27 -->
<g id="edge27" class="edge">
<title>24&#45;&gt;27</title>
<path fill="none" stroke="black" d="M1083.66,-248.33C1110.18,-256.88 1143.5,-267.61 1168.78,-275.76"/>
<polygon fill="black" stroke="black" points="1167.4,-278.99 1177.99,-278.73 1169.55,-272.33 1167.4,-278.99"/>
</g>
<!-- 29 -->
<!-- name: &quot;Amount&quot;, typeName: &quot;&quot;, id: 29, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node30" class="node">
<title>29</title>
<ellipse fill="none" stroke="black" cx="1207.76" cy="-234" rx="40.58" ry="18"/>
<text text-anchor="middle" x="1207.76" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">Amount</text>
</g>
<!-- 24&#45;&gt;29 -->
<g id="edge29" class="edge">
<title>24&#45;&gt;29</title>
<path fill="none" stroke="black" d="M1109.78,-234C1125.16,-234 1141.16,-234 1155.62,-234"/>
<polygon fill="black" stroke="black" points="1155.33,-237.5 1165.33,-234 1155.33,-230.5 1155.33,-237.5"/>
</g>
<!-- 31 -->
<!-- name: &quot;Operation&quot;, typeName: &quot;&quot;, id: 31, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node32" class="node">
<title>31</title>
<ellipse fill="none" stroke="black" cx="1207.76" cy="-180" rx="47.57" ry="18"/>
<text text-anchor="middle" x="1207.76" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">Operation</text>
</g>
<!-- 24&#45;&gt;31 -->
<g id="edge31" class="edge">
<title>24&#45;&gt;31</title>
<path fill="none" stroke="black" d="M1083.66,-219.67C1107.1,-212.12 1135.85,-202.85 1159.66,-195.18"/>
<polygon fill="black" stroke="black" points="1160.68,-198.53 1169.13,-192.13 1158.53,-191.87 1160.68,-198.53"/>
</g>
<!-- 33 -->
<!-- name: &quot;Operand&quot;, typeName: &quot;&quot;, id: 33, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node34" class="node">
<title>33</title>
<ellipse fill="none" stroke="black" cx="1207.76" cy="-126" rx="43.08" ry="18"/>
<text text-anchor="middle" x="1207.76" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">Operand</text>
</g>
<!-- 24&#45;&gt;33 -->
<g id="edge33" class="edge">
<title>24&#45;&gt;33</title>
<path fill="none" stroke="black" d="M1059.4,-216.34C1080.1,-198.81 1113.71,-171.9 1145.72,-153 1151.81,-149.4 1158.47,-145.99 1165.07,-142.87"/>
<polygon fill="black" stroke="black" points="1166.28,-146.17 1173.95,-138.86 1163.39,-139.79 1166.28,-146.17"/>
</g>
<!-- 35 -->
<!-- name: &quot;isSerializable?&quot;, typeName: &quot;&quot;, id: 35, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node36" class="node">
<title>35</title>
<ellipse fill="none" stroke="black" cx="1207.76" cy="-72" rx="62.04" ry="18"/>
<text text-anchor="middle" x="1207.76" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">isSerializable?</text>
</g>
<!-- 24&#45;&gt;35 -->
<g id="edge35" class="edge">
<title>24&#45;&gt;35</title>
<path fill="none" stroke="black" d="M1049.44,-215.96C1066.27,-187.68 1102.31,-132.66 1145.72,-99 1149.38,-96.16 1153.38,-93.56 1157.53,-91.17"/>
<polygon fill="black" stroke="black" points="1158.81,-94.46 1166.05,-86.72 1155.56,-88.25 1158.81,-94.46"/>
</g>
<!-- 26 -->
<!-- name: &quot;float&quot;, typeName: &quot;&quot;, id: 26, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 26, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node27" class="node">
<title>26</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-234" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">float</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-342" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-336.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 25&#45;&gt;26 -->
<g id="edge26" class="edge">
<title>25&#45;&gt;26</title>
<path fill="none" stroke="black" d="M1244.56,-234C1272.88,-234 1310.7,-234 1338.56,-234"/>
<polygon fill="black" stroke="black" points="1338.32,-237.5 1348.32,-234 1338.32,-230.5 1338.32,-237.5"/>
<path fill="none" stroke="black" d="M1235.19,-342C1262.74,-342 1306.29,-342 1338.5,-342"/>
<polygon fill="black" stroke="black" points="1338.29,-345.5 1348.29,-342 1338.29,-338.5 1338.29,-345.5"/>
</g>
<!-- 28 -->
<!-- name: &quot;int&quot;, typeName: &quot;&quot;, id: 28, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;string&quot;, typeName: &quot;&quot;, id: 28, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node29" class="node">
<title>28</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-180" rx="27" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">int</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-288" rx="31.1" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-282.57" font-family="Times New Roman,serif" font-size="14.00">string</text>
</g>
<!-- 27&#45;&gt;28 -->
<g id="edge28" class="edge">
<title>27&#45;&gt;28</title>
<path fill="none" stroke="black" d="M1251.65,-180C1279.06,-180 1313.19,-180 1338.8,-180"/>
<polygon fill="black" stroke="black" points="1338.76,-183.5 1348.76,-180 1338.76,-176.5 1338.76,-183.5"/>
<path fill="none" stroke="black" d="M1240.23,-288C1267.81,-288 1308.13,-288 1338.43,-288"/>
<polygon fill="black" stroke="black" points="1338.41,-291.5 1348.41,-288 1338.41,-284.5 1338.41,-291.5"/>
</g>
<!-- 30 -->
<!-- name: &quot;int&quot;, typeName: &quot;&quot;, id: 30, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;float&quot;, typeName: &quot;&quot;, id: 30, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node31" class="node">
<title>30</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-126" rx="27" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">int</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-234" rx="27.11" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-228.57" font-family="Times New Roman,serif" font-size="14.00">float</text>
</g>
<!-- 29&#45;&gt;30 -->
<g id="edge30" class="edge">
<title>29&#45;&gt;30</title>
<path fill="none" stroke="black" d="M1247.18,-126C1275.18,-126 1311.56,-126 1338.57,-126"/>
<polygon fill="black" stroke="black" points="1338.37,-129.5 1348.37,-126 1338.37,-122.5 1338.37,-129.5"/>
<path fill="none" stroke="black" d="M1248.55,-234C1276.88,-234 1314.69,-234 1342.55,-234"/>
<polygon fill="black" stroke="black" points="1342.31,-237.5 1352.31,-234 1342.31,-230.5 1342.31,-237.5"/>
</g>
<!-- 32 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 32, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;int&quot;, typeName: &quot;&quot;, id: 32, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node33" class="node">
<title>32</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-72" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">bool</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-180" rx="27" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-174.57" font-family="Times New Roman,serif" font-size="14.00">int</text>
</g>
<!-- 31&#45;&gt;32 -->
<g id="edge32" class="edge">
<title>31&#45;&gt;32</title>
<path fill="none" stroke="black" d="M1266.22,-72C1290.13,-72 1316.77,-72 1337.87,-72"/>
<polygon fill="black" stroke="black" points="1337.76,-75.5 1347.76,-72 1337.76,-68.5 1337.76,-75.5"/>
<path fill="none" stroke="black" d="M1255.64,-180C1283.05,-180 1317.18,-180 1342.8,-180"/>
<polygon fill="black" stroke="black" points="1342.75,-183.5 1352.75,-180 1342.75,-176.5 1342.75,-183.5"/>
</g>
<!-- 34 -->
<!-- name: &quot;unsigned varint64&quot;, typeName: &quot;&quot;, id: 34, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- name: &quot;int&quot;, typeName: &quot;&quot;, id: 34, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node35" class="node">
<title>34</title>
<ellipse fill="none" stroke="black" cx="1377.33" cy="-18" rx="75.51" ry="18"/>
<text text-anchor="middle" x="1377.33" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint64</text>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-126" rx="27" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-120.58" font-family="Times New Roman,serif" font-size="14.00">int</text>
</g>
<!-- 33&#45;&gt;34 -->
<g id="edge34" class="edge">
<title>33&#45;&gt;34</title>
<path fill="none" stroke="black" d="M403.68,-272.66C458.58,-211.45 647.93,-18 848.17,-18 848.17,-18 848.17,-18 1035.21,-18 1122.02,-18 1221.26,-18 1290.23,-18"/>
<polygon fill="black" stroke="black" points="1289.95,-21.5 1299.95,-18 1289.95,-14.5 1289.95,-21.5"/>
<path fill="none" stroke="black" d="M1251.17,-126C1279.18,-126 1315.55,-126 1342.56,-126"/>
<polygon fill="black" stroke="black" points="1342.36,-129.5 1352.36,-126 1342.36,-122.5 1342.36,-129.5"/>
</g>
<!-- 36 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 36, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node37" class="node">
<title>36</title>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-72" rx="27.61" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-66.58" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 35&#45;&gt;36 -->
<g id="edge36" class="edge">
<title>35&#45;&gt;36</title>
<path fill="none" stroke="black" d="M1270.22,-72C1294.12,-72 1320.77,-72 1341.86,-72"/>
<polygon fill="black" stroke="black" points="1341.75,-75.5 1351.75,-72 1341.75,-68.5 1341.75,-75.5"/>
</g>
<!-- 38 -->
<!-- name: &quot;unsigned varint64&quot;, typeName: &quot;&quot;, id: 38, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node39" class="node">
<title>38</title>
<ellipse fill="none" stroke="black" cx="1381.32" cy="-18" rx="75.51" ry="18"/>
<text text-anchor="middle" x="1381.32" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">unsigned varint64</text>
</g>
<!-- 37&#45;&gt;38 -->
<g id="edge38" class="edge">
<title>37&#45;&gt;38</title>
<path fill="none" stroke="black" d="M401.06,-309.99C451.47,-243.83 639,-18 850.17,-18 850.17,-18 850.17,-18 1039.2,-18 1126.01,-18 1225.26,-18 1294.23,-18"/>
<polygon fill="black" stroke="black" points="1293.94,-21.5 1303.94,-18 1293.94,-14.5 1293.94,-21.5"/>
</g>
</g>
</svg>

Before

(image error) Size: 24 KiB

After

(image error) Size: 27 KiB

@ -9,36 +9,36 @@
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
<title>std::optional&lt;bool&gt;</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-40 396.36,-40 396.36,4 -4,4"/>
<!-- 39 -->
<!-- name: &quot;std::optional&lt;bool&gt;&quot;, typeName: &quot;&quot;, id: 39, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 29 -->
<!-- name: &quot;std::optional&lt;bool&gt;&quot;, typeName: &quot;&quot;, id: 29, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>39</title>
<title>29</title>
<ellipse fill="none" stroke="black" cx="84" cy="-18" rx="84" ry="18"/>
<text text-anchor="middle" x="84" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;bool&gt;</text>
</g>
<!-- 40 -->
<!-- name: &quot;Has Value&quot;, typeName: &quot;&quot;, id: 40, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;If true, follow with appropriate data type, otherwise nothing&quot; -->
<!-- 30 -->
<!-- name: &quot;Has Value&quot;, typeName: &quot;&quot;, id: 30, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;If true, follow with appropriate data type, otherwise nothing&quot; -->
<g id="node2" class="node">
<title>40</title>
<title>30</title>
<ellipse fill="none" stroke="black" cx="252.56" cy="-18" rx="48.57" ry="18"/>
<text text-anchor="middle" x="252.56" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Has Value</text>
</g>
<!-- 39&#45;&gt;40 -->
<!-- 29&#45;&gt;30 -->
<g id="edge1" class="edge">
<title>39&#45;&gt;40</title>
<title>29&#45;&gt;30</title>
<path fill="none" stroke="black" d="M168.28,-18C176.48,-18 184.67,-18 192.55,-18"/>
<polygon fill="black" stroke="black" points="192.32,-21.5 202.32,-18 192.32,-14.5 192.32,-21.5"/>
</g>
<!-- 41 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 41, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 31 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 31, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>41</title>
<title>31</title>
<ellipse fill="none" stroke="black" cx="364.74" cy="-18" rx="27.61" ry="18"/>
<text text-anchor="middle" x="364.74" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 40&#45;&gt;41 -->
<!-- 30&#45;&gt;31 -->
<g id="edge2" class="edge">
<title>40&#45;&gt;41</title>
<title>30&#45;&gt;31</title>
<path fill="none" stroke="black" d="M301.57,-18C309.58,-18 317.79,-18 325.52,-18"/>
<polygon fill="black" stroke="black" points="325.26,-21.5 335.26,-18 325.26,-14.5 325.26,-21.5"/>
</g>

Before

(image error) Size: 2.4 KiB

After

(image error) Size: 2.4 KiB

@ -9,36 +9,36 @@
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
<title>std::optional&lt;class Vec2&gt;</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-40 443.26,-40 443.26,4 -4,4"/>
<!-- 27 -->
<!-- name: &quot;std::optional&lt;class Vec2&gt;&quot;, typeName: &quot;&quot;, id: 27, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 34 -->
<!-- name: &quot;std::optional&lt;class Vec2&gt;&quot;, typeName: &quot;&quot;, id: 34, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>27</title>
<title>34</title>
<ellipse fill="none" stroke="black" cx="107.45" cy="-18" rx="107.45" ry="18"/>
<text text-anchor="middle" x="107.45" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;class Vec2&gt;</text>
</g>
<!-- 28 -->
<!-- name: &quot;Has Value&quot;, typeName: &quot;&quot;, id: 28, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;If true, follow with appropriate data type, otherwise nothing&quot; -->
<!-- 35 -->
<!-- name: &quot;Has Value&quot;, typeName: &quot;&quot;, id: 35, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;If true, follow with appropriate data type, otherwise nothing&quot; -->
<g id="node2" class="node">
<title>28</title>
<title>35</title>
<ellipse fill="none" stroke="black" cx="299.47" cy="-18" rx="48.57" ry="18"/>
<text text-anchor="middle" x="299.47" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Has Value</text>
</g>
<!-- 27&#45;&gt;28 -->
<!-- 34&#45;&gt;35 -->
<g id="edge1" class="edge">
<title>27&#45;&gt;28</title>
<title>34&#45;&gt;35</title>
<path fill="none" stroke="black" d="M215.12,-18C223.33,-18 231.41,-18 239.13,-18"/>
<polygon fill="black" stroke="black" points="239.01,-21.5 249.01,-18 239.01,-14.5 239.01,-21.5"/>
</g>
<!-- 29 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 29, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 36 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 36, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>29</title>
<title>36</title>
<ellipse fill="none" stroke="black" cx="411.65" cy="-18" rx="27.61" ry="18"/>
<text text-anchor="middle" x="411.65" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 28&#45;&gt;29 -->
<!-- 35&#45;&gt;36 -->
<g id="edge2" class="edge">
<title>28&#45;&gt;29</title>
<title>35&#45;&gt;36</title>
<path fill="none" stroke="black" d="M348.48,-18C356.49,-18 364.7,-18 372.42,-18"/>
<polygon fill="black" stroke="black" points="372.17,-21.5 382.17,-18 372.17,-14.5 372.17,-21.5"/>
</g>

Before

(image error) Size: 2.4 KiB

After

(image error) Size: 2.4 KiB

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 11.0.0 (20240428.1522)
-->
<!-- Title: std::optional&lt;class Vec3&gt; Pages: 1 -->
<svg width="447pt" height="44pt"
viewBox="0.00 0.00 447.26 44.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
<title>std::optional&lt;class Vec3&gt;</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-40 443.26,-40 443.26,4 -4,4"/>
<!-- 39 -->
<!-- name: &quot;std::optional&lt;class Vec3&gt;&quot;, typeName: &quot;&quot;, id: 39, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>39</title>
<ellipse fill="none" stroke="black" cx="107.45" cy="-18" rx="107.45" ry="18"/>
<text text-anchor="middle" x="107.45" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;class Vec3&gt;</text>
</g>
<!-- 40 -->
<!-- name: &quot;Has Value&quot;, typeName: &quot;&quot;, id: 40, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;If true, follow with appropriate data type, otherwise nothing&quot; -->
<g id="node2" class="node">
<title>40</title>
<ellipse fill="none" stroke="black" cx="299.47" cy="-18" rx="48.57" ry="18"/>
<text text-anchor="middle" x="299.47" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Has Value</text>
</g>
<!-- 39&#45;&gt;40 -->
<g id="edge1" class="edge">
<title>39&#45;&gt;40</title>
<path fill="none" stroke="black" d="M215.12,-18C223.33,-18 231.41,-18 239.13,-18"/>
<polygon fill="black" stroke="black" points="239.01,-21.5 249.01,-18 239.01,-14.5 239.01,-21.5"/>
</g>
<!-- 41 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 41, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>41</title>
<ellipse fill="none" stroke="black" cx="411.65" cy="-18" rx="27.61" ry="18"/>
<text text-anchor="middle" x="411.65" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 40&#45;&gt;41 -->
<g id="edge2" class="edge">
<title>40&#45;&gt;41</title>
<path fill="none" stroke="black" d="M348.48,-18C356.49,-18 364.7,-18 372.42,-18"/>
<polygon fill="black" stroke="black" points="372.17,-21.5 382.17,-18 372.17,-14.5 372.17,-21.5"/>
</g>
</g>
</svg>

After

(image error) Size: 2.4 KiB

@ -9,36 +9,36 @@
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
<title>std::optional&lt;enum CameraPreset::AudioListener&gt;</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-40 622.9,-40 622.9,4 -4,4"/>
<!-- 34 -->
<!-- name: &quot;std::optional&lt;enum CameraPreset::AudioListener&gt;&quot;, typeName: &quot;&quot;, id: 34, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 46 -->
<!-- name: &quot;std::optional&lt;enum CameraPreset::AudioListener&gt;&quot;, typeName: &quot;&quot;, id: 46, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>34</title>
<title>46</title>
<ellipse fill="none" stroke="black" cx="197.27" cy="-18" rx="197.27" ry="18"/>
<text text-anchor="middle" x="197.27" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;enum CameraPreset::AudioListener&gt;</text>
</g>
<!-- 35 -->
<!-- name: &quot;Has Value&quot;, typeName: &quot;&quot;, id: 35, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;If true, follow with appropriate data type, otherwise nothing&quot; -->
<!-- 47 -->
<!-- name: &quot;Has Value&quot;, typeName: &quot;&quot;, id: 47, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;If true, follow with appropriate data type, otherwise nothing&quot; -->
<g id="node2" class="node">
<title>35</title>
<title>47</title>
<ellipse fill="none" stroke="black" cx="479.11" cy="-18" rx="48.57" ry="18"/>
<text text-anchor="middle" x="479.11" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Has Value</text>
</g>
<!-- 34&#45;&gt;35 -->
<!-- 46&#45;&gt;47 -->
<g id="edge1" class="edge">
<title>34&#45;&gt;35</title>
<title>46&#45;&gt;47</title>
<path fill="none" stroke="black" d="M394.91,-18C403.28,-18 411.33,-18 418.9,-18"/>
<polygon fill="black" stroke="black" points="418.86,-21.5 428.86,-18 418.86,-14.5 418.86,-21.5"/>
</g>
<!-- 36 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 36, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 48 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 48, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>36</title>
<title>48</title>
<ellipse fill="none" stroke="black" cx="591.29" cy="-18" rx="27.61" ry="18"/>
<text text-anchor="middle" x="591.29" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 35&#45;&gt;36 -->
<!-- 47&#45;&gt;48 -->
<g id="edge2" class="edge">
<title>35&#45;&gt;36</title>
<title>47&#45;&gt;48</title>
<path fill="none" stroke="black" d="M528.11,-18C536.12,-18 544.34,-18 552.06,-18"/>
<polygon fill="black" stroke="black" points="551.8,-21.5 561.8,-18 551.8,-14.5 551.8,-21.5"/>
</g>

Before

(image error) Size: 2.5 KiB

After

(image error) Size: 2.5 KiB

@ -9,36 +9,36 @@
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 40)">
<title>std::optional&lt;unsigned int&gt;</title>
<polygon fill="white" stroke="none" points="-4,4 -4,-40 451.24,-40 451.24,4 -4,4"/>
<!-- 8 -->
<!-- name: &quot;std::optional&lt;unsigned int&gt;&quot;, typeName: &quot;&quot;, id: 8, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<!-- 14 -->
<!-- name: &quot;std::optional&lt;unsigned int&gt;&quot;, typeName: &quot;&quot;, id: 14, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;&quot; -->
<g id="node1" class="node">
<title>8</title>
<title>14</title>
<ellipse fill="none" stroke="black" cx="111.44" cy="-18" rx="111.44" ry="18"/>
<text text-anchor="middle" x="111.44" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">std::optional&lt;unsigned int&gt;</text>
</g>
<!-- 9 -->
<!-- name: &quot;Has Value&quot;, typeName: &quot;&quot;, id: 9, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;If true, follow with appropriate data type, otherwise nothing&quot; -->
<!-- 15 -->
<!-- name: &quot;Has Value&quot;, typeName: &quot;&quot;, id: 15, branchId: 0, recurseId: &#45;1, attributes: 0, notes: &quot;If true, follow with appropriate data type, otherwise nothing&quot; -->
<g id="node2" class="node">
<title>9</title>
<title>15</title>
<ellipse fill="none" stroke="black" cx="307.45" cy="-18" rx="48.57" ry="18"/>
<text text-anchor="middle" x="307.45" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">Has Value</text>
</g>
<!-- 8&#45;&gt;9 -->
<!-- 14&#45;&gt;15 -->
<g id="edge1" class="edge">
<title>8&#45;&gt;9</title>
<title>14&#45;&gt;15</title>
<path fill="none" stroke="black" d="M223.33,-18C231.56,-18 239.65,-18 247.37,-18"/>
<polygon fill="black" stroke="black" points="247.24,-21.5 257.24,-18 247.24,-14.5 247.24,-21.5"/>
</g>
<!-- 10 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 10, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<!-- 16 -->
<!-- name: &quot;bool&quot;, typeName: &quot;&quot;, id: 16, branchId: 0, recurseId: &#45;1, attributes: 512, notes: &quot;&quot; -->
<g id="node3" class="node">
<title>10</title>
<title>16</title>
<ellipse fill="none" stroke="black" cx="419.63" cy="-18" rx="27.61" ry="18"/>
<text text-anchor="middle" x="419.63" y="-12.57" font-family="Times New Roman,serif" font-size="14.00">bool</text>
</g>
<!-- 9&#45;&gt;10 -->
<!-- 15&#45;&gt;16 -->
<g id="edge2" class="edge">
<title>9&#45;&gt;10</title>
<title>15&#45;&gt;16</title>
<path fill="none" stroke="black" d="M356.46,-18C364.47,-18 372.68,-18 380.41,-18"/>
<polygon fill="black" stroke="black" points="380.15,-21.5 390.15,-18 380.15,-14.5 380.15,-21.5"/>
</g>

Before

(image error) Size: 2.4 KiB

After

(image error) Size: 2.4 KiB

@ -185,16 +185,16 @@
<td><a href="SubChunkPos.html">SubChunkPos diagram</a></td>
</tr><tr><td>SyncedPlayerMovementSettings</td>
<td><a href="SyncedPlayerMovementSettings.html">SyncedPlayerMovementSettings diagram</a></td>
</tr><tr><td>TypedClientNetId<struct ItemStackLegacyRequestIdTag,int,0></td>
<td><a href="TypedClientNetId_struct ItemStackLegacyRequestIdTag,int,0_.html">TypedClientNetId<struct ItemStackLegacyRequestIdTag,int,0> diagram</a></td>
</tr><tr><td>TypedClientNetId<struct ItemStackRequestIdTag,int,0></td>
<td><a href="TypedClientNetId_struct ItemStackRequestIdTag,int,0_.html">TypedClientNetId<struct ItemStackRequestIdTag,int,0> diagram</a></td>
</tr><tr><td>TypedServerNetId<struct CreativeItemNetIdTag,unsigned int,0></td>
<td><a href="TypedServerNetId_struct CreativeItemNetIdTag,unsigned int,0_.html">TypedServerNetId<struct CreativeItemNetIdTag,unsigned int,0> diagram</a></td>
</tr><tr><td>TypedServerNetId<struct ItemStackNetIdTag,int,0></td>
<td><a href="TypedServerNetId_struct ItemStackNetIdTag,int,0_.html">TypedServerNetId<struct ItemStackNetIdTag,int,0> diagram</a></td>
</tr><tr><td>TypedServerNetId<struct RecipeNetIdTag,unsigned int,0></td>
<td><a href="TypedServerNetId_struct RecipeNetIdTag,unsigned int,0_.html">TypedServerNetId<struct RecipeNetIdTag,unsigned int,0> diagram</a></td>
</tr><tr><td>TypedClientNetId&lt;struct ItemStackLegacyRequestIdTag,int,0&gt;</td>
<td><a href="TypedClientNetId_struct ItemStackLegacyRequestIdTag,int,0_.html">TypedClientNetId&lt;struct ItemStackLegacyRequestIdTag,int,0&gt; diagram</a></td>
</tr><tr><td>TypedClientNetId&lt;struct ItemStackRequestIdTag,int,0&gt;</td>
<td><a href="TypedClientNetId_struct ItemStackRequestIdTag,int,0_.html">TypedClientNetId&lt;struct ItemStackRequestIdTag,int,0&gt; diagram</a></td>
</tr><tr><td>TypedServerNetId&lt;struct CreativeItemNetIdTag,unsigned int,0&gt;</td>
<td><a href="TypedServerNetId_struct CreativeItemNetIdTag,unsigned int,0_.html">TypedServerNetId&lt;struct CreativeItemNetIdTag,unsigned int,0&gt; diagram</a></td>
</tr><tr><td>TypedServerNetId&lt;struct ItemStackNetIdTag,int,0&gt;</td>
<td><a href="TypedServerNetId_struct ItemStackNetIdTag,int,0_.html">TypedServerNetId&lt;struct ItemStackNetIdTag,int,0&gt; diagram</a></td>
</tr><tr><td>TypedServerNetId&lt;struct RecipeNetIdTag,unsigned int,0&gt;</td>
<td><a href="TypedServerNetId_struct RecipeNetIdTag,unsigned int,0_.html">TypedServerNetId&lt;struct RecipeNetIdTag,unsigned int,0&gt; diagram</a></td>
</tr><tr><td>Vec2</td>
<td><a href="Vec2.html">Vec2 diagram</a></td>
</tr><tr><td>Vec3</td>
@ -205,36 +205,38 @@
<td><a href="fixed float.html">fixed float diagram</a></td>
</tr><tr><td>mce::UUID</td>
<td><a href="mce__UUID.html">mce::UUID diagram</a></td>
</tr><tr><td>std::optional<bool></td>
<td><a href="std__optional_bool_.html">std::optional<bool> diagram</a></td>
</tr><tr><td>std::optional<class Json::Value></td>
<td><a href="std__optional_class Json__Value_.html">std::optional<class Json::Value> diagram</a></td>
</tr><tr><td>std::optional<class MolangVariableMap></td>
<td><a href="std__optional_class MolangVariableMap_.html">std::optional<class MolangVariableMap> diagram</a></td>
</tr><tr><td>std::optional<class Vec2></td>
<td><a href="std__optional_class Vec2_.html">std::optional<class Vec2> diagram</a></td>
</tr><tr><td>std::optional<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > ></td>
<td><a href="std__optional_class std__basic_string_char,struct std__char_traits_char_,class std__allocator_char_ _ _.html">std::optional<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > diagram</a></td>
</tr><tr><td>std::optional<enum CameraPreset::AudioListener></td>
<td><a href="std__optional_enum CameraPreset__AudioListener_.html">std::optional<enum CameraPreset::AudioListener> diagram</a></td>
</tr><tr><td>std::optional<enum ModalFormCancelReason></td>
<td><a href="std__optional_enum ModalFormCancelReason_.html">std::optional<enum ModalFormCancelReason> diagram</a></td>
</tr><tr><td>std::optional<float></td>
<td><a href="std__optional_float_.html">std::optional<float> diagram</a></td>
</tr><tr><td>std::optional<struct AgentCapabilities></td>
<td><a href="std__optional_struct AgentCapabilities_.html">std::optional<struct AgentCapabilities> diagram</a></td>
</tr><tr><td>std::optional<struct CameraInstruction::FadeInstruction></td>
<td><a href="std__optional_struct CameraInstruction__FadeInstruction_.html">std::optional<struct CameraInstruction::FadeInstruction> diagram</a></td>
</tr><tr><td>std::optional<struct CameraInstruction::SetInstruction></td>
<td><a href="std__optional_struct CameraInstruction__SetInstruction_.html">std::optional<struct CameraInstruction::SetInstruction> diagram</a></td>
</tr><tr><td>std::optional<struct CameraInstruction::TargetInstruction></td>
<td><a href="std__optional_struct CameraInstruction__TargetInstruction_.html">std::optional<struct CameraInstruction::TargetInstruction> diagram</a></td>
</tr><tr><td>std::optional<struct ExternalLinkSettings></td>
<td><a href="std__optional_struct ExternalLinkSettings_.html">std::optional<struct ExternalLinkSettings> diagram</a></td>
</tr><tr><td>std::optional<unsigned int></td>
<td><a href="std__optional_unsigned int_.html">std::optional<unsigned int> diagram</a></td>
</tr><tr><td>std::vector<class std::unique_ptr<class DataItem,struct std::default_delete<class DataItem> >,class std::allocator<class std::unique_ptr<class DataItem,struct std::default_delete<class DataItem> > > ></td>
<td><a href="std__vector_class std__unique_ptr_class DataItem,struct std__default_delete_class DataItem_ _,class std__allocator_class std__u.html">std::vector<class std::unique_ptr<class DataItem,struct std::default_delete<class DataItem> >,class std::allocator<class std::unique_ptr<class DataItem,struct std::default_delete<class DataItem> > > > diagram</a></td>
</tr><tr><td>std::optional&lt;bool&gt;</td>
<td><a href="std__optional_bool_.html">std::optional&lt;bool&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;class Json::Value&gt;</td>
<td><a href="std__optional_class Json__Value_.html">std::optional&lt;class Json::Value&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;class MolangVariableMap&gt;</td>
<td><a href="std__optional_class MolangVariableMap_.html">std::optional&lt;class MolangVariableMap&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;class Vec2&gt;</td>
<td><a href="std__optional_class Vec2_.html">std::optional&lt;class Vec2&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;class Vec3&gt;</td>
<td><a href="std__optional_class Vec3_.html">std::optional&lt;class Vec3&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; &gt;</td>
<td><a href="std__optional_class std__basic_string_char,struct std__char_traits_char_,class std__allocator_char_ _ _.html">std::optional&lt;class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt; &gt; diagram</a></td>
</tr><tr><td>std::optional&lt;enum CameraPreset::AudioListener&gt;</td>
<td><a href="std__optional_enum CameraPreset__AudioListener_.html">std::optional&lt;enum CameraPreset::AudioListener&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;enum ModalFormCancelReason&gt;</td>
<td><a href="std__optional_enum ModalFormCancelReason_.html">std::optional&lt;enum ModalFormCancelReason&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;float&gt;</td>
<td><a href="std__optional_float_.html">std::optional&lt;float&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;struct AgentCapabilities&gt;</td>
<td><a href="std__optional_struct AgentCapabilities_.html">std::optional&lt;struct AgentCapabilities&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;struct CameraInstruction::FadeInstruction&gt;</td>
<td><a href="std__optional_struct CameraInstruction__FadeInstruction_.html">std::optional&lt;struct CameraInstruction::FadeInstruction&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;struct CameraInstruction::SetInstruction&gt;</td>
<td><a href="std__optional_struct CameraInstruction__SetInstruction_.html">std::optional&lt;struct CameraInstruction::SetInstruction&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;struct CameraInstruction::TargetInstruction&gt;</td>
<td><a href="std__optional_struct CameraInstruction__TargetInstruction_.html">std::optional&lt;struct CameraInstruction::TargetInstruction&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;struct ExternalLinkSettings&gt;</td>
<td><a href="std__optional_struct ExternalLinkSettings_.html">std::optional&lt;struct ExternalLinkSettings&gt; diagram</a></td>
</tr><tr><td>std::optional&lt;unsigned int&gt;</td>
<td><a href="std__optional_unsigned int_.html">std::optional&lt;unsigned int&gt; diagram</a></td>
</tr><tr><td>std::vector&lt;class std::unique_ptr&lt;class DataItem,struct std::default_delete&lt;class DataItem&gt; &gt;,class std::allocator&lt;class std::unique_ptr&lt;class DataItem,struct std::default_delete&lt;class DataItem&gt; &gt; &gt; &gt;</td>
<td><a href="std__vector_class std__unique_ptr_class DataItem,struct std__default_delete_class DataItem_ _,class std__allocator_class std__u.html">std::vector&lt;class std::unique_ptr&lt;class DataItem,struct std::default_delete&lt;class DataItem&gt; &gt;,class std::allocator&lt;class std::unique_ptr&lt;class DataItem,struct std::default_delete&lt;class DataItem&gt; &gt; &gt; &gt; diagram</a></td>
</tr><tr><td>string</td>
<td><a href="string.html">string diagram</a></td>
</tr></table></body> </html>