package mg.dot.feufaro.musicXML

import kotlinx.serialization.Serializable
import nl.adaptivity.xmlutil.serialization.XmlElement
import nl.adaptivity.xmlutil.serialization.XmlSerialName

@Serializable
@XmlSerialName("note ", "", "")
data class MXNote (
@Serializable
@XmlElement
@XmlSerialName("duration", "", "")
    var duration: Int? = null,
@Serializable
@XmlElement
@XmlSerialName("voice", "", "")
    var voice: Int? = null,
@Serializable
@XmlElement
@XmlSerialName("lyric", "", "")
    var lyric: List<MXLyric> = listOf(),
@Serializable
@XmlSerialName("default-x", "", "")
    var defaultX: Float? = null,
@Serializable
@XmlElement
@XmlSerialName("pitch", "", "")
    var pitch: MXPitch? = null,
@Serializable
@XmlElement
@XmlSerialName("type", "", "")
    var type: String? = null,
@Serializable
@XmlElement
@XmlSerialName("stem", "", "")
    var stem: MXStem? = null,
@Serializable
@XmlElement
@XmlSerialName("chord", "", "")
    var chord: String? = null,
@Serializable
@XmlElement
@XmlSerialName("dot", "", "")
    var dot: String? = null,
@Serializable
@XmlElement
@XmlSerialName("beam", "", "")
    var beam: MXBeam? = null,
@Serializable
@XmlElement
@XmlSerialName("notations", "", "")
    var notations: MXNotations? = null,
@Serializable
@XmlElement
@XmlSerialName("accidental", "", "")
    var accidental: String? = null,
@Serializable
@XmlElement
    var direction: MXDirection? = null,
@Serializable
@XmlElement
@XmlSerialName("backup-duration", "", "")
var backupDuration: Int? = null,
@Serializable
@XmlElement
@XmlSerialName("forward-duration", "", "")
var forwardDuration: Int? = null,
@Serializable
@XmlElement
var grace: String? = null,
@Serializable
@XmlElement
var cue: String? = null,
@Serializable
@XmlElement
@XmlSerialName("time-modification", "", "")
var timeModification: MXTimeModification? = null,
@Serializable
@XmlElement
var unpitched: String? = null,
@Serializable
@XmlElement
var rest: MXRest? = null,
)
