using System; using UnityEngine; [Serializable] public class NoteData { public int trackIndex; // Documentation text normalized. public float time; // Documentation text normalized. public string color; // Documentation text normalized. public string type; // Documentation text normalized. public float length; // Documentation text normalized. // New fields for judgement recording // judgeOffsetMs: signed offset in milliseconds recorded at judgement time // Documentation text normalized. // For tap notes this stores the single judgement offset. For hold notes, start judgement stored in judgeOffsetMs, // and end judgement stored in judgeOffsetMsEnd. Misses do not write offsets (left as NaN). public float judgeOffsetMs = float.NaN; public float judgeOffsetMsEnd = float.NaN; // Optionally record result strings for debugging/analysis public string judgeResult = null; public string judgeResultEnd = null; } [Serializable] public class TrackData { public string color; // Documentation text normalized. } [Serializable] public class Beatmap { public string title; // Documentation text normalized. public string composer; // Documentation text normalized. public string illustrator; // Documentation text normalized. public string charter; // Documentation text normalized. public string beatmapId; // Documentation text normalized. public float duration; // Documentation text normalized. public float bpm; // BPM public int difficulty; // Documentation text normalized. public string difficultyName;// Documentation text normalized. public string createdDate; // Documentation text normalized. public string musicFile; // Documentation text normalized. public string backgroundFile;// Documentation text normalized. public TrackData[] tracks; // Documentation text normalized. public NoteData[] notes; // Documentation text normalized. public bool is_official = true; }