{
"id": "com.derakkuma.play",
"defs": {
"main": {
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"chart",
"achievement",
"createdAt"
],
"properties": {
"fast": {
"type": "integer",
"minimum": 0
},
"late": {
"type": "integer",
"minimum": 0
},
"chart": {
"ref": "com.atproto.repo.strongRef",
"type": "ref"
},
"notes": {
"ref": "#noteBreakdown",
"type": "ref"
},
"rating": {
"type": "integer",
"minimum": 0
},
"dxScore": {
"ref": "#dxScore",
"type": "ref"
},
"maxSync": {
"ref": "#achievedTotal",
"type": "ref"
},
"fcStatus": {
"type": "string",
"maxLength": 16
},
"maxCombo": {
"ref": "#achievedTotal",
"type": "ref"
},
"playedAt": {
"type": "string",
"maxLength": 32
},
"trackNum": {
"type": "integer",
"minimum": 1
},
"createdAt": {
"type": "string",
"format": "datetime"
},
"dedupeKey": {
"type": "string",
"maxLength": 512
},
"scoreRank": {
"type": "string",
"maxLength": 8
},
"syncStatus": {
"type": "string",
"maxLength": 16
},
"achievement": {
"type": "string",
"maxLength": 8
},
"isNewRecord": {
"type": "boolean"
},
"ratingDelta": {
"type": "integer"
},
"matchingRank": {
"type": "integer",
"minimum": 1
}
}
},
"description": "A single maimai DX play log entry linked to a canonical Derakkuma chart"
},
"dxScore": {
"type": "object",
"required": [
"achieved",
"total"
],
"properties": {
"total": {
"type": "integer",
"minimum": 0
},
"achieved": {
"type": "integer",
"minimum": 0
}
}
},
"achievedTotal": {
"type": "object",
"required": [
"achieved",
"total"
],
"properties": {
"total": {
"type": "integer",
"minimum": 0
},
"achieved": {
"type": "integer",
"minimum": 0
}
}
},
"noteBreakdown": {
"type": "object",
"properties": {
"tap": {
"ref": "#noteJudgement",
"type": "ref"
},
"hold": {
"ref": "#noteJudgement",
"type": "ref"
},
"break": {
"ref": "#noteJudgement",
"type": "ref"
},
"slide": {
"ref": "#noteJudgement",
"type": "ref"
},
"touch": {
"ref": "#noteJudgement",
"type": "ref"
}
}
},
"noteJudgement": {
"type": "object",
"required": [
"criticalPerfect",
"perfect",
"great",
"good",
"miss"
],
"properties": {
"good": {
"type": "integer",
"minimum": 0
},
"miss": {
"type": "integer",
"minimum": 0
},
"great": {
"type": "integer",
"minimum": 0
},
"perfect": {
"type": "integer",
"minimum": 0
},
"criticalPerfect": {
"type": "integer",
"minimum": 0
}
}
}
},
"$type": "com.atproto.lexicon.schema",
"lexicon": 1
}