Skip to content

Commit

Permalink
Merge pull request #13 from Mojang/r/21_u3
Browse files Browse the repository at this point in the history
Protocol for r/21_u3 NetworkProtocolVersion 729
  • Loading branch information
oswaldolb authored Sep 25, 2024
2 parents 4204a7c + 04016f5 commit 7dcafc4
Show file tree
Hide file tree
Showing 57 changed files with 2,258 additions and 1,789 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 changes: 177 additions & 0 deletions changelog_729_8_20_24.md
Original file line number Diff line number Diff line change
@@ -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)

24 changes: 24 additions & 0 deletions dot/CameraAimAssistPacket.dot
Original file line number Diff line number Diff line change
@@ -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}

}
36 changes: 24 additions & 12 deletions dot/CameraPreset.dot
Original file line number Diff line number Diff line change
Expand Up @@ -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: \"\""];
Expand All @@ -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 changes: 3 additions & 3 deletions dot/CameraPresets.dot
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ 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: \"\""];
4 [label="Array Size",comment="name: \"Array Size\", typeName: \"\", id: 4, branchId: 0, recurseId: -1, attributes: 0, notes: \"\""];
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}

}
6 changes: 3 additions & 3 deletions dot/CameraPresetsPacket.dot
Original file line number Diff line number Diff line change
Expand Up @@ -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}

}
6 changes: 3 additions & 3 deletions dot/ChangeDimensionPacket.dot
Original file line number Diff line number Diff line change
Expand Up @@ -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)\""];
Expand All @@ -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}

}
20 changes: 20 additions & 0 deletions dot/ContainerRegistryCleanupPacket.dot
Original file line number Diff line number Diff line change
@@ -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}

}
16 changes: 10 additions & 6 deletions dot/EmotePacket.dot
Original file line number Diff line number Diff line change
Expand Up @@ -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}

}
22 changes: 11 additions & 11 deletions dot/FullContainerName.dot
Original file line number Diff line number Diff line change
@@ -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}

}
Loading

0 comments on commit 7dcafc4

Please sign in to comment.