diff --git a/Content.Client/Parallax/Data/ParallaxPrototype.cs b/Content.Client/Parallax/Data/ParallaxPrototype.cs
index 034d8a3da9..bab14f0be8 100644
--- a/Content.Client/Parallax/Data/ParallaxPrototype.cs
+++ b/Content.Client/Parallax/Data/ParallaxPrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Client.Parallax.Data;
///
/// Prototype data for a parallax.
///
-[Prototype("parallax")]
+[Prototype]
public sealed partial class ParallaxPrototype : IPrototype
{
///
diff --git a/Content.Server/Announcements/RoundAnnouncementPrototype.cs b/Content.Server/Announcements/RoundAnnouncementPrototype.cs
index 11984196f1..f99e7ee0b0 100644
--- a/Content.Server/Announcements/RoundAnnouncementPrototype.cs
+++ b/Content.Server/Announcements/RoundAnnouncementPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Server.Announcements;
///
/// Used for any announcements on the start of a round.
///
-[Prototype("roundAnnouncement")]
+[Prototype]
public sealed partial class RoundAnnouncementPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Server/Atmos/Reactions/GasReactionPrototype.cs b/Content.Server/Atmos/Reactions/GasReactionPrototype.cs
index 48a113bb9a..48e32a3b58 100644
--- a/Content.Server/Atmos/Reactions/GasReactionPrototype.cs
+++ b/Content.Server/Atmos/Reactions/GasReactionPrototype.cs
@@ -5,7 +5,7 @@ using Robust.Shared.Prototypes;
namespace Content.Server.Atmos.Reactions
{
- [Prototype("gasReaction")]
+ [Prototype]
public sealed partial class GasReactionPrototype : IPrototype
{
[ViewVariables]
diff --git a/Content.Server/Botany/SeedPrototype.cs b/Content.Server/Botany/SeedPrototype.cs
index 1eb22241cd..7c5718b569 100644
--- a/Content.Server/Botany/SeedPrototype.cs
+++ b/Content.Server/Botany/SeedPrototype.cs
@@ -11,7 +11,7 @@ using Robust.Shared.Utility;
namespace Content.Server.Botany;
-[Prototype("seed")]
+[Prototype]
public sealed partial class SeedPrototype : SeedData, IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Server/Connection/Whitelist/WhitelistPrototype.cs b/Content.Server/Connection/Whitelist/WhitelistPrototype.cs
index eccf364a28..af119c7b1d 100644
--- a/Content.Server/Connection/Whitelist/WhitelistPrototype.cs
+++ b/Content.Server/Connection/Whitelist/WhitelistPrototype.cs
@@ -17,7 +17,7 @@ namespace Content.Server.Connection.Whitelist;
/// Next means the next condition in the list is checked.
/// If the condition doesn't match, the next condition is checked.
///
-[Prototype("playerConnectionWhitelist")]
+[Prototype]
public sealed partial class PlayerConnectionWhitelistPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Server/GameTicking/Presets/GamePresetPrototype.cs b/Content.Server/GameTicking/Presets/GamePresetPrototype.cs
index 4731364ace..87be962602 100644
--- a/Content.Server/GameTicking/Presets/GamePresetPrototype.cs
+++ b/Content.Server/GameTicking/Presets/GamePresetPrototype.cs
@@ -9,7 +9,7 @@ namespace Content.Server.GameTicking.Presets
///
/// A round-start setup preset, such as which antagonists to spawn.
///
- [Prototype("gamePreset")]
+ [Prototype]
public sealed partial class GamePresetPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Server/GameTicking/Prototypes/LobbyBackgroundPrototype.cs b/Content.Server/GameTicking/Prototypes/LobbyBackgroundPrototype.cs
index 4370c22b7f..5201fb389a 100644
--- a/Content.Server/GameTicking/Prototypes/LobbyBackgroundPrototype.cs
+++ b/Content.Server/GameTicking/Prototypes/LobbyBackgroundPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Server.GameTicking.Prototypes;
///
/// Prototype for a lobby background the game can choose.
///
-[Prototype("lobbyBackground")]
+[Prototype]
public sealed partial class LobbyBackgroundPrototype : IPrototype
{
///
diff --git a/Content.Server/Ghost/Roles/Raffles/GhostRoleRaffleDeciderPrototype.cs b/Content.Server/Ghost/Roles/Raffles/GhostRoleRaffleDeciderPrototype.cs
index e7b0c8326a..73edb6dd85 100644
--- a/Content.Server/Ghost/Roles/Raffles/GhostRoleRaffleDeciderPrototype.cs
+++ b/Content.Server/Ghost/Roles/Raffles/GhostRoleRaffleDeciderPrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Server.Ghost.Roles.Raffles;
///
/// Allows getting a as prototype.
///
-[Prototype("ghostRoleRaffleDecider")]
+[Prototype]
public sealed partial class GhostRoleRaffleDeciderPrototype : IPrototype
{
///
diff --git a/Content.Server/Holiday/HolidayPrototype.cs b/Content.Server/Holiday/HolidayPrototype.cs
index 749423402b..758e09ca02 100644
--- a/Content.Server/Holiday/HolidayPrototype.cs
+++ b/Content.Server/Holiday/HolidayPrototype.cs
@@ -5,7 +5,7 @@ using Robust.Shared.Prototypes;
namespace Content.Server.Holiday
{
- [Prototype("holiday")]
+ [Prototype]
public sealed partial class HolidayPrototype : IPrototype
{
[DataField("name")] public string Name { get; private set; } = string.Empty;
diff --git a/Content.Server/Maps/GameMapPoolPrototype.cs b/Content.Server/Maps/GameMapPoolPrototype.cs
index 7f45314b7a..b2ba64a50c 100644
--- a/Content.Server/Maps/GameMapPoolPrototype.cs
+++ b/Content.Server/Maps/GameMapPoolPrototype.cs
@@ -7,7 +7,7 @@ namespace Content.Server.Maps;
///
/// Prototype that holds a pool of maps that can be indexed based on the map pool CCVar.
///
-[Prototype("gameMapPool"), PublicAPI]
+[Prototype, PublicAPI]
public sealed partial class GameMapPoolPrototype : IPrototype
{
///
diff --git a/Content.Server/Maps/GameMapPrototype.cs b/Content.Server/Maps/GameMapPrototype.cs
index c39ca348da..f0f40fe06d 100644
--- a/Content.Server/Maps/GameMapPrototype.cs
+++ b/Content.Server/Maps/GameMapPrototype.cs
@@ -14,7 +14,7 @@ namespace Content.Server.Maps;
/// Forks should not directly edit existing parts of this class.
/// Make a new partial for your fancy new feature, it'll save you time later.
///
-[Prototype("gameMap"), PublicAPI]
+[Prototype, PublicAPI]
[DebuggerDisplay("GameMapPrototype [{ID} - {MapName}]")]
public sealed partial class GameMapPrototype : IPrototype
{
diff --git a/Content.Server/NPC/Queries/Curves/UtilityCurvePresetPrototype.cs b/Content.Server/NPC/Queries/Curves/UtilityCurvePresetPrototype.cs
index 3116dede93..526b11bd1a 100644
--- a/Content.Server/NPC/Queries/Curves/UtilityCurvePresetPrototype.cs
+++ b/Content.Server/NPC/Queries/Curves/UtilityCurvePresetPrototype.cs
@@ -2,7 +2,7 @@ using Robust.Shared.Prototypes;
namespace Content.Server.NPC.Queries.Curves;
-[Prototype("utilityCurvePreset")]
+[Prototype]
public sealed partial class UtilityCurvePresetPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = string.Empty;
diff --git a/Content.Server/NPC/Queries/UtilityQueryPrototype.cs b/Content.Server/NPC/Queries/UtilityQueryPrototype.cs
index 76750dbe9b..082c605179 100644
--- a/Content.Server/NPC/Queries/UtilityQueryPrototype.cs
+++ b/Content.Server/NPC/Queries/UtilityQueryPrototype.cs
@@ -9,7 +9,7 @@ namespace Content.Server.NPC.Queries;
/// Each query is run in turn to get the final available results.
/// These results are then run through the considerations.
///
-[Prototype("utilityQuery")]
+[Prototype]
public sealed partial class UtilityQueryPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Server/Wires/WireLayout.cs b/Content.Server/Wires/WireLayout.cs
index 7ca4faaeca..2df5a9919f 100644
--- a/Content.Server/Wires/WireLayout.cs
+++ b/Content.Server/Wires/WireLayout.cs
@@ -10,7 +10,7 @@ namespace Content.Server.Wires;
/// wires. Once one of these is initialized, it should be stored in the
/// WiresSystem as a functional wire set.
///
-[Prototype("wireLayout")]
+[Prototype]
public sealed partial class WireLayoutPrototype : IPrototype, IInheritingPrototype
{
[IdDataField]
diff --git a/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs b/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs
index deb39de99e..98ba2d5b31 100644
--- a/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs
+++ b/Content.Server/Worldgen/Prototypes/NoiseChannelPrototype.cs
@@ -79,7 +79,7 @@ public class NoiseChannelConfig
public float Minimum { get; private set; }
}
-[Prototype("noiseChannel")]
+[Prototype]
public sealed partial class NoiseChannelPrototype : NoiseChannelConfig, IPrototype, IInheritingPrototype
{
///
diff --git a/Content.Server/Worldgen/Prototypes/WorldgenConfigPrototype.cs b/Content.Server/Worldgen/Prototypes/WorldgenConfigPrototype.cs
index f669377abb..c9107fa2bd 100644
--- a/Content.Server/Worldgen/Prototypes/WorldgenConfigPrototype.cs
+++ b/Content.Server/Worldgen/Prototypes/WorldgenConfigPrototype.cs
@@ -7,7 +7,7 @@ namespace Content.Server.Worldgen.Prototypes;
/// This is a prototype for controlling overall world generation.
/// The components included are applied to the map that world generation is configured on.
///
-[Prototype("worldgenConfig")]
+[Prototype]
public sealed partial class WorldgenConfigPrototype : IPrototype
{
///
diff --git a/Content.Shared/Access/AccessGroupPrototype.cs b/Content.Shared/Access/AccessGroupPrototype.cs
index 323fdb91ed..ca73aa3dd0 100644
--- a/Content.Shared/Access/AccessGroupPrototype.cs
+++ b/Content.Shared/Access/AccessGroupPrototype.cs
@@ -8,7 +8,7 @@ namespace Content.Shared.Access;
/// Contains a list of access tags that are part of this group.
/// Used by to avoid boilerplate.
///
-[Prototype("accessGroup")]
+[Prototype]
public sealed partial class AccessGroupPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Access/AccessLevelPrototype.cs b/Content.Shared/Access/AccessLevelPrototype.cs
index f44ad64228..2a94b263f5 100644
--- a/Content.Shared/Access/AccessLevelPrototype.cs
+++ b/Content.Shared/Access/AccessLevelPrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Shared.Access
///
/// Defines a single access level that can be stored on ID cards and checked for.
///
- [Prototype("accessLevel")]
+ [Prototype]
public sealed partial class AccessLevelPrototype : IPrototype
{
[ViewVariables]
diff --git a/Content.Shared/Atmos/Prototypes/GasPrototype.cs b/Content.Shared/Atmos/Prototypes/GasPrototype.cs
index dd474f424d..6a2d407820 100644
--- a/Content.Shared/Atmos/Prototypes/GasPrototype.cs
+++ b/Content.Shared/Atmos/Prototypes/GasPrototype.cs
@@ -4,7 +4,7 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototy
namespace Content.Shared.Atmos.Prototypes
{
- [Prototype("gas")]
+ [Prototype]
public sealed partial class GasPrototype : IPrototype
{
[DataField("name")] public string Name { get; set; } = "";
diff --git a/Content.Shared/Audio/AmbientMusicPrototype.cs b/Content.Shared/Audio/AmbientMusicPrototype.cs
index e98f324a06..f5a1d895bf 100644
--- a/Content.Shared/Audio/AmbientMusicPrototype.cs
+++ b/Content.Shared/Audio/AmbientMusicPrototype.cs
@@ -9,7 +9,7 @@ namespace Content.Shared.Audio;
///
/// Attaches a rules prototype to sound files to play ambience.
///
-[Prototype("ambientMusic")]
+[Prototype]
public sealed partial class AmbientMusicPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = string.Empty;
diff --git a/Content.Shared/Body/Prototypes/BodyPrototype.cs b/Content.Shared/Body/Prototypes/BodyPrototype.cs
index 646acaaf6b..45ad6df0e4 100644
--- a/Content.Shared/Body/Prototypes/BodyPrototype.cs
+++ b/Content.Shared/Body/Prototypes/BodyPrototype.cs
@@ -2,7 +2,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Body.Prototypes;
-[Prototype("body")]
+[Prototype]
public sealed partial class BodyPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Body/Prototypes/MetabolismGroupPrototype.cs b/Content.Shared/Body/Prototypes/MetabolismGroupPrototype.cs
index 82f4e70ce0..f8e05d89c0 100644
--- a/Content.Shared/Body/Prototypes/MetabolismGroupPrototype.cs
+++ b/Content.Shared/Body/Prototypes/MetabolismGroupPrototype.cs
@@ -2,7 +2,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Body.Prototypes
{
- [Prototype("metabolismGroup")]
+ [Prototype]
public sealed partial class MetabolismGroupPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Body/Prototypes/MetabolizerTypePrototype.cs b/Content.Shared/Body/Prototypes/MetabolizerTypePrototype.cs
index 5273ac722b..8c932af677 100644
--- a/Content.Shared/Body/Prototypes/MetabolizerTypePrototype.cs
+++ b/Content.Shared/Body/Prototypes/MetabolizerTypePrototype.cs
@@ -2,7 +2,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Body.Prototypes
{
- [Prototype("metabolizerType")]
+ [Prototype]
public sealed partial class MetabolizerTypePrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Chat/Prototypes/AutoEmotePrototype.cs b/Content.Shared/Chat/Prototypes/AutoEmotePrototype.cs
index ba818efb4d..e6fdae4cf1 100644
--- a/Content.Shared/Chat/Prototypes/AutoEmotePrototype.cs
+++ b/Content.Shared/Chat/Prototypes/AutoEmotePrototype.cs
@@ -3,7 +3,7 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototy
namespace Content.Shared.Chat.Prototypes;
-[Prototype("autoEmote")]
+[Prototype]
public sealed partial class AutoEmotePrototype : IPrototype
{
///
diff --git a/Content.Shared/Chat/Prototypes/EmotePrototype.cs b/Content.Shared/Chat/Prototypes/EmotePrototype.cs
index 7ee958ee6a..b209fa7ddb 100644
--- a/Content.Shared/Chat/Prototypes/EmotePrototype.cs
+++ b/Content.Shared/Chat/Prototypes/EmotePrototype.cs
@@ -9,7 +9,7 @@ namespace Content.Shared.Chat.Prototypes;
/// IC emotes (scream, smile, clapping, etc).
/// Entities can activate emotes by chat input, radial or code.
///
-[Prototype("emote")]
+[Prototype]
public sealed partial class EmotePrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Chat/Prototypes/EmoteSoundsPrototype.cs b/Content.Shared/Chat/Prototypes/EmoteSoundsPrototype.cs
index 688d46112e..73a3ba0bbf 100644
--- a/Content.Shared/Chat/Prototypes/EmoteSoundsPrototype.cs
+++ b/Content.Shared/Chat/Prototypes/EmoteSoundsPrototype.cs
@@ -9,7 +9,7 @@ namespace Content.Shared.Chat.Prototypes;
/// Sounds collection for each .
/// Different entities may use different sounds collections.
///
-[Prototype("emoteSounds"), Serializable, NetSerializable]
+[Prototype, Serializable, NetSerializable]
public sealed partial class EmoteSoundsPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Chat/TypingIndicator/TypingIndicatorPrototype.cs b/Content.Shared/Chat/TypingIndicator/TypingIndicatorPrototype.cs
index 63008c6e08..fbd647d035 100644
--- a/Content.Shared/Chat/TypingIndicator/TypingIndicatorPrototype.cs
+++ b/Content.Shared/Chat/TypingIndicator/TypingIndicatorPrototype.cs
@@ -7,7 +7,7 @@ namespace Content.Shared.Chat.TypingIndicator;
///
/// Prototype to store chat typing indicator visuals.
///
-[Prototype("typingIndicator")]
+[Prototype]
public sealed partial class TypingIndicatorPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Chemistry/Dispenser/ReagentDispenserInventoryPrototype.cs b/Content.Shared/Chemistry/Dispenser/ReagentDispenserInventoryPrototype.cs
index 13a751b88e..7d1399abd9 100644
--- a/Content.Shared/Chemistry/Dispenser/ReagentDispenserInventoryPrototype.cs
+++ b/Content.Shared/Chemistry/Dispenser/ReagentDispenserInventoryPrototype.cs
@@ -11,7 +11,7 @@ namespace Content.Shared.Chemistry.Dispenser
/// to define which reagents it's able to dispense. Based off of how vending
/// machines define their inventory.
///
- [Serializable, NetSerializable, Prototype("reagentDispenserInventory")]
+ [Serializable, NetSerializable, Prototype]
public sealed partial class ReagentDispenserInventoryPrototype : IPrototype
{
[DataField("inventory", customTypeSerializer: typeof(PrototypeIdListSerializer))]
diff --git a/Content.Shared/Chemistry/Reaction/MixingCategoryPrototype.cs b/Content.Shared/Chemistry/Reaction/MixingCategoryPrototype.cs
index f5dcdf44ab..639d088d14 100644
--- a/Content.Shared/Chemistry/Reaction/MixingCategoryPrototype.cs
+++ b/Content.Shared/Chemistry/Reaction/MixingCategoryPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.Chemistry.Reaction;
///
/// This is a prototype for a method of chemical mixing, to be used by
///
-[Prototype("mixingCategory")]
+[Prototype]
public sealed partial class MixingCategoryPrototype : IPrototype
{
///
diff --git a/Content.Shared/Chemistry/Reaction/ReactionPrototype.cs b/Content.Shared/Chemistry/Reaction/ReactionPrototype.cs
index 351aa50b0f..92559e4874 100644
--- a/Content.Shared/Chemistry/Reaction/ReactionPrototype.cs
+++ b/Content.Shared/Chemistry/Reaction/ReactionPrototype.cs
@@ -11,7 +11,7 @@ namespace Content.Shared.Chemistry.Reaction
///
/// Prototype for chemical reaction definitions
///
- [Prototype("reaction")]
+ [Prototype]
public sealed partial class ReactionPrototype : IPrototype, IComparable
{
[ViewVariables]
diff --git a/Content.Shared/Chemistry/Reaction/ReactiveGroupPrototype.cs b/Content.Shared/Chemistry/Reaction/ReactiveGroupPrototype.cs
index 906c01467c..37d9b0decd 100644
--- a/Content.Shared/Chemistry/Reaction/ReactiveGroupPrototype.cs
+++ b/Content.Shared/Chemistry/Reaction/ReactiveGroupPrototype.cs
@@ -2,7 +2,7 @@
namespace Content.Shared.Chemistry.Reaction;
-[Prototype("reactiveGroup")]
+[Prototype]
public sealed partial class ReactiveGroupPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs b/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs
index dba2ba03a3..84cdb47494 100644
--- a/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs
+++ b/Content.Shared/Chemistry/Reagent/ReagentPrototype.cs
@@ -20,7 +20,7 @@ using Robust.Shared.Utility;
namespace Content.Shared.Chemistry.Reagent
{
- [Prototype("reagent")]
+ [Prototype]
[DataDefinition]
public sealed partial class ReagentPrototype : IPrototype, IInheritingPrototype
{
diff --git a/Content.Shared/Communications/CommsHackerComponent.cs b/Content.Shared/Communications/CommsHackerComponent.cs
index b199e64d7e..2e8752d770 100644
--- a/Content.Shared/Communications/CommsHackerComponent.cs
+++ b/Content.Shared/Communications/CommsHackerComponent.cs
@@ -29,7 +29,7 @@ public sealed partial class CommsHackerComponent : Component
/// Generally some kind of mid-round minor antag, though you could make it call in scrubber backflow if you wanted to.
/// You wouldn't do that, right?
///
-[Prototype("ninjaHackingThreat")]
+[Prototype]
public sealed partial class NinjaHackingThreatPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Construction/Prototypes/ConstructionGraphPrototype.cs b/Content.Shared/Construction/Prototypes/ConstructionGraphPrototype.cs
index 7ac02371eb..0f77130270 100644
--- a/Content.Shared/Construction/Prototypes/ConstructionGraphPrototype.cs
+++ b/Content.Shared/Construction/Prototypes/ConstructionGraphPrototype.cs
@@ -5,7 +5,7 @@ using Robust.Shared.Serialization;
namespace Content.Shared.Construction.Prototypes
{
- [Prototype("constructionGraph")]
+ [Prototype]
public sealed partial class ConstructionGraphPrototype : IPrototype, ISerializationHooks
{
private readonly Dictionary _nodes = new();
diff --git a/Content.Shared/Construction/Prototypes/ConstructionPrototype.cs b/Content.Shared/Construction/Prototypes/ConstructionPrototype.cs
index a97b045cd8..ec5d2cc9da 100644
--- a/Content.Shared/Construction/Prototypes/ConstructionPrototype.cs
+++ b/Content.Shared/Construction/Prototypes/ConstructionPrototype.cs
@@ -6,7 +6,7 @@ using Robust.Shared.Utility;
namespace Content.Shared.Construction.Prototypes;
-[Prototype("construction")]
+[Prototype]
public sealed partial class ConstructionPrototype : IPrototype
{
[DataField("conditions")] private List _conditions = new();
diff --git a/Content.Shared/Damage/Prototypes/DamageContainerPrototype.cs b/Content.Shared/Damage/Prototypes/DamageContainerPrototype.cs
index a77bf992c8..836978dd03 100644
--- a/Content.Shared/Damage/Prototypes/DamageContainerPrototype.cs
+++ b/Content.Shared/Damage/Prototypes/DamageContainerPrototype.cs
@@ -12,7 +12,7 @@ namespace Content.Shared.Damage.Prototypes
/// and damage groups. Currently this is only used to specify what damage types a should support.
///
- [Prototype("damageContainer")]
+ [Prototype]
[Serializable, NetSerializable]
public sealed partial class DamageContainerPrototype : IPrototype
{
diff --git a/Content.Shared/Damage/Prototypes/DamageGroupPrototype.cs b/Content.Shared/Damage/Prototypes/DamageGroupPrototype.cs
index 3bd840e9ce..6df2138cd4 100644
--- a/Content.Shared/Damage/Prototypes/DamageGroupPrototype.cs
+++ b/Content.Shared/Damage/Prototypes/DamageGroupPrototype.cs
@@ -11,7 +11,7 @@ namespace Content.Shared.Damage.Prototypes
/// These groups can be used to specify supported damage types of a , or
/// to change/get/set damage in a .
///
- [Prototype("damageGroup", 2)]
+ [Prototype(2)]
[Serializable, NetSerializable]
public sealed partial class DamageGroupPrototype : IPrototype
{
diff --git a/Content.Shared/Damage/Prototypes/DamageModifierSetPrototype.cs b/Content.Shared/Damage/Prototypes/DamageModifierSetPrototype.cs
index a50856b044..fa94f00065 100644
--- a/Content.Shared/Damage/Prototypes/DamageModifierSetPrototype.cs
+++ b/Content.Shared/Damage/Prototypes/DamageModifierSetPrototype.cs
@@ -9,7 +9,7 @@ namespace Content.Shared.Damage.Prototypes
/// Done to avoid removing the 'required' tag on the ID and passing around a 'prototype' when we really
/// just want normal data to be deserialized.
///
- [Prototype("damageModifierSet")]
+ [Prototype]
public sealed partial class DamageModifierSetPrototype : DamageModifierSet, IPrototype
{
[ViewVariables]
diff --git a/Content.Shared/Damage/Prototypes/DamageTypePrototype.cs b/Content.Shared/Damage/Prototypes/DamageTypePrototype.cs
index a1ae23ef67..5afae2368e 100644
--- a/Content.Shared/Damage/Prototypes/DamageTypePrototype.cs
+++ b/Content.Shared/Damage/Prototypes/DamageTypePrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Shared.Damage.Prototypes
///
/// A single damage type. These types are grouped together in s.
///
- [Prototype("damageType")]
+ [Prototype]
public sealed partial class DamageTypePrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Damage/Prototypes/ExaminableDamagePrototype.cs b/Content.Shared/Damage/Prototypes/ExaminableDamagePrototype.cs
index 563834b372..4d28412334 100644
--- a/Content.Shared/Damage/Prototypes/ExaminableDamagePrototype.cs
+++ b/Content.Shared/Damage/Prototypes/ExaminableDamagePrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Shared.Damage.Prototypes;
///
/// Prototype for examinable damage messages.
///
-[Prototype("examinableDamage")]
+[Prototype]
public sealed partial class ExaminableDamagePrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Dataset/DatasetPrototype.cs b/Content.Shared/Dataset/DatasetPrototype.cs
index 08ae380bc5..b022be2be4 100644
--- a/Content.Shared/Dataset/DatasetPrototype.cs
+++ b/Content.Shared/Dataset/DatasetPrototype.cs
@@ -2,7 +2,7 @@
namespace Content.Shared.Dataset
{
- [Prototype("dataset")]
+ [Prototype]
public sealed partial class DatasetPrototype : IPrototype
{
[ViewVariables]
diff --git a/Content.Shared/Decals/DecalPrototype.cs b/Content.Shared/Decals/DecalPrototype.cs
index b2fcb28e71..e32f46d12a 100644
--- a/Content.Shared/Decals/DecalPrototype.cs
+++ b/Content.Shared/Decals/DecalPrototype.cs
@@ -4,7 +4,7 @@ using Robust.Shared.Utility;
namespace Content.Shared.Decals
{
- [Prototype("decal")]
+ [Prototype]
public sealed partial class DecalPrototype : IPrototype, IInheritingPrototype
{
[IdDataField] public string ID { get; private set; } = null!;
diff --git a/Content.Shared/DeviceLinking/DevicePortPrototype.cs b/Content.Shared/DeviceLinking/DevicePortPrototype.cs
index e3421dda9d..d01f4d6d2a 100644
--- a/Content.Shared/DeviceLinking/DevicePortPrototype.cs
+++ b/Content.Shared/DeviceLinking/DevicePortPrototype.cs
@@ -27,13 +27,13 @@ public abstract class DevicePortPrototype
public string Description = default!;
}
-[Prototype("sinkPort")]
+[Prototype]
[Serializable, NetSerializable]
public sealed partial class SinkPortPrototype : DevicePortPrototype, IPrototype
{
}
-[Prototype("sourcePort")]
+[Prototype]
[Serializable, NetSerializable]
public sealed partial class SourcePortPrototype : DevicePortPrototype, IPrototype
{
diff --git a/Content.Shared/DeviceNetwork/DeviceFrequencyPrototype.cs b/Content.Shared/DeviceNetwork/DeviceFrequencyPrototype.cs
index b34d5b67a8..19ccb5e2fe 100644
--- a/Content.Shared/DeviceNetwork/DeviceFrequencyPrototype.cs
+++ b/Content.Shared/DeviceNetwork/DeviceFrequencyPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.DeviceNetwork;
///
/// A named device network frequency. Useful for ensuring entity prototypes can communicate with each other.
///
-[Prototype("deviceFrequency")]
+[Prototype]
[Serializable, NetSerializable]
public sealed partial class DeviceFrequencyPrototype : IPrototype
{
diff --git a/Content.Shared/EntityList/EntityListPrototype.cs b/Content.Shared/EntityList/EntityListPrototype.cs
index 241712eff7..0248e2100c 100644
--- a/Content.Shared/EntityList/EntityListPrototype.cs
+++ b/Content.Shared/EntityList/EntityListPrototype.cs
@@ -4,7 +4,7 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototy
namespace Content.Shared.EntityList
{
- [Prototype("entityList")]
+ [Prototype]
public sealed partial class EntityListPrototype : IPrototype
{
[ViewVariables]
diff --git a/Content.Shared/EntityList/EntityLootTablePrototype.cs b/Content.Shared/EntityList/EntityLootTablePrototype.cs
index 418a584af5..0c1f77afdc 100644
--- a/Content.Shared/EntityList/EntityLootTablePrototype.cs
+++ b/Content.Shared/EntityList/EntityLootTablePrototype.cs
@@ -5,7 +5,7 @@ using Robust.Shared.Random;
namespace Content.Shared.EntityList;
-[Prototype("entityLootTable")]
+[Prototype]
public sealed partial class EntityLootTablePrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Explosion/ExplosionPrototype.cs b/Content.Shared/Explosion/ExplosionPrototype.cs
index df2fb18360..192dfee1a1 100644
--- a/Content.Shared/Explosion/ExplosionPrototype.cs
+++ b/Content.Shared/Explosion/ExplosionPrototype.cs
@@ -13,7 +13,7 @@ namespace Content.Shared.Explosion;
/// entities is evaluated and stored by the explosion system. Adding or removing a prototype would require updating
/// that map of airtight entities. This could be done, but is just not yet implemented.
///
-[Prototype("explosion")]
+[Prototype]
public sealed partial class ExplosionPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Ghost/Roles/Raffles/GhostRoleRaffleSettingsPrototype.cs b/Content.Shared/Ghost/Roles/Raffles/GhostRoleRaffleSettingsPrototype.cs
index 6565fcd212..2c6e7229d7 100644
--- a/Content.Shared/Ghost/Roles/Raffles/GhostRoleRaffleSettingsPrototype.cs
+++ b/Content.Shared/Ghost/Roles/Raffles/GhostRoleRaffleSettingsPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.Ghost.Roles.Raffles;
///
/// Allows specifying the settings for a ghost role raffle as a prototype.
///
-[Prototype("ghostRoleRaffleSettings")]
+[Prototype]
public sealed partial class GhostRoleRaffleSettingsPrototype : IPrototype
{
///
diff --git a/Content.Shared/GridPreloader/Prototypes/PreloadedGridPrototype.cs b/Content.Shared/GridPreloader/Prototypes/PreloadedGridPrototype.cs
index af42672897..3c14dd5bb9 100644
--- a/Content.Shared/GridPreloader/Prototypes/PreloadedGridPrototype.cs
+++ b/Content.Shared/GridPreloader/Prototypes/PreloadedGridPrototype.cs
@@ -8,7 +8,7 @@ namespace Content.Shared.GridPreloader.Prototypes;
/// and allow the GridPreloader system to load them in the middle of the round. This is needed for optimization,
/// because loading grids in the middle of a round causes the server to lag.
///
-[Prototype("preloadedGrid")]
+[Prototype]
public sealed partial class PreloadedGridPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = string.Empty;
diff --git a/Content.Shared/Guidebook/GuideEntry.cs b/Content.Shared/Guidebook/GuideEntry.cs
index c6079aab08..fdbdd50288 100644
--- a/Content.Shared/Guidebook/GuideEntry.cs
+++ b/Content.Shared/Guidebook/GuideEntry.cs
@@ -3,7 +3,7 @@ using Robust.Shared.Utility;
namespace Content.Shared.Guidebook;
-[Prototype("guideEntry")]
+[Prototype]
public sealed partial class GuideEntryPrototype : GuideEntry, IPrototype
{
public string ID => Id;
diff --git a/Content.Shared/HUD/HudThemePrototype.cs b/Content.Shared/HUD/HudThemePrototype.cs
index 22fc8a8e71..17898eb756 100644
--- a/Content.Shared/HUD/HudThemePrototype.cs
+++ b/Content.Shared/HUD/HudThemePrototype.cs
@@ -2,7 +2,7 @@
namespace Content.Shared.HUD
{
- [Prototype("hudTheme")]
+ [Prototype]
public sealed partial class HudThemePrototype : IPrototype, IComparable
{
[DataField("name", required: true)]
diff --git a/Content.Shared/Humanoid/Markings/MarkingPoints.cs b/Content.Shared/Humanoid/Markings/MarkingPoints.cs
index c83eb17fda..a5bcca9706 100644
--- a/Content.Shared/Humanoid/Markings/MarkingPoints.cs
+++ b/Content.Shared/Humanoid/Markings/MarkingPoints.cs
@@ -34,7 +34,7 @@ public sealed partial class MarkingPoints
}
}
-[Prototype("markingPoints")]
+[Prototype]
public sealed partial class MarkingPointsPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Humanoid/Markings/MarkingPrototype.cs b/Content.Shared/Humanoid/Markings/MarkingPrototype.cs
index dfb594db5f..ead061dd39 100644
--- a/Content.Shared/Humanoid/Markings/MarkingPrototype.cs
+++ b/Content.Shared/Humanoid/Markings/MarkingPrototype.cs
@@ -3,7 +3,7 @@ using Robust.Shared.Utility;
namespace Content.Shared.Humanoid.Markings
{
- [Prototype("marking")]
+ [Prototype]
public sealed partial class MarkingPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Humanoid/Prototypes/HumanoidProfilePrototype.cs b/Content.Shared/Humanoid/Prototypes/HumanoidProfilePrototype.cs
index bd023e2d21..6edb2aed0c 100644
--- a/Content.Shared/Humanoid/Prototypes/HumanoidProfilePrototype.cs
+++ b/Content.Shared/Humanoid/Prototypes/HumanoidProfilePrototype.cs
@@ -3,7 +3,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Humanoid.Prototypes;
-[Prototype("humanoidProfile")]
+[Prototype]
public sealed partial class HumanoidProfilePrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Humanoid/Prototypes/RandomHumanoidSettingsPrototype.cs b/Content.Shared/Humanoid/Prototypes/RandomHumanoidSettingsPrototype.cs
index add8b6389e..e31289db1e 100644
--- a/Content.Shared/Humanoid/Prototypes/RandomHumanoidSettingsPrototype.cs
+++ b/Content.Shared/Humanoid/Prototypes/RandomHumanoidSettingsPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.Humanoid.Prototypes;
///
/// This is what is used to change a humanoid spawned by RandomHumanoidSystem in Content.Server.
///
-[Prototype("randomHumanoidSettings")]
+[Prototype]
public sealed partial class RandomHumanoidSettingsPrototype : IPrototype, IInheritingPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs
index c1c634a72d..b9c7bcd511 100644
--- a/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs
+++ b/Content.Shared/Humanoid/Prototypes/SpeciesPrototype.cs
@@ -3,7 +3,7 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototy
namespace Content.Shared.Humanoid.Prototypes;
-[Prototype("species")]
+[Prototype]
public sealed partial class SpeciesPrototype : IPrototype
{
///
diff --git a/Content.Shared/Inventory/InventoryTemplatePrototype.cs b/Content.Shared/Inventory/InventoryTemplatePrototype.cs
index aafb3139d2..10874ac109 100644
--- a/Content.Shared/Inventory/InventoryTemplatePrototype.cs
+++ b/Content.Shared/Inventory/InventoryTemplatePrototype.cs
@@ -5,7 +5,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Inventory;
-[Prototype("inventoryTemplate")]
+[Prototype]
public sealed partial class InventoryTemplatePrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = string.Empty;
diff --git a/Content.Shared/Item/ItemSizePrototype.cs b/Content.Shared/Item/ItemSizePrototype.cs
index 2a0ccd29d2..800428ad6c 100644
--- a/Content.Shared/Item/ItemSizePrototype.cs
+++ b/Content.Shared/Item/ItemSizePrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Shared.Item;
///
/// This is a prototype for a category of an item's size.
///
-[Prototype("itemSize")]
+[Prototype]
public sealed partial class ItemSizePrototype : IPrototype, IComparable
{
///
diff --git a/Content.Shared/Materials/MaterialPrototype.cs b/Content.Shared/Materials/MaterialPrototype.cs
index d1ef82539b..7eb17beada 100644
--- a/Content.Shared/Materials/MaterialPrototype.cs
+++ b/Content.Shared/Materials/MaterialPrototype.cs
@@ -8,7 +8,7 @@ namespace Content.Shared.Materials
/// Materials are read-only storage for the properties of specific materials.
/// Properties should be intrinsic (or at least as much is necessary for game purposes).
///
- [Prototype("material")]
+ [Prototype]
public sealed partial class MaterialPrototype : IPrototype, IInheritingPrototype
{
[ViewVariables]
diff --git a/Content.Shared/NPC/Prototypes/NpcFactionPrototype.cs b/Content.Shared/NPC/Prototypes/NpcFactionPrototype.cs
index 1dcdd751c8..e9c0a70155 100644
--- a/Content.Shared/NPC/Prototypes/NpcFactionPrototype.cs
+++ b/Content.Shared/NPC/Prototypes/NpcFactionPrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Shared.NPC.Prototypes;
///
/// Contains data about this faction's relations with other factions.
///
-[Prototype("npcFaction")]
+[Prototype]
public sealed partial class NpcFactionPrototype : IPrototype
{
[ViewVariables]
diff --git a/Content.Shared/NameIdentifier/NameIdentifierGroupPrototype.cs b/Content.Shared/NameIdentifier/NameIdentifierGroupPrototype.cs
index 25c5616bad..e3dceca489 100644
--- a/Content.Shared/NameIdentifier/NameIdentifierGroupPrototype.cs
+++ b/Content.Shared/NameIdentifier/NameIdentifierGroupPrototype.cs
@@ -2,7 +2,7 @@
namespace Content.Shared.NameIdentifier;
-[Prototype("nameIdentifierGroup")]
+[Prototype]
public sealed partial class NameIdentifierGroupPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Nutrition/Flavor.cs b/Content.Shared/Nutrition/Flavor.cs
index cb77ae7271..5d70af8bab 100644
--- a/Content.Shared/Nutrition/Flavor.cs
+++ b/Content.Shared/Nutrition/Flavor.cs
@@ -2,7 +2,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Nutrition;
-[Prototype("flavor")]
+[Prototype]
public sealed partial class FlavorPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Nutrition/Prototypes/FoodSequenceElementPrototype.cs b/Content.Shared/Nutrition/Prototypes/FoodSequenceElementPrototype.cs
index 931d8a3532..f21dfefcea 100644
--- a/Content.Shared/Nutrition/Prototypes/FoodSequenceElementPrototype.cs
+++ b/Content.Shared/Nutrition/Prototypes/FoodSequenceElementPrototype.cs
@@ -8,7 +8,7 @@ namespace Content.Shared.Nutrition.Prototypes;
///
/// Unique data storage block for different FoodSequence layers
///
-[Prototype("foodSequenceElement")]
+[Prototype]
public sealed partial class FoodSequenceElementPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Objectives/Prototypes/StealTargetGroupPrototype.cs b/Content.Shared/Objectives/Prototypes/StealTargetGroupPrototype.cs
index bc2af0eb09..4be0a71f97 100644
--- a/Content.Shared/Objectives/Prototypes/StealTargetGroupPrototype.cs
+++ b/Content.Shared/Objectives/Prototypes/StealTargetGroupPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.Objectives;
///
/// General data about a group of items, such as icon, description, name. Used for Steal objective
///
-[Prototype("stealTargetGroup")]
+[Prototype]
public sealed partial class StealTargetGroupPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Parallax/Biomes/BiomeTemplatePrototype.cs b/Content.Shared/Parallax/Biomes/BiomeTemplatePrototype.cs
index 691d0b81cc..437ead63a7 100644
--- a/Content.Shared/Parallax/Biomes/BiomeTemplatePrototype.cs
+++ b/Content.Shared/Parallax/Biomes/BiomeTemplatePrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.Parallax.Biomes;
///
/// A preset group of biome layers to be used for a
///
-[Prototype("biomeTemplate")]
+[Prototype]
public sealed partial class BiomeTemplatePrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Parallax/Biomes/Markers/BiomeMarkerLayerPrototype.cs b/Content.Shared/Parallax/Biomes/Markers/BiomeMarkerLayerPrototype.cs
index ebbbb3123c..fbc3a04eb4 100644
--- a/Content.Shared/Parallax/Biomes/Markers/BiomeMarkerLayerPrototype.cs
+++ b/Content.Shared/Parallax/Biomes/Markers/BiomeMarkerLayerPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.Parallax.Biomes.Markers;
///
/// Spawns entities inside of the specified area with the minimum specified radius.
///
-[Prototype("biomeMarkerLayer")]
+[Prototype]
public sealed partial class BiomeMarkerLayerPrototype : IBiomeMarkerLayer
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Players/PlayTimeTracking/PlayTimeTrackerPrototype.cs b/Content.Shared/Players/PlayTimeTracking/PlayTimeTrackerPrototype.cs
index 12d79b5a1d..5ffee9ffe5 100644
--- a/Content.Shared/Players/PlayTimeTracking/PlayTimeTrackerPrototype.cs
+++ b/Content.Shared/Players/PlayTimeTracking/PlayTimeTrackerPrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Shared.Players.PlayTimeTracking;
///
/// Given to a role to specify its ID for role-timer tracking purposes. That's it.
///
-[Prototype("playTimeTracker")]
+[Prototype]
public sealed partial class PlayTimeTrackerPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Preferences/Loadouts/LoadoutGroupPrototype.cs b/Content.Shared/Preferences/Loadouts/LoadoutGroupPrototype.cs
index 946d218cbc..990f1b74a2 100644
--- a/Content.Shared/Preferences/Loadouts/LoadoutGroupPrototype.cs
+++ b/Content.Shared/Preferences/Loadouts/LoadoutGroupPrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Shared.Preferences.Loadouts;
///
/// Corresponds to a set of loadouts for a particular slot.
///
-[Prototype("loadoutGroup")]
+[Prototype]
public sealed partial class LoadoutGroupPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Procedural/DungeonPresetPrototype.cs b/Content.Shared/Procedural/DungeonPresetPrototype.cs
index e57c4c1d2b..ad56104a6c 100644
--- a/Content.Shared/Procedural/DungeonPresetPrototype.cs
+++ b/Content.Shared/Procedural/DungeonPresetPrototype.cs
@@ -2,7 +2,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Procedural;
-[Prototype("dungeonPreset")]
+[Prototype]
public sealed partial class DungeonPresetPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Procedural/DungeonRoomPackPrototype.cs b/Content.Shared/Procedural/DungeonRoomPackPrototype.cs
index 8cd129d30a..de83b88b76 100644
--- a/Content.Shared/Procedural/DungeonRoomPackPrototype.cs
+++ b/Content.Shared/Procedural/DungeonRoomPackPrototype.cs
@@ -2,7 +2,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Procedural;
-[Prototype("dungeonRoomPack")]
+[Prototype]
public sealed partial class DungeonRoomPackPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Procedural/DungeonRoomPrototype.cs b/Content.Shared/Procedural/DungeonRoomPrototype.cs
index 6636ac34b9..c32d43f6e5 100644
--- a/Content.Shared/Procedural/DungeonRoomPrototype.cs
+++ b/Content.Shared/Procedural/DungeonRoomPrototype.cs
@@ -5,7 +5,7 @@ using Robust.Shared.Utility;
namespace Content.Shared.Procedural;
-[Prototype("dungeonRoom")]
+[Prototype]
public sealed partial class DungeonRoomPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = string.Empty;
diff --git a/Content.Shared/Procedural/Loot/SalvageLootPrototype.cs b/Content.Shared/Procedural/Loot/SalvageLootPrototype.cs
index 8189066a4f..331c3fa7da 100644
--- a/Content.Shared/Procedural/Loot/SalvageLootPrototype.cs
+++ b/Content.Shared/Procedural/Loot/SalvageLootPrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Shared.Procedural.Loot;
///
/// Spawned inside of a salvage mission.
///
-[Prototype("salvageLoot")]
+[Prototype]
public sealed partial class SalvageLootPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Procedural/SalvageDifficultyPrototype.cs b/Content.Shared/Procedural/SalvageDifficultyPrototype.cs
index 220bb68066..f78a953ced 100644
--- a/Content.Shared/Procedural/SalvageDifficultyPrototype.cs
+++ b/Content.Shared/Procedural/SalvageDifficultyPrototype.cs
@@ -2,7 +2,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Procedural;
-[Prototype("salvageDifficulty")]
+[Prototype]
public sealed partial class SalvageDifficultyPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = string.Empty;
diff --git a/Content.Shared/Prototypes/NavMapBlipPrototype.cs b/Content.Shared/Prototypes/NavMapBlipPrototype.cs
index ede82d8e04..2fcb6c5ccb 100644
--- a/Content.Shared/Prototypes/NavMapBlipPrototype.cs
+++ b/Content.Shared/Prototypes/NavMapBlipPrototype.cs
@@ -3,7 +3,7 @@ using Robust.Shared.Utility;
namespace Content.Shared.Prototypes;
-[Prototype("navMapBlip")]
+[Prototype]
public sealed partial class NavMapBlipPrototype : IPrototype
{
[ViewVariables]
diff --git a/Content.Shared/Radio/RadioChannelPrototype.cs b/Content.Shared/Radio/RadioChannelPrototype.cs
index 500dfbd5f6..4787a54c0d 100644
--- a/Content.Shared/Radio/RadioChannelPrototype.cs
+++ b/Content.Shared/Radio/RadioChannelPrototype.cs
@@ -2,7 +2,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Radio;
-[Prototype("radioChannel")]
+[Prototype]
public sealed partial class RadioChannelPrototype : IPrototype
{
///
diff --git a/Content.Shared/Random/Rules/RulesSystem.cs b/Content.Shared/Random/Rules/RulesSystem.cs
index 23a363e92e..218b4398b1 100644
--- a/Content.Shared/Random/Rules/RulesSystem.cs
+++ b/Content.Shared/Random/Rules/RulesSystem.cs
@@ -7,7 +7,7 @@ namespace Content.Shared.Random.Rules;
/// Every single condition needs to be true for this to be selected.
/// e.g. "choose maintenance audio if 90% of tiles nearby are maintenance tiles"
///
-[Prototype("rules")]
+[Prototype]
public sealed partial class RulesPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = string.Empty;
diff --git a/Content.Shared/Random/WeightedRandomEntityPrototype.cs b/Content.Shared/Random/WeightedRandomEntityPrototype.cs
index 01592ddf8c..a6b28eef43 100644
--- a/Content.Shared/Random/WeightedRandomEntityPrototype.cs
+++ b/Content.Shared/Random/WeightedRandomEntityPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.Random;
///
/// Linter-friendly version of weightedRandom for Entity prototypes.
///
-[Prototype("weightedRandomEntity")]
+[Prototype]
public sealed partial class WeightedRandomEntityPrototype : IWeightedRandomPrototype
{
[IdDataField]
diff --git a/Content.Shared/Random/WeightedRandomFillSolutionPrototype.cs b/Content.Shared/Random/WeightedRandomFillSolutionPrototype.cs
index c08ac27b9e..30c0a4b4c9 100644
--- a/Content.Shared/Random/WeightedRandomFillSolutionPrototype.cs
+++ b/Content.Shared/Random/WeightedRandomFillSolutionPrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Shared.Random;
///
/// Random weighting dataset for solutions, able to specify reagents quantity.
///
-[Prototype("weightedRandomFillSolution")]
+[Prototype]
public sealed partial class WeightedRandomFillSolutionPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Random/WeightedRandomOrePrototype.cs b/Content.Shared/Random/WeightedRandomOrePrototype.cs
index 7cd8bba514..6c85d42a2b 100644
--- a/Content.Shared/Random/WeightedRandomOrePrototype.cs
+++ b/Content.Shared/Random/WeightedRandomOrePrototype.cs
@@ -7,7 +7,7 @@ namespace Content.Shared.Random;
///
/// Linter-friendly version of weightedRandom for Ore prototypes.
///
-[Prototype("weightedRandomOre")]
+[Prototype]
public sealed partial class WeightedRandomOrePrototype : IWeightedRandomPrototype
{
[IdDataField]
diff --git a/Content.Shared/Random/WeightedRandomPrototype.cs b/Content.Shared/Random/WeightedRandomPrototype.cs
index 1ef5df76ba..e7f31bad12 100644
--- a/Content.Shared/Random/WeightedRandomPrototype.cs
+++ b/Content.Shared/Random/WeightedRandomPrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Shared.Random;
///
/// Generic random weighting dataset to use.
///
-[Prototype("weightedRandom")]
+[Prototype]
public sealed partial class WeightedRandomPrototype : IWeightedRandomPrototype
{
[IdDataField]
diff --git a/Content.Shared/Random/WeightedRandomSpeciesPrototype.cs b/Content.Shared/Random/WeightedRandomSpeciesPrototype.cs
index 5d805847d3..a248927c83 100644
--- a/Content.Shared/Random/WeightedRandomSpeciesPrototype.cs
+++ b/Content.Shared/Random/WeightedRandomSpeciesPrototype.cs
@@ -7,7 +7,7 @@ namespace Content.Shared.Random;
///
/// Linter-friendly version of weightedRandom for Species prototypes.
///
-[Prototype("weightedRandomSpecies")]
+[Prototype]
public sealed partial class WeightedRandomSpeciesPrototype : IWeightedRandomPrototype
{
[IdDataField]
diff --git a/Content.Shared/Research/Prototypes/TechDisciplinePrototype.cs b/Content.Shared/Research/Prototypes/TechDisciplinePrototype.cs
index b48d8256b7..06245927de 100644
--- a/Content.Shared/Research/Prototypes/TechDisciplinePrototype.cs
+++ b/Content.Shared/Research/Prototypes/TechDisciplinePrototype.cs
@@ -7,7 +7,7 @@ namespace Content.Shared.Research.Prototypes;
/// This is a prototype for a research discipline, a category
/// that governs how s are unlocked.
///
-[Prototype("techDiscipline")]
+[Prototype]
public sealed partial class TechDisciplinePrototype : IPrototype
{
///
diff --git a/Content.Shared/Research/Prototypes/TechnologyPrototype.cs b/Content.Shared/Research/Prototypes/TechnologyPrototype.cs
index 93b30772b5..3e75969cca 100644
--- a/Content.Shared/Research/Prototypes/TechnologyPrototype.cs
+++ b/Content.Shared/Research/Prototypes/TechnologyPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.Research.Prototypes;
///
/// This is a prototype for a technology that can be unlocked.
///
-[Prototype("technology")]
+[Prototype]
public sealed partial class TechnologyPrototype : IPrototype
{
///
diff --git a/Content.Shared/Roles/AntagPrototype.cs b/Content.Shared/Roles/AntagPrototype.cs
index 3cb81d4f9c..3f5b2a1bd6 100644
--- a/Content.Shared/Roles/AntagPrototype.cs
+++ b/Content.Shared/Roles/AntagPrototype.cs
@@ -7,7 +7,7 @@ namespace Content.Shared.Roles;
///
/// Describes information for a single antag.
///
-[Prototype("antag")]
+[Prototype]
[Serializable, NetSerializable]
public sealed partial class AntagPrototype : IPrototype
{
diff --git a/Content.Shared/Roles/DepartmentPrototype.cs b/Content.Shared/Roles/DepartmentPrototype.cs
index 20710ec11a..e7e9328b8f 100644
--- a/Content.Shared/Roles/DepartmentPrototype.cs
+++ b/Content.Shared/Roles/DepartmentPrototype.cs
@@ -2,7 +2,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Roles;
-[Prototype("department")]
+[Prototype]
public sealed partial class DepartmentPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Roles/JobPrototype.cs b/Content.Shared/Roles/JobPrototype.cs
index 2a814f21a1..54e5c1d525 100644
--- a/Content.Shared/Roles/JobPrototype.cs
+++ b/Content.Shared/Roles/JobPrototype.cs
@@ -10,7 +10,7 @@ namespace Content.Shared.Roles
///
/// Describes information for a single job on the station.
///
- [Prototype("job")]
+ [Prototype]
public sealed partial class JobPrototype : IPrototype
{
[ViewVariables]
diff --git a/Content.Shared/Salvage/Expeditions/Modifiers/SalvageBiomeModPrototype.cs b/Content.Shared/Salvage/Expeditions/Modifiers/SalvageBiomeModPrototype.cs
index 908d583000..e84223ed1f 100644
--- a/Content.Shared/Salvage/Expeditions/Modifiers/SalvageBiomeModPrototype.cs
+++ b/Content.Shared/Salvage/Expeditions/Modifiers/SalvageBiomeModPrototype.cs
@@ -7,7 +7,7 @@ namespace Content.Shared.Salvage.Expeditions.Modifiers;
///
/// Affects the biome to be used for salvage.
///
-[Prototype("salvageBiomeMod")]
+[Prototype]
public sealed partial class SalvageBiomeModPrototype : IPrototype, ISalvageMod
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Salvage/Expeditions/Modifiers/SalvageDungeonModPrototype.cs b/Content.Shared/Salvage/Expeditions/Modifiers/SalvageDungeonModPrototype.cs
index f69ad1969a..c8fc22c2af 100644
--- a/Content.Shared/Salvage/Expeditions/Modifiers/SalvageDungeonModPrototype.cs
+++ b/Content.Shared/Salvage/Expeditions/Modifiers/SalvageDungeonModPrototype.cs
@@ -5,7 +5,7 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototy
namespace Content.Shared.Salvage.Expeditions.Modifiers;
-[Prototype("salvageDungeonMod")]
+[Prototype]
public sealed partial class SalvageDungeonModPrototype : IPrototype, IBiomeSpecificMod
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Salvage/Expeditions/SalvageFactionPrototype.cs b/Content.Shared/Salvage/Expeditions/SalvageFactionPrototype.cs
index b417842110..52d0292769 100644
--- a/Content.Shared/Salvage/Expeditions/SalvageFactionPrototype.cs
+++ b/Content.Shared/Salvage/Expeditions/SalvageFactionPrototype.cs
@@ -2,7 +2,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Salvage.Expeditions;
-[Prototype("salvageFaction")]
+[Prototype]
public sealed partial class SalvageFactionPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Silicons/Laws/SiliconLawPrototype.cs b/Content.Shared/Silicons/Laws/SiliconLawPrototype.cs
index 5924c95cdc..434f80e16e 100644
--- a/Content.Shared/Silicons/Laws/SiliconLawPrototype.cs
+++ b/Content.Shared/Silicons/Laws/SiliconLawPrototype.cs
@@ -77,7 +77,7 @@ public partial class SiliconLaw : IComparable, IEquatable
/// This is a prototype for a law governing the behavior of silicons.
///
-[Prototype("siliconLaw")]
+[Prototype]
[Serializable, NetSerializable]
public sealed partial class SiliconLawPrototype : SiliconLaw, IPrototype
{
diff --git a/Content.Shared/Silicons/Laws/SiliconLawsetPrototype.cs b/Content.Shared/Silicons/Laws/SiliconLawsetPrototype.cs
index 7f1edd2dd1..49c618ef8c 100644
--- a/Content.Shared/Silicons/Laws/SiliconLawsetPrototype.cs
+++ b/Content.Shared/Silicons/Laws/SiliconLawsetPrototype.cs
@@ -61,7 +61,7 @@ public sealed partial class SiliconLawset
/// This is a prototype for a list.
/// Cannot be used directly since it is a list of prototype ids rather than List.
///
-[Prototype("siliconLawset"), Serializable, NetSerializable]
+[Prototype, Serializable, NetSerializable]
public sealed partial class SiliconLawsetPrototype : IPrototype
{
///
diff --git a/Content.Shared/Speech/SpeechSoundsPrototype.cs b/Content.Shared/Speech/SpeechSoundsPrototype.cs
index 41cf0f8807..2a5e4172fd 100644
--- a/Content.Shared/Speech/SpeechSoundsPrototype.cs
+++ b/Content.Shared/Speech/SpeechSoundsPrototype.cs
@@ -3,7 +3,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.Speech
{
- [Prototype("speechSounds")]
+ [Prototype]
public sealed partial class SpeechSoundsPrototype : IPrototype
{
[ViewVariables]
diff --git a/Content.Shared/Speech/SpeechVerbPrototype.cs b/Content.Shared/Speech/SpeechVerbPrototype.cs
index 6cce528977..6400abfe5e 100644
--- a/Content.Shared/Speech/SpeechVerbPrototype.cs
+++ b/Content.Shared/Speech/SpeechVerbPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.Speech;
/// Handles replacing speech verbs and other conditional chat modifications like bolding or font type depending
/// on punctuation or by directly overriding the prototype.
///
-[Prototype("speechVerb")]
+[Prototype]
public sealed partial class SpeechVerbPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/SprayPainter/Prototypes/AirlockDepartmentsPrototype.cs b/Content.Shared/SprayPainter/Prototypes/AirlockDepartmentsPrototype.cs
index b61aa037cc..8f98a1a3c7 100644
--- a/Content.Shared/SprayPainter/Prototypes/AirlockDepartmentsPrototype.cs
+++ b/Content.Shared/SprayPainter/Prototypes/AirlockDepartmentsPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.SprayPainter.Prototypes;
///
/// Maps airlock style names to department ids.
///
-[Prototype("airlockDepartments")]
+[Prototype]
public sealed partial class AirlockDepartmentsPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Spreader/EdgeSpreaderPrototype.cs b/Content.Shared/Spreader/EdgeSpreaderPrototype.cs
index b6570a0fc8..177b69bd44 100644
--- a/Content.Shared/Spreader/EdgeSpreaderPrototype.cs
+++ b/Content.Shared/Spreader/EdgeSpreaderPrototype.cs
@@ -5,7 +5,7 @@ namespace Content.Shared.Spreader;
///
/// Adds this node group to for tick updates.
///
-[Prototype("edgeSpreader")]
+[Prototype]
public sealed partial class EdgeSpreaderPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = string.Empty;
diff --git a/Content.Shared/StatusEffect/StatusEffectPrototype.cs b/Content.Shared/StatusEffect/StatusEffectPrototype.cs
index 8b1f84e4d8..f325103d0a 100644
--- a/Content.Shared/StatusEffect/StatusEffectPrototype.cs
+++ b/Content.Shared/StatusEffect/StatusEffectPrototype.cs
@@ -3,7 +3,7 @@ using Robust.Shared.Prototypes;
namespace Content.Shared.StatusEffect
{
- [Prototype("statusEffect")]
+ [Prototype]
public sealed partial class StatusEffectPrototype : IPrototype
{
[IdDataField]
diff --git a/Content.Shared/Store/CurrencyPrototype.cs b/Content.Shared/Store/CurrencyPrototype.cs
index 5dafbfd91f..03cc59d2df 100644
--- a/Content.Shared/Store/CurrencyPrototype.cs
+++ b/Content.Shared/Store/CurrencyPrototype.cs
@@ -10,7 +10,7 @@ namespace Content.Shared.Store;
/// Mainly used for antags, such as traitors, nukies, and revenants
/// This is separate to the cargo ordering system.
///
-[Prototype("currency")]
+[Prototype]
[DataDefinition, Serializable, NetSerializable]
public sealed partial class CurrencyPrototype : IPrototype
{
diff --git a/Content.Shared/Store/ListingPrototype.cs b/Content.Shared/Store/ListingPrototype.cs
index e2339b72c6..b68c5ffa0d 100644
--- a/Content.Shared/Store/ListingPrototype.cs
+++ b/Content.Shared/Store/ListingPrototype.cs
@@ -241,7 +241,7 @@ public partial class ListingData : IEquatable
///
/// Defines a set item listing that is available in a store
///
-[Prototype("listing")]
+[Prototype]
[Serializable, NetSerializable]
[DataDefinition]
public sealed partial class ListingPrototype : ListingData, IPrototype
@@ -422,7 +422,7 @@ public sealed partial class ListingDataWithCostModifiers : ListingData
/// Defines set of rules for category of discounts -
/// how will be filled by respective system.
///
-[Prototype("discountCategory")]
+[Prototype]
[DataDefinition, Serializable, NetSerializable]
public sealed partial class DiscountCategoryPrototype : IPrototype
{
diff --git a/Content.Shared/Store/StoreCategoryPrototype.cs b/Content.Shared/Store/StoreCategoryPrototype.cs
index c13eaf5062..5713ecd98a 100644
--- a/Content.Shared/Store/StoreCategoryPrototype.cs
+++ b/Content.Shared/Store/StoreCategoryPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.Store;
///
/// Used to define different categories for a store.
///
-[Prototype("storeCategory")]
+[Prototype]
[Serializable, NetSerializable, DataDefinition]
public sealed partial class StoreCategoryPrototype : IPrototype
{
diff --git a/Content.Shared/Store/StorePresetPrototype.cs b/Content.Shared/Store/StorePresetPrototype.cs
index ce7f0312b6..fb7da60d70 100644
--- a/Content.Shared/Store/StorePresetPrototype.cs
+++ b/Content.Shared/Store/StorePresetPrototype.cs
@@ -8,7 +8,7 @@ namespace Content.Shared.Store;
///
/// Specifies generic info for initializing a store.
///
-[Prototype("storePreset")]
+[Prototype]
[DataDefinition]
public sealed partial class StorePresetPrototype : IPrototype
{
diff --git a/Content.Shared/StoryGen/Prototypes/StoryTemplatePrototype.cs b/Content.Shared/StoryGen/Prototypes/StoryTemplatePrototype.cs
index fbae725c10..38dab902e2 100644
--- a/Content.Shared/StoryGen/Prototypes/StoryTemplatePrototype.cs
+++ b/Content.Shared/StoryGen/Prototypes/StoryTemplatePrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.StoryGen;
///
/// Prototype for a story template that can be filled in with words chosen from s.
///
-[Serializable, Prototype("storyTemplate")]
+[Serializable, Prototype]
public sealed partial class StoryTemplatePrototype : IPrototype
{
///
diff --git a/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs b/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs
index 571db09ebe..d5a9a371d2 100644
--- a/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs
+++ b/Content.Shared/Thief/Prototypes/ThiefBackpackSetPrototype.cs
@@ -6,7 +6,7 @@ namespace Content.Shared.Thief;
///
/// A prototype that defines a set of items and visuals in a specific starter set for the antagonist thief
///
-[Prototype("thiefBackpackSet")]
+[Prototype]
public sealed partial class ThiefBackpackSetPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs b/Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs
index b8f1e2b13f..b39e29aead 100644
--- a/Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs
+++ b/Content.Shared/VendingMachines/VendingMachineInventoryPrototype.cs
@@ -4,7 +4,7 @@ using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototy
namespace Content.Shared.VendingMachines
{
- [Serializable, NetSerializable, Prototype("vendingMachineInventory")]
+ [Serializable, NetSerializable, Prototype]
public sealed partial class VendingMachineInventoryPrototype : IPrototype
{
[ViewVariables]
diff --git a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs
index a5063e3ab5..3e0c15b879 100644
--- a/Content.Shared/Weapons/Ranged/HitscanPrototype.cs
+++ b/Content.Shared/Weapons/Ranged/HitscanPrototype.cs
@@ -7,7 +7,7 @@ using Robust.Shared.Utility;
namespace Content.Shared.Weapons.Ranged;
-[Prototype("hitscan")]
+[Prototype]
public sealed partial class HitscanPrototype : IPrototype, IShootable
{
[ViewVariables]
diff --git a/Content.Shared/Weather/WeatherPrototype.cs b/Content.Shared/Weather/WeatherPrototype.cs
index f6959a5336..246e929dce 100644
--- a/Content.Shared/Weather/WeatherPrototype.cs
+++ b/Content.Shared/Weather/WeatherPrototype.cs
@@ -4,7 +4,7 @@ using Robust.Shared.Utility;
namespace Content.Shared.Weather;
-[Prototype("weather")]
+[Prototype]
public sealed partial class WeatherPrototype : IPrototype
{
[IdDataField] public string ID { get; private set; } = default!;
diff --git a/Content.Shared/Xenoarchaeology/XenoArtifacts/ArtifactEffectPrototype.cs b/Content.Shared/Xenoarchaeology/XenoArtifacts/ArtifactEffectPrototype.cs
index f3c3e6d470..4ba4d0d43a 100644
--- a/Content.Shared/Xenoarchaeology/XenoArtifacts/ArtifactEffectPrototype.cs
+++ b/Content.Shared/Xenoarchaeology/XenoArtifacts/ArtifactEffectPrototype.cs
@@ -8,7 +8,7 @@ namespace Content.Shared.Xenoarchaeology.XenoArtifacts;
///
/// This is a prototype for...
///
-[Prototype("artifactEffect")]
+[Prototype]
[DataDefinition]
public sealed partial class ArtifactEffectPrototype : IPrototype
{
diff --git a/Content.Shared/Xenoarchaeology/XenoArtifacts/ArtifactTriggerPrototype.cs b/Content.Shared/Xenoarchaeology/XenoArtifacts/ArtifactTriggerPrototype.cs
index 3f831593d2..53ade6a5c6 100644
--- a/Content.Shared/Xenoarchaeology/XenoArtifacts/ArtifactTriggerPrototype.cs
+++ b/Content.Shared/Xenoarchaeology/XenoArtifacts/ArtifactTriggerPrototype.cs
@@ -8,7 +8,7 @@ namespace Content.Shared.Xenoarchaeology.XenoArtifacts;
///
/// This is a prototype for...
///
-[Prototype("artifactTrigger")]
+[Prototype]
[DataDefinition]
public sealed partial class ArtifactTriggerPrototype : IPrototype
{