Is your "recall probability estimating algorithm" similar to FSRS's retrievability? https://github.com/open-spaced-repetition/fsrs4anki/wiki/ABC... If you ever feel like moving beyond the Apple market you might look into https://github.com/vlcn-io/cr-sqlite I've been using it in my own Anki-clone and am very happy with it.
CR-SQLITE is awesome. In my dream parallel universe OS would natively support: - file - folder - pipe - op-log and provide primitives to merge op-logs (remove duplicate entries).
Maybe CR-SQLITE could be a gateway, but it feels a bit too high level. E.g. you can't just concatenate two op-logs and leave deduplicate to something else (I might be missing something)
Android version is a roadmap candidate. Baby steps ;)