class MAGES::DSS

class DSS
{
public:
    // enums

    enum Sv;

    // classes

    class DSSSerializePoly;
    class DSSSerializePolyStub;
    class JsonSer;
    class Ser;

    // methods

    static void Serialize(this Ser ser, string field, ref byte datum);
    static void Serialize(this Ser ser, string field, ref int datum);
    static void Serialize(this Ser ser, string field, ref bool datum);
    static void Serialize(this Ser ser, string field, ref float datum);
    static void Serialize(this Ser ser, string field, ref double datum);
    static void Serialize(this Ser ser, string field, ref long datum);
    static void Serialize(this Ser ser, string field, ref string datum);
    static void Serialize(this Ser ser, string field, ref int[] data);
    static void Serialize(this Ser ser, string field, ref byte[] data);
    static void Serialize(this Ser ser, string field, ref bool[] data);
    static void Serialize(this Ser ser, string field, ref float[] data);
    static void Serialize(this Ser ser, string field, ref double[] data);
    static void Serialize(this Ser ser, string field, ref long[] data);
    static void Serialize(this Ser ser, string field, ref string[] data);
    static void Serialize< T >(this Ser ser, string field, ref T datum);

    static void Serialize(
        this Ser ser,
        string field,
        ref BaseActionData.ObjectParentType datum
    );

    static void Serialize(this Ser ser, string field, ref Vector2 vector2);
    static void Serialize(this Ser ser, string field, ref Vector3 vector3);
    static void Serialize(this Ser ser, string field, ref Vector4 vector4);
    static void Serialize(this Ser ser, string field, ref Quaternion datum);
    static void Serialize(this Ser ser, string field, ref Color datum);
    static void Serialize(this Ser ser, string field, ref GuidRef datum);
    static void Serialize(this Ser ser, string field, ref List datum);
    static void Serialize(this Ser ser, string field, ref List datum);
    static void Serialize(this Ser ser, string field, ref List datum);
    static void Serialize(this Ser ser, string field, ref Group datum);
    static void Serialize(this Ser ser, string field, ref List<Step> datum);
    static void Serialize(this Ser ser, string field, ref List<EffectData> datum);

    static void Serialize(
        this Ser ser,
        string field,
        ref List<ActionCollection> datum
    );

    static void Serialize(this Ser ser, string field, ref StepContainer datum);

    static void Serialize(
        this Ser ser,
        string field,
        ref EffectDataCollection datum
    );

    static string GetDeclaration(Type type);
    static void Serialize(this Ser ser, string field, ref Step datum);
    static void Serialize(this Ser ser, string field, ref EffectData datum);
    static void Serialize(this Ser ser, string field, ref List datum);
    static void Serialize(this Ser ser, string field, ref Link datum);
    static void Serialize(this Ser ser, string field, ref PortRef datum);
    static void Serialize(this Ser ser, string field, ref PortDir datum);
    static void Serialize(this Ser ser, string field, ref List datum);

    static void Serialize(
        this Ser ser,
        string field,
        ref QuestionActionAnswer datum
    );

    static void Serialize(
        this Ser ser,
        string field,
        ref List<QuestionActionAnswer> datum
    );

    static void Serialize(this Ser ser, string field, ref Node datum);
};