From 0ed92bbd8a75934b7498a1218436bfad592c904b Mon Sep 17 00:00:00 2001
From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Date: Wed, 8 Jul 2026 22:23:54 +1000
Subject: [PATCH] serv5 datadef fixes (#44531)
---
Content.Shared/Atmos/TileAtmosphere.cs | 3 ++-
.../Changeling/Components/ChangelingIdentityComponent.cs | 1 +
Content.Shared/DeviceLinking/DevicePortPrototype.cs | 3 ++-
.../EntityConditions/SharedEntityConditionsSystem.cs | 3 ++-
Content.Shared/Guidebook/GuideEntry.cs | 4 ++--
Content.Shared/StationRecords/GeneralStationRecord.cs | 3 ++-
Content.Shared/StationRecords/StationRecordKey.cs | 3 ++-
Content.Shared/StatusIcon/StatusIconPrototype.cs | 1 +
8 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/Content.Shared/Atmos/TileAtmosphere.cs b/Content.Shared/Atmos/TileAtmosphere.cs
index 9b1b5dbd62..eeddd625c6 100644
--- a/Content.Shared/Atmos/TileAtmosphere.cs
+++ b/Content.Shared/Atmos/TileAtmosphere.cs
@@ -9,7 +9,8 @@ namespace Content.Shared.Atmos;
/// Use the public APIs in instead.
///
[Access(typeof(SharedAtmosphereSystem), typeof(SharedGasTileOverlaySystem), typeof(SharedAtmosDebugOverlaySystem))]
-public sealed class TileAtmosphere : IGasMixtureHolder
+[DataDefinition]
+public sealed partial class TileAtmosphere : IGasMixtureHolder
{
///
/// The last cycle this tile's air was archived into .
diff --git a/Content.Shared/Changeling/Components/ChangelingIdentityComponent.cs b/Content.Shared/Changeling/Components/ChangelingIdentityComponent.cs
index dcb65d5641..110db2503e 100644
--- a/Content.Shared/Changeling/Components/ChangelingIdentityComponent.cs
+++ b/Content.Shared/Changeling/Components/ChangelingIdentityComponent.cs
@@ -132,6 +132,7 @@ public sealed partial class ChangelingIdentityData
/// A net-serializable version of used for networking purposes.
/// It needs to be like this because EntityUid cannot be networked, so we convert it to NetEntity and send it over to the client using this class.
///
+[DataDefinition]
[Serializable, NetSerializable]
public sealed partial class ChangelingNetworkedIdentityData
{
diff --git a/Content.Shared/DeviceLinking/DevicePortPrototype.cs b/Content.Shared/DeviceLinking/DevicePortPrototype.cs
index bf062ddce4..ca09bb009a 100644
--- a/Content.Shared/DeviceLinking/DevicePortPrototype.cs
+++ b/Content.Shared/DeviceLinking/DevicePortPrototype.cs
@@ -7,7 +7,8 @@ namespace Content.Shared.DeviceLinking;
///
/// A prototype for a device port, for use with device linking.
///
-public abstract class DevicePortPrototype
+[DataDefinition]
+public abstract partial class DevicePortPrototype
{
[IdDataField]
public string ID { get; private set; } = default!;
diff --git a/Content.Shared/EntityConditions/SharedEntityConditionsSystem.cs b/Content.Shared/EntityConditions/SharedEntityConditionsSystem.cs
index 02b3a3b4ba..b41adf926c 100644
--- a/Content.Shared/EntityConditions/SharedEntityConditionsSystem.cs
+++ b/Content.Shared/EntityConditions/SharedEntityConditionsSystem.cs
@@ -140,7 +140,8 @@ public abstract partial class EntityCondition
///
/// The Condition we're checking
[ByRefEvent]
-public record struct EntityConditionEvent(T Condition) where T : EntityConditionBase
+[DataRecord]
+public partial record struct EntityConditionEvent(T Condition) where T : EntityConditionBase
{
///
/// The result of our check, defaults to false if nothing handles it.
diff --git a/Content.Shared/Guidebook/GuideEntry.cs b/Content.Shared/Guidebook/GuideEntry.cs
index 7ee43afd32..a73be1aabd 100644
--- a/Content.Shared/Guidebook/GuideEntry.cs
+++ b/Content.Shared/Guidebook/GuideEntry.cs
@@ -9,8 +9,8 @@ public sealed partial class GuideEntryPrototype : GuideEntry, IPrototype
public string ID => Id;
}
-[Virtual]
-public class GuideEntry
+[Virtual, DataDefinition]
+public partial class GuideEntry
{
///
/// The file containing the contents of this guide.
diff --git a/Content.Shared/StationRecords/GeneralStationRecord.cs b/Content.Shared/StationRecords/GeneralStationRecord.cs
index 2ca34a4ffb..1306ddbe7b 100644
--- a/Content.Shared/StationRecords/GeneralStationRecord.cs
+++ b/Content.Shared/StationRecords/GeneralStationRecord.cs
@@ -6,8 +6,9 @@ namespace Content.Shared.StationRecords;
///
/// General station record. Indicates the crewmember's name and job.
///
+[DataDefinition]
[Serializable, NetSerializable]
-public sealed record GeneralStationRecord
+public sealed partial record GeneralStationRecord
{
///
/// Name tied to this station record.
diff --git a/Content.Shared/StationRecords/StationRecordKey.cs b/Content.Shared/StationRecords/StationRecordKey.cs
index 3693c0f57d..bedc788e0a 100644
--- a/Content.Shared/StationRecords/StationRecordKey.cs
+++ b/Content.Shared/StationRecords/StationRecordKey.cs
@@ -6,7 +6,8 @@ namespace Content.Shared.StationRecords;
/// This refers to both the id and station. This is suitable for an access reader field etc,
/// but when you already know the station just store the id itself.
///
-public readonly struct StationRecordKey : IEquatable
+[DataRecord]
+public readonly partial struct StationRecordKey : IEquatable
{
[DataField]
public readonly uint Id;
diff --git a/Content.Shared/StatusIcon/StatusIconPrototype.cs b/Content.Shared/StatusIcon/StatusIconPrototype.cs
index 5c615ec967..a7a138b246 100644
--- a/Content.Shared/StatusIcon/StatusIconPrototype.cs
+++ b/Content.Shared/StatusIcon/StatusIconPrototype.cs
@@ -88,6 +88,7 @@ public partial class StatusIconData : IComparable
///
/// but in new convenient prototype form!
///
+[DataDefinition]
public abstract partial class StatusIconPrototype : StatusIconData, IPrototype
{
///