Initial commit: Conjuga Spanish conjugation app

Includes SwiftData dual-store architecture (local reference + CloudKit user data),
JSON-based data seeding, 20 tense guides, 20 grammar notes, SRS review system,
course vocabulary, and widget support.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Trey t
2026-04-09 20:58:33 -05:00
commit 4b467ec136
95 changed files with 82599 additions and 0 deletions

View File

@@ -0,0 +1,160 @@
{
"stats": {
"verbs": 1750,
"verbForms": 209014,
"irregularSpans": 14078,
"tenseGuides": 20
},
"sampleVerb": {
"id": 1,
"infinitive": "ser",
"english": "to be",
"rank": 1,
"ending": "er",
"reflexive": 0,
"level": "basic",
"hasConjuuData": true
},
"sampleForms": [
{
"verbId": 1,
"tenseId": "ind_presente",
"personIndex": 0,
"form": "soy",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_presente",
"personIndex": 1,
"form": "eres",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_presente",
"personIndex": 2,
"form": "es",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_presente",
"personIndex": 3,
"form": "somos",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_presente",
"personIndex": 4,
"form": "sois",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_presente",
"personIndex": 5,
"form": "son",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_preterito",
"personIndex": 0,
"form": "fui",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_preterito",
"personIndex": 1,
"form": "fuiste",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_preterito",
"personIndex": 2,
"form": "fue",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_preterito",
"personIndex": 3,
"form": "fuimos",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_preterito",
"personIndex": 4,
"form": "fuisteis",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_preterito",
"personIndex": 5,
"form": "fueron",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_imperfecto",
"personIndex": 0,
"form": "era",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_imperfecto",
"personIndex": 1,
"form": "eras",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_imperfecto",
"personIndex": 2,
"form": "era",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_imperfecto",
"personIndex": 3,
"form": "éramos",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_imperfecto",
"personIndex": 4,
"form": "erais",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_imperfecto",
"personIndex": 5,
"form": "eran",
"regularity": "irregular"
},
{
"verbId": 1,
"tenseId": "ind_futuro",
"personIndex": 0,
"form": "seré",
"regularity": "ordinary"
},
{
"verbId": 1,
"tenseId": "ind_futuro",
"personIndex": 1,
"form": "serás",
"regularity": "ordinary"
}
]
}