diff --git a/SightKeeper.Data/Binary/Model/DataSets/Tags/PackableBooleanItemProperty.cs b/SightKeeper.Data/Binary/Model/DataSets/Tags/PackableBooleanItemProperty.cs
new file mode 100644
index 00000000..36f14298
--- /dev/null
+++ b/SightKeeper.Data/Binary/Model/DataSets/Tags/PackableBooleanItemProperty.cs
@@ -0,0 +1,15 @@
+using MemoryPack;
+using SightKeeper.Domain.Model.DataSets.Poser3D;
+
+namespace SightKeeper.Data.Binary.Model.DataSets.Tags;
+
+///
+/// MemoryPackable version of
+///
+[MemoryPackable]
+internal sealed partial class PackableBooleanItemProperty : PackableItemProperty
+{
+ public PackableBooleanItemProperty(string name) : base(name)
+ {
+ }
+}
\ No newline at end of file
diff --git a/SightKeeper.Data/Binary/Model/DataSets/Tags/PackableItemProperty.cs b/SightKeeper.Data/Binary/Model/DataSets/Tags/PackableItemProperty.cs
new file mode 100644
index 00000000..d927787a
--- /dev/null
+++ b/SightKeeper.Data/Binary/Model/DataSets/Tags/PackableItemProperty.cs
@@ -0,0 +1,16 @@
+using SightKeeper.Domain.Model.DataSets.Poser;
+
+namespace SightKeeper.Data.Binary.Model.DataSets.Tags;
+
+///
+/// MemoryPackable version of
+///
+internal abstract class PackableItemProperty
+{
+ public string Name { get; }
+
+ public PackableItemProperty(string name)
+ {
+ Name = name;
+ }
+}
\ No newline at end of file
diff --git a/SightKeeper.Data/Binary/Model/DataSets/Tags/PackableNumericItemProperty.cs b/SightKeeper.Data/Binary/Model/DataSets/Tags/PackableNumericItemProperty.cs
new file mode 100644
index 00000000..77c8362c
--- /dev/null
+++ b/SightKeeper.Data/Binary/Model/DataSets/Tags/PackableNumericItemProperty.cs
@@ -0,0 +1,20 @@
+using MemoryPack;
+using SightKeeper.Domain.Model.DataSets.Poser;
+
+namespace SightKeeper.Data.Binary.Model.DataSets.Tags;
+
+///
+/// MemoryPackable version of
+///
+[MemoryPackable]
+internal sealed partial class PackableNumericItemProperty : PackableItemProperty
+{
+ public double MinimumValue { get; }
+ public double MaximumValue { get; }
+
+ public PackableNumericItemProperty(string name, double minimumValue, double maximumValue) : base(name)
+ {
+ MinimumValue = minimumValue;
+ MaximumValue = maximumValue;
+ }
+}
\ No newline at end of file
diff --git a/SightKeeper.Data/Binary/Model/DataSets/Tags/PackablePoser2DTag.cs b/SightKeeper.Data/Binary/Model/DataSets/Tags/PackablePoser2DTag.cs
index 145b469c..93abda0b 100644
--- a/SightKeeper.Data/Binary/Model/DataSets/Tags/PackablePoser2DTag.cs
+++ b/SightKeeper.Data/Binary/Model/DataSets/Tags/PackablePoser2DTag.cs
@@ -10,12 +10,16 @@ namespace SightKeeper.Data.Binary.Model.DataSets.Tags;
[MemoryPackable]
internal sealed partial class PackablePoser2DTag : PackablePoserTag
{
+ public ImmutableArray NumericProperties { get; }
+
public PackablePoser2DTag(
byte id,
string name,
uint color,
- ImmutableArray keyPointTags)
+ ImmutableArray keyPointTags,
+ ImmutableArray numericProperties)
: base(id, name, color, keyPointTags)
{
+ NumericProperties = numericProperties;
}
}
\ No newline at end of file
diff --git a/SightKeeper.Data/Binary/Model/DataSets/Tags/PackablePoser3DTag.cs b/SightKeeper.Data/Binary/Model/DataSets/Tags/PackablePoser3DTag.cs
index 8118d134..d8f3db9b 100644
--- a/SightKeeper.Data/Binary/Model/DataSets/Tags/PackablePoser3DTag.cs
+++ b/SightKeeper.Data/Binary/Model/DataSets/Tags/PackablePoser3DTag.cs
@@ -10,12 +10,19 @@ namespace SightKeeper.Data.Binary.Model.DataSets.Tags;
[MemoryPackable]
internal sealed partial class PackablePoser3DTag : PackablePoserTag
{
+ public ImmutableArray NumericProperties { get; }
+ public ImmutableArray BooleanProperties { get; }
+
public PackablePoser3DTag(
byte id,
string name,
uint color,
- ImmutableArray keyPointTags)
+ ImmutableArray keyPointTags,
+ ImmutableArray numericProperties,
+ ImmutableArray booleanProperties)
: base(id, name, color, keyPointTags)
{
+ NumericProperties = numericProperties;
+ BooleanProperties = booleanProperties;
}
}
\ No newline at end of file
diff --git a/SightKeeper.Domain/Model/DataSets/Poser/ItemProperty.cs b/SightKeeper.Domain/Model/DataSets/Poser/ItemProperty.cs
index ea85d4b3..cf0d94af 100644
--- a/SightKeeper.Domain/Model/DataSets/Poser/ItemProperty.cs
+++ b/SightKeeper.Domain/Model/DataSets/Poser/ItemProperty.cs
@@ -8,10 +8,7 @@ public string Name
{
get => _name;
[MemberNotNull(nameof(_name))]
- set
- {
- _name = value;
- }
+ set => _name = value;
}
protected ItemProperty(string name)